diff --git a/boards/default/arduino_esp32/xml/esp32.xml b/boards/default/arduino_esp32/xml/esp32.xml index 553687eb..870670d1 100644 --- a/boards/default/arduino_esp32/xml/esp32.xml +++ b/boards/default/arduino_esp32/xml/esp32.xml @@ -2004,7 +2004,7 @@ - + ESP32BT diff --git a/boards/default/micropython/build/lib/ci130x.py b/boards/default/micropython/build/lib/ci130x.py index 7a6bdc38..7fd34940 100644 --- a/boards/default/micropython/build/lib/ci130x.py +++ b/boards/default/micropython/build/lib/ci130x.py @@ -26,7 +26,7 @@ class CI130X: self._rreg(_CI_ID_GET, 3) except: try: #C130X 启动慢,加延时判断 - time.sleep_ms(500) + time.sleep_ms(850) self._rreg(_CI_ID_GET, 3) except: raise AttributeError("Cannot find a CI130X") diff --git a/boards/default/micropython/build/lib/hx720.py b/boards/default/micropython/build/lib/hx720.py index 43c6bc45..4079cdf5 100644 --- a/boards/default/micropython/build/lib/hx720.py +++ b/boards/default/micropython/build/lib/hx720.py @@ -50,18 +50,20 @@ class HX720: self._sck.value(1) self._sck.value(0) - return raw_data | 0xFF000000 if raw_data & 0x800000 else raw_data + return raw_data if raw_data < (1 << (DATA_BITS - 1)) else raw_data - (1 << DATA_BITS) def tare(self, times=10): """清零传感器""" - total = 0 - for _ in range(times): - total += self.read_raw() - self.offset = total / times + _values = [] + for _ in range(max(times, 5)): + _values.append(self.read_raw()) + _values = sorted(_values)[2: -2] + self.offset = sum(_values) / len(_values) def read_weight(self, times=5): """读取重量数据,返回去掉偏移量的平均值""" - total = 0 - for _ in range(times): - total += self.read_raw() - return round((total / times - self.offset) / self.scale, 2) + _values = [] + for _ in range(max(times, 3)): + _values.append(self.read_raw()) + _values = sorted(_values)[1: -1] + return round((sum(_values) / len(_values)- self.offset) / self.scale, 2) diff --git a/boards/default/micropython/build/lib/map.json b/boards/default/micropython/build/lib/map.json index 260317b5..cf149a2c 100644 --- a/boards/default/micropython/build/lib/map.json +++ b/boards/default/micropython/build/lib/map.json @@ -320,7 +320,7 @@ "micropython" ], "__file__": true, - "__size__": 1794, + "__size__": 1949, "__name__": "hx720.py" }, "i2cdevice": { diff --git a/boards/default/micropython_educore/main.bundle.js b/boards/default/micropython_educore/main.bundle.js index 7cc617de..373bd1f7 100644 --- a/boards/default/micropython_educore/main.bundle.js +++ b/boards/default/micropython_educore/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ae={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Le={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Le,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ge={init:function(){this.setColour(be),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Ue={init:function(){this.setColour(be),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},we={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ke={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},He={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},We={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ke={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Je={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Qe={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ze={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},je={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},$e={init:function(){this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},Ze={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ti={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(be),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},ei={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ii={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ni={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},si={init:function(){this.setColour(be),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},_i={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(be),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},oi={init:function(){this.setColour(be),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_n={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},on={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},pn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},an={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},un={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},rn={init:function(){this.setColour(tn),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},In={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Tn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},En={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},On={init:function(){this.setColour(tn),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Rn={init:function(){this.setColour(tn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(tn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Sn={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},An=210,Ln={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Nn={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},fn={init:function(){this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Fn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Pn={init:function(){this.setColour(An),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Yn={init:function(){this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},vn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Xn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},yn={init:function(){this.setColour(An),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Gn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},$n={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},es={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},is={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ns={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ss={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},_s={init:function(){var t=Ot.Procedures.findLegalName("",this),e=new Ot.FieldTextInput(t,Ot.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Ot.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Ot.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Ot.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Ot.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Ot.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Ot.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Ot.Events.enable()}},mutationToDom:function(t){var e=Ot.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},t_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},s_=160,__={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},o_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},p_={init:function(){this.setColour(s_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},a_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},r_={init:function(){this.setColour(s_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},l_={init:function(){this.setColour(s_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const oa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},pa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},aa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ua=function(t,e){return["None",e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},la=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},da=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ia=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Ta=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ma=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ea=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Oa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ga=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Aa=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},La=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},fa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Fa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Ya=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},va=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ba=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},cu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},gu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Cu=function(t,e){return'"},Su=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Au=function(){return this.getFieldValue("TEXT")+"\n"},Lu=function(t){return t.getFieldValue("TEXT")+"\n"},Nu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Du=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},fu=function(){return""},Fu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Pu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},yu.scrubNakedValue=function(t){return t+"\n"},yu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},yu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},yu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,yu.COMMENT_WRAP-3),n+=yu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const xu="#74A55B",bu={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Vu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Bu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Gu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Uu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},wu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},ku={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Hu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Ku={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ju={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},qu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Qu={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},$u={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},tr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},er={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},nr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},sr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},_r={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},or={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},pr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ar={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},ur={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},lr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},Ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Mr={},hr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},mr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Er={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Or={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Rr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},gr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Yr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Gr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ur="#6C9858",wr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},kr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Hr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},$r={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Zr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},tl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},el={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},il={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},nl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},_l={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},ol={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},pl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},al={init:function(){this.setColour(Ur),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ul={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},dl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Il={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tl={init:function(){this.setColour(Ur),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Ml={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},El={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Sl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Pl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Yl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Xl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},xl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Vl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},Ul={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},wl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},kl={init:function(){this.setColour(Ur),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},im={init:function(){this.jsonInit({colour:Kh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:Ot.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Ot.Msg.MIXLY_MICROBIT_Built_in_image})}},nm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},sm={init:function(){this.setColour(Kh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(sm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"add"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},_m={init:function(){this.setColour(Kh),this.appendValueInput("A").setCheck("esp32_image").appendField(Ot.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},om={init:function(){this.setColour(Kh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(om.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:Ot.Msg.MIXLY_UP,shift_down:Ot.Msg.MIXLY_DOWN,shift_left:Ot.Msg.MIXLY_LEFT,shift_right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"shift_up"],[Ot.Msg.MIXLY_DOWN,"shift_down"],[Ot.Msg.MIXLY_LEFT,"shift_left"],[Ot.Msg.MIXLY_RIGHT,"shift_right"]]},pm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},um={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},rm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},lm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Clear_display)}},dm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},hm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Em={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.OLED_SET_FONT).appendField(new Ot.FieldDropdown(Em.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+Ot.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Om={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Ot.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Sm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Lm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Dm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.mpython_display_hline_1,"1"],[Ot.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},fm={init:function(){this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(fm.IMAGES),"path"),this.setColour(Kh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Fm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Pm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Pm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},vm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Xm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new Ot.FieldDropdown(ym.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[Ot.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[Ot.Msg.CLOCKWISE+"90"+Ot.Msg.blockpy_setheading_degree,"1"],[Ot.Msg.CLOCKWISE+"180"+Ot.Msg.blockpy_setheading_degree,"2"],[Ot.Msg.CLOCKWISE+"270"+Ot.Msg.blockpy_setheading_degree,"3"]]},xm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},bm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(bm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},Vm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Bm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Um={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},km={init:function(){this.jsonInit({colour:Kh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Hm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Wm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Km={init:function(){this.setColour(Kh),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(Ot.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(Ot.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(Ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},$m={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},tE={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},eE={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){Qh.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){$h.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){om.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE={init:function(){rm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},pE={init:function(){lm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},aE=180,uE={init:function(){this.setColour(aE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Ot.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(uE.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"]]},rE={init:function(){this.setColour(aE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(rE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"+"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},lE={init:function(){this.setColour(aE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Ot.FieldDropdown(lE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE+{height:Ot.Msg.MIXLY_HEIGHT,width:Ot.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[Ot.Msg.MIXLY_HEIGHT,"height"],[Ot.Msg.MIXLY_WIDTH,"width"]]},dE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RECT).appendField(new Ot.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_OLED_RECT)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Ot.FieldDropdown(IE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},TE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Ot.FieldDropdown(TE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},ME="#777777",hE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("from ").appendField(new Ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new Ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("import ").appendField(new Ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField(new Ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},_O={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},pO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},aO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},rO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},lO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},MO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},hO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},mO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},EO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},OO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},RO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gO={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour($E),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},CO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},DO=ZE,fO=tO,FO=eO,PO=iO,YO=sO,vO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(Ot.Msg.MODEL_NAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(Ot.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},XO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},xO={init:function(){this.setColour($E),this.appendDummyInput().appendField("Ollama "+Ot.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bO=225,VO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},BO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},GO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},UO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},wO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},kO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},HO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},WO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},KO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},JO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},qO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},QO={init:function(){this.setColour(bO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},zO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},jO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},$O={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},ZO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},tR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},eR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},iR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},nR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},sR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},_R={init:function(){this.setColour(bO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},oR={init:function(){this.appendValueInput("VAL"),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(oR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},pR={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown(pR.METHOD),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},aR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},uR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},rR="#3288dd",lR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},dR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},IR={init:function(){this.appendValueInput("VAL"),this.setColour(rR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(IR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},TR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},MR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(rR),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},mR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ER={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},RR="#A58C5B",cR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},gR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},CR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},SR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},AR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},LR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},DR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(DR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]},fR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},FR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},PR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},YR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},vR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},XR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},yR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},xR={init:function(){this.setColour(RR),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},bR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},VR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},BR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},GR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},UR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},kR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},HR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},WR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},KR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},JR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$R={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},tc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ec={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},_c={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},pc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ac={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},lc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},dc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Tc={init:function(){this.setColour(RR),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ec={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Oc={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Rc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},gc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},qF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},QF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},zF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},eP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},iP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},sP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},_P=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},pP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},uP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},rP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},lP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},dP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},IP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},TP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},MP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},mP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},EP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},OP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},RP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},cP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},gP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},CP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},SP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},AP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},LP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},NP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},DP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},fP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},FP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},PP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},YP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},vP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},XP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},yP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},xP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},VP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},BP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},GP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},UP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},HP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},WP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},JP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},QP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},zP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},jP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},$P=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},ZP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},tY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},eY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},iY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Rt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},nY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},sY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},_Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},oY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},pY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},aY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},uY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},lY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},QY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},zY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},jY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},$Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},ZY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},tv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},ev=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},iv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},sv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},_v=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},ov=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},pv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},av=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},uv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},rv=iY,lv=oY,dv=OY,Iv=hY,Tv=OY,Mv=RY,hv=IY,mv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},Ev=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},Ov=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},MB=function(){return"control.reset()\n"},hB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},mB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},EB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},OB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},RB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},cB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},gB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},CB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},SB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},AB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},LB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},NB=function(){return"while True:\n pass\n"},DB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},fB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},FB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},PB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},YB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},vB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},XB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},yB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},xB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},bB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},VB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},BB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},GB=yB,UB=vB,wB=XB,kB=FB,HB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},JB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},qB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},QB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ZB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},eG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},iG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},nG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},sG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},_G={};_G.mpython={description:"MicroPython[EDUCORE Edu Core]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},_G["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const oG=_G,pG=20,aG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},uG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},rG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},lG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},dG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},IG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},TG={init:function(){this.setColour(pG),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},MG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},hG={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},EG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},OG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},RG=hG,cG=EG,gG=TG,CG=MG,SG=40,AG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},LG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},DG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},fG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},FG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},PG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},YG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vG=100,XG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},yG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},xG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},bG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},VG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},BG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},WG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},KG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},JG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},QG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},zG=230,jG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},$G={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},eU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},nU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},sU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_U={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},oU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},aU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},uU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},rU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},dU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},TU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},hU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},mU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},RU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},cU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},gU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},CU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},SU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},AU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},LU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},NU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},DU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},fU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},FU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},PU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},vU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},yU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},xU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},bU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},VU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},BU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},GU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},UU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},wU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},kU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},HU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},WU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},KU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},JU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},qU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},QU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},zU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},jU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},$U=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},ZU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},tw=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},ew=function(t,e){if(e.definitions_.import_mini_g2="import mini_g2","mixgo_mini"==Rt.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var i='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";i='mini_g2.ext_rc522.read_card(0, x="id")'}return[i,e.ORDER_ATOMIC]},iw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},nw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},sw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},_w=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},ow=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},pw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},aw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},uw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},rw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},lw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},dw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},Iw=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},Tw=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},Mw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},hw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},mw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},Ew=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},Ow=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},Rw=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},cw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},gw=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Cw=gw,Sw=gw,Aw=gw,Lw=gw,Nw=gw,Dw=gw,fw=gw,Fw=gw,Pw=gw,Yw=gw,vw=gw,Xw=gw,yw=gw,xw=gw,bw=gw,Vw=gw,Bw=gw,Gw=gw,Uw=gw,ww=gw,kw=gw,Hw=gw,Ww=gw,Kw=gw,Jw=gw,qw=gw,Qw=gw,zw=gw,jw=gw,$w=gw,Zw=gw,tk=gw,ek=gw,ik=gw,nk=gw,sk=gw,_k=gw,ok=gw,pk=gw,ak=gw,uk=gw,rk=gw,lk=gw,dk=gw;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,Xu),Ot.Python=yu,Ot.generator=yu,Rt.Profile.default={},Object.assign(Rt.Profile,oG),Object.assign(Rt.Profile.default,oG["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,Z,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,$,Mt,ht,mt,Et)})(); \ No newline at end of file +class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ae={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Le={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Le,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ge={init:function(){this.setColour(be),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Ue={init:function(){this.setColour(be),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},we={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ke={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},He={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},We={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ke={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Je={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Qe={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ze={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},je={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},$e={init:function(){this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},Ze={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ti={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(be),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},ei={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ii={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ni={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},si={init:function(){this.setColour(be),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},_i={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(be),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},oi={init:function(){this.setColour(be),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_n={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},on={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},pn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},an={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},un={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},rn={init:function(){this.setColour(tn),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},In={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Tn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},En={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},On={init:function(){this.setColour(tn),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Rn={init:function(){this.setColour(tn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(tn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Sn={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},An=210,Ln={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Nn={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},fn={init:function(){this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Fn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Pn={init:function(){this.setColour(An),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Yn={init:function(){this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},vn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Xn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},yn={init:function(){this.setColour(An),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Gn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},$n={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},es={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},is={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ns={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ss={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},_s={init:function(){var t=Ot.Procedures.findLegalName("",this),e=new Ot.FieldTextInput(t,Ot.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Ot.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Ot.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Ot.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Ot.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Ot.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Ot.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Ot.Events.enable()}},mutationToDom:function(t){var e=Ot.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},t_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},s_=160,__={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},o_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},p_={init:function(){this.setColour(s_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},a_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},r_={init:function(){this.setColour(s_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},l_={init:function(){this.setColour(s_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const oa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},pa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},aa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ua=function(t,e){return["None",e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},la=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},da=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ia=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Ta=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ma=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ea=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Oa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ga=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Aa=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},La=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},fa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Fa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Ya=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},va=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ba=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},cu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},gu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Cu=function(t,e){return'"},Su=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Au=function(){return this.getFieldValue("TEXT")+"\n"},Lu=function(t){return t.getFieldValue("TEXT")+"\n"},Nu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Du=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},fu=function(){return""},Fu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Pu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},yu.scrubNakedValue=function(t){return t+"\n"},yu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},yu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},yu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,yu.COMMENT_WRAP-3),n+=yu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const xu="#74A55B",bu={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Vu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Bu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Gu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Uu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},wu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},ku={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Hu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Ku={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ju={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},qu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Qu={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},$u={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},tr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},er={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},nr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},sr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},_r={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},or={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},pr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ar={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},ur={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},lr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},Ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Mr={},hr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},mr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Er={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Or={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Rr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},gr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Yr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Gr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ur="#6C9858",wr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},kr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Hr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},$r={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Zr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},tl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},el={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},il={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},nl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},_l={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},ol={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},pl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},al={init:function(){this.setColour(Ur),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ul={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},dl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Il={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tl={init:function(){this.setColour(Ur),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Ml={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},El={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Sl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Pl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Yl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Xl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},xl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Vl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},Ul={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},wl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},kl={init:function(){this.setColour(Ur),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},im={init:function(){this.jsonInit({colour:Kh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:Ot.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Ot.Msg.MIXLY_MICROBIT_Built_in_image})}},nm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},sm={init:function(){this.setColour(Kh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(sm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"add"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},_m={init:function(){this.setColour(Kh),this.appendValueInput("A").setCheck("esp32_image").appendField(Ot.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},om={init:function(){this.setColour(Kh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(om.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:Ot.Msg.MIXLY_UP,shift_down:Ot.Msg.MIXLY_DOWN,shift_left:Ot.Msg.MIXLY_LEFT,shift_right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"shift_up"],[Ot.Msg.MIXLY_DOWN,"shift_down"],[Ot.Msg.MIXLY_LEFT,"shift_left"],[Ot.Msg.MIXLY_RIGHT,"shift_right"]]},pm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},um={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},rm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},lm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Clear_display)}},dm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},hm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Em={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.OLED_SET_FONT).appendField(new Ot.FieldDropdown(Em.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+Ot.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Om={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Ot.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Sm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Lm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Dm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.mpython_display_hline_1,"1"],[Ot.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},fm={init:function(){this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(fm.IMAGES),"path"),this.setColour(Kh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Fm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Pm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Pm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},vm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Xm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new Ot.FieldDropdown(ym.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[Ot.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[Ot.Msg.CLOCKWISE+"90"+Ot.Msg.blockpy_setheading_degree,"1"],[Ot.Msg.CLOCKWISE+"180"+Ot.Msg.blockpy_setheading_degree,"2"],[Ot.Msg.CLOCKWISE+"270"+Ot.Msg.blockpy_setheading_degree,"3"]]},xm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},bm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(bm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},Vm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Bm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Um={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},km={init:function(){this.jsonInit({colour:Kh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Hm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Wm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Km={init:function(){this.setColour(Kh),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(Ot.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(Ot.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(Ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},$m={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},tE={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},eE={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){Qh.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){$h.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){om.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE={init:function(){rm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},pE={init:function(){lm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},aE=180,uE={init:function(){this.setColour(aE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Ot.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(uE.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"]]},rE={init:function(){this.setColour(aE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(rE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"+"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},lE={init:function(){this.setColour(aE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Ot.FieldDropdown(lE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE+{height:Ot.Msg.MIXLY_HEIGHT,width:Ot.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[Ot.Msg.MIXLY_HEIGHT,"height"],[Ot.Msg.MIXLY_WIDTH,"width"]]},dE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RECT).appendField(new Ot.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_OLED_RECT)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Ot.FieldDropdown(IE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},TE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Ot.FieldDropdown(TE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},ME="#777777",hE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("from ").appendField(new Ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new Ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("import ").appendField(new Ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField(new Ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},_O={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},pO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},aO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},rO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},lO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},MO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},hO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},mO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},EO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},OO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},RO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gO={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour($E),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},CO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},DO=ZE,fO=tO,FO=eO,PO=iO,YO=sO,vO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(Ot.Msg.MODEL_NAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(Ot.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},XO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},xO={init:function(){this.setColour($E),this.appendDummyInput().appendField("Ollama "+Ot.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bO=225,VO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},BO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},GO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},UO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},wO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},kO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},HO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},WO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},KO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},JO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},qO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},QO={init:function(){this.setColour(bO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},zO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},jO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},$O={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},ZO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},tR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},eR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},iR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},nR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},sR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},_R={init:function(){this.setColour(bO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},oR={init:function(){this.appendValueInput("VAL"),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(oR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},pR={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown(pR.METHOD),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},aR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},uR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},rR="#3288dd",lR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},dR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},IR={init:function(){this.appendValueInput("VAL"),this.setColour(rR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(IR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},TR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},MR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(rR),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},mR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ER={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},RR="#A58C5B",cR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},gR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},CR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},SR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},AR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},LR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},DR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(DR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]},fR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},FR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},PR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},YR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},vR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},XR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},yR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},xR={init:function(){this.setColour(RR),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},bR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},VR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},BR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},GR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},UR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},kR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},HR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},WR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},KR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},JR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$R={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},tc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ec={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},_c={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},pc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ac={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},lc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},dc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Tc={init:function(){this.setColour(RR),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ec={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Oc={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Rc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},gc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},qF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},QF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},zF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},eP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},iP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},sP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},_P=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},pP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},uP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},rP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},lP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},dP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},IP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},TP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},MP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},mP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},EP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},OP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},RP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},cP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},gP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},CP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},SP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},AP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},LP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},NP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},DP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},fP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},FP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},PP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},YP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},vP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},XP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},yP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},xP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},VP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},BP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},GP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},UP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},HP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},WP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},JP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},QP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},zP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},jP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},$P=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},ZP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},tY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},eY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},iY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Rt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},nY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},sY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},_Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},oY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},pY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},aY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},uY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},lY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},QY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},zY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},jY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},$Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},ZY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},tv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},ev=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},iv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},sv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},_v=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},ov=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},pv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},av=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},uv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},rv=iY,lv=oY,dv=OY,Iv=hY,Tv=OY,Mv=RY,hv=IY,mv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},Ev=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},Ov=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},MB=function(){return"control.reset()\n"},hB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},mB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},EB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},OB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},RB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},cB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},gB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},CB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},SB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},AB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},LB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},NB=function(){return"while True:\n pass\n"},DB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},fB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},FB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},PB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},YB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},vB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},XB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},yB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},xB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},bB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},VB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},BB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},GB=yB,UB=vB,wB=XB,kB=FB,HB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},JB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},qB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},QB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ZB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},eG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},iG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},nG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},sG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},_G={};_G.mpython={description:"MicroPython[EDUCORE Edu Core]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},_G["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const oG=_G,pG=20,aG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},uG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},rG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},lG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},dG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},IG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},TG={init:function(){this.setColour(pG),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},MG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},hG={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},EG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},OG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},RG=hG,cG=EG,gG=TG,CG=MG,SG=40,AG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},LG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},DG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},fG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},FG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},PG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},YG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vG=100,XG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},yG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},xG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},bG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},VG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},BG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},WG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},KG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},JG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},QG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},zG=230,jG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},$G={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},eU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},nU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},sU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_U={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},oU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},aU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},uU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},rU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},dU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},TU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},hU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},mU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},RU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},cU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},gU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},CU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},SU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},AU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},LU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},NU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},DU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},fU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},FU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},PU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},vU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},yU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},xU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},bU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},VU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},BU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},GU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},UU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},wU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},kU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},HU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},WU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},KU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},JU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},qU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},QU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},zU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},jU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},$U=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},ZU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},tw=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},ew=function(t,e){if(e.definitions_.import_mini_g2="import mini_g2","mixgo_mini"==Rt.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var i='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";i='mini_g2.ext_rc522.read_card(0, x="id")'}return[i,e.ORDER_ATOMIC]},iw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},nw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},sw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},_w=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},ow=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},pw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},aw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},uw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},rw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},lw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},dw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},Iw=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},Tw=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},Mw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},hw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},mw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},Ew=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},Ow=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},Rw=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},cw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},gw=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Cw=gw,Sw=gw,Aw=gw,Lw=gw,Nw=gw,Dw=gw,fw=gw,Fw=gw,Pw=gw,Yw=gw,vw=gw,Xw=gw,yw=gw,xw=gw,bw=gw,Vw=gw,Bw=gw,Gw=gw,Uw=gw,ww=gw,kw=gw,Hw=gw,Ww=gw,Kw=gw,Jw=gw,qw=gw,Qw=gw,zw=gw,jw=gw,$w=gw,Zw=gw,tk=gw,ek=gw,ik=gw,nk=gw,sk=gw,_k=gw,ok=gw,pk=gw,ak=gw,uk=gw,rk=gw,lk=gw,dk=gw;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,Xu),Ot.Python=yu,Ot.generator=yu,Rt.Profile.default={},Object.assign(Rt.Profile,oG),Object.assign(Rt.Profile.default,oG["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,Z,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,$,Mt,ht,mt,Et)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32/build/Generic_ESP32_lib-v1.23.0.bin b/boards/default/micropython_esp32/build/Generic_ESP32_lib-v1.23.0.bin index 8b2b16f8..a279f02a 100644 Binary files a/boards/default/micropython_esp32/build/Generic_ESP32_lib-v1.23.0.bin and b/boards/default/micropython_esp32/build/Generic_ESP32_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32/build/Mixgo_PE_lib-v1.23.0.bin b/boards/default/micropython_esp32/build/Mixgo_PE_lib-v1.23.0.bin index 4d53bbc3..81ef8ef6 100644 Binary files a/boards/default/micropython_esp32/build/Mixgo_PE_lib-v1.23.0.bin and b/boards/default/micropython_esp32/build/Mixgo_PE_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32/build/Mixgo_lib-v1.23.0.bin b/boards/default/micropython_esp32/build/Mixgo_lib-v1.23.0.bin index 1f1165e3..dae05e0b 100644 Binary files a/boards/default/micropython_esp32/build/Mixgo_lib-v1.23.0.bin and b/boards/default/micropython_esp32/build/Mixgo_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32/build/mPython_lib-v1.23.0.bin b/boards/default/micropython_esp32/build/mPython_lib-v1.23.0.bin index 8710ee4b..95762e40 100644 Binary files a/boards/default/micropython_esp32/build/mPython_lib-v1.23.0.bin and b/boards/default/micropython_esp32/build/mPython_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32/main.bundle.js b/boards/default/micropython_esp32/main.bundle.js index 53e2a34f..1584a54d 100644 --- a/boards/default/micropython_esp32/main.bundle.js +++ b/boards/default/micropython_esp32/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Mt{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Xt={init:function(){this.setColour(Dt),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},xt={init:function(){this.setColour(Dt),this.appendValueInput("LIST").setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(dt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new dt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(dt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},yt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Vt={init:function(){this.setColour(Dt);var t=new dt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Bt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};bt.OPERATORS=[[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Vt.OPERATORS=[[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Ut={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Jt={init:function(){this.jsonInit({message0:dt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Dt,tooltip:dt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:dt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_STAT),this.setOutput(!0)}},qt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},jt={init:function(){this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(dt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new dt.FieldDropdown([[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Dt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},$t={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},te={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ee={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ie={init:function(){this.setColour(Dt),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(dt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ne={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},se=230;dt.FieldTextInput.math_number_validator=function(t){return String(t)},dt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const _e={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},pe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ae={init:function(){this.setColour(se),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(se),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},re={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new dt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},de={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:dt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:dt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:dt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:dt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:dt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:dt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:dt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[dt.Msg.MATH_BIN,"bin"],[dt.Msg.MATH_OCT,"oct"],[dt.Msg.MATH_HEX,"hex"]];this.setColour(se),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:dt.Msg.MATH_DEC_TOOLTIP_BIN,oct:dt.Msg.MATH_DEC_TOOLTIP_OCT,hex:dt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ie={init:function(){var t=[[dt.Msg.LANG_MATH_TO_ROUND,"round"],[dt.Msg.LANG_MATH_TO_CEIL,"ceil"],[dt.Msg.LANG_MATH_TO_FLOOR,"floor"],[dt.Msg.MATH_ABS,"fabs"],[dt.Msg.MATH_SQRT,"sqrt"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:dt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:dt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:dt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:dt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:dt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:dt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Te={init:function(){var t=[[dt.Msg.MIXLY_MAX,"max"],[dt.Msg.MIXLY_MIN,"min"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(dt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:dt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:dt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Me={init:function(){var t=[[dt.Msg.MATH_TWO,"two"],[dt.Msg.MATH_EIGHT,"eight"],[dt.Msg.MATH_TEN,"ten"],[dt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(se),this.appendDummyInput("").appendField(dt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new dt.FieldDropdown(t),"OP").appendField(dt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MATH_ZHW).appendField(new dt.FieldDropdown(t),"OP2").appendField(dt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:dt.Msg.MATH_Before_two,eight:dt.Msg.MATH_Before_eight,ten:dt.Msg.MATH_Before_ten,sixteen:dt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:dt.Msg.MATH_Behind_two,eight:dt.Msg.MATH_Behind_eight,ten:dt.Msg.MATH_Behind_ten,sixteen:dt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[dt.Msg.LANG_MATH_INT,"int"],[dt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(se),this.setOutput(!0,Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new dt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:dt.Msg.LANG_MATH_INT,float:dt.Msg.LANG_MATH_FLOAT_RANDOM};return dt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},me={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ee={init:function(){this.setColour(se),this.appendValueInput("NUM",Number).appendField(dt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(dt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(dt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},Re={init:function(){this.setColour(se),this.appendValueInput("NUM").setCheck(Number).appendField(dt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ce={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MATH_ROUND).appendField(dt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(dt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ge={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"],[dt.Msg.MIXLY_TO_BITES,"b"],[dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:dt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ce={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:dt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Se=Ee,Ae={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Le={init:function(){this.setColour(se),this.itemCount_=1,this.setMutator(new dt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(dt.Msg.MIXLY_PRODUCT+dt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(dt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(dt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ye={init:function(){this.setColour(fe),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new dt.FieldTextInput("",dt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(dt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new dt.FieldImage(e,7,12,'"')}},ve={init:function(){this.setColour(fe),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(dt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Xe={init:function(){this.setColour(fe),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},xe={init:function(){this.setColour(fe),this.appendValueInput("VAR").setCheck(String).appendField(dt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},be={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ye={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ve={init:function(){this.WHERE_OPTIONS=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.TEXT_GET_INDEX_RANDOM+1+dt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.LISTS_GET_INDEX_GET,"MODE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(dt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+dt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",dt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:dt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:dt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:dt.Msg.TEXT_GET_INDEX_RANDOM};return dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+dt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==dt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new dt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Be={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.LISTS_GET_INDEX_FROM_START+"n"+dt.Msg.TEXT_CHARAT2)}},Ge={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(dt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(dt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ue={init:function(){this.WHERE_OPTIONS_1=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[dt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==dt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new dt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},we={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(dt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},He={init:function(){var t=[[dt.Msg.MIXLY_EQUALS,"==="],[dt.Msg.MIXLY_STARTSWITH,"startswith"],[dt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(fe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new dt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ke={init:function(){this.setColour(fe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_COMPARETO_HELP)}},We={init:function(){var t=[[dt.Msg.TEXT_UPPER,"upper"],[dt.Msg.TEXT_TITLE,"title"],[dt.Msg.TEXT_CAPITALIZE,"capitalize"],[dt.Msg.TEXT_SWAPCASE,"swapcase"],[dt.Msg.TEXT_LOWER,"lower"]];this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:dt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:dt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:dt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:dt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:dt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ke={init:function(){var t=[[dt.Msg.TEXT_LJUST,"ljust"],[dt.Msg.TEXT_CENTER,"center"],[dt.Msg.TEXT_RJUST,"rjust"]];this.setColour(fe),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(dt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(dt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Je={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(dt.Msg.MIXLY_MID+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(dt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Qe={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},qe={init:function(){this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(dt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ze={init:function(){this.setColour(fe),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(dt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(dt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},je={init:function(){var t=[[dt.Msg.TEXT_TRIM_BOTH,"strip"],[dt.Msg.TEXT_TRIM_LEFT,"lstrip"],[dt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(fe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(dt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:dt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:dt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:dt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},$e={init:function(){this.setColour(fe),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new dt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Qi={init:function(){this.setColour(Ki),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},qi={init:function(){this.setColour(Ki),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},zi={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_KEYS),this.setTooltip(dt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},ji={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_TOOLTIP)}},$i={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Zi={init:function(){this.setColour(Ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},tn={init:function(){this.setColour(Ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_DELETE_TOOLTIP)}},en={init:function(){this.setColour(Ki),this.appendValueInput("DICT2").setCheck("Dict").appendField(dt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(dt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MID),this.setTooltip(dt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_CLEAR),this.setTooltip(dt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_ITEMS),this.setTooltip(dt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},_n={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_VALUES),this.setTooltip(dt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},on={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LENGTH),this.setTooltip(dt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},pn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_DELDICT),this.setTooltip(dt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.MODE=[[dt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[dt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(dt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=dt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=dt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new dt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},un={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setTooltip(dt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},rn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dn={init:function(){this.setColour(Ki),this.appendDummyInput("").appendField(new dt.FieldLabel(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new dt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ln={init:function(){this.setColour(Ki),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},In={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Tn={init:function(){this.setColour(Ki),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},hn={init:function(){this.setColour(Ki),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},mn=210,En={init:function(){var t=dt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:dt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:dt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},On={init:function(){var t=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new dt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Rn={init:function(){var t=[[dt.Msg.LOGIC_OPERATION_AND,"AND"],[dt.Msg.LOGIC_OPERATION_OR,"OR"],[dt.Msg.LOGIC_OPERATION_NOR,"NOR"],[dt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:dt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:dt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},cn={init:function(){this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(dt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(dt.Msg.LOGIC_NEGATE_TOOLTIP)}},gn={init:function(){var t=[[dt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[dt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new dt.FieldDropdown(t),"BOOL"),this.setTooltip(dt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Cn={init:function(){this.setColour(mn),this.setOutput(!0),this.appendDummyInput().appendField(dt.Msg.LOGIC_NULL),this.setTooltip(dt.Msg.LOGIC_NULL_TOOLTIP)}},Sn={init:function(){this.setColour(mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(dt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(dt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},An={init:function(){var t=[[dt.Msg.TEXT_APPEND_TO,"in"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(mn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new dt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(dt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.IN)}},Ln={init:function(){var t=[[dt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Nn={init:function(){this.setColour(mn),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Dn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(dt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXPY_TEXT_ENCODE).appendField(new dt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Yn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MICROBIT_PYTHON_TYPE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.HTML_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Bn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Gn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Wn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+dt.Msg.MIXLY_ESP32_SET+{mkdir:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(dt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.HTML_FILE,"isfile"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},qn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(dt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(dt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},jn={init:function(){var t=dt.Procedures.findLegalName("",this),e=new dt.FieldTextInput(t,dt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new dt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&dt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(dt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(dt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(dt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(dt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=dt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),dt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{dt.Events.enable()}},mutationToDom:function(t){var e=dt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ks={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_FORM_CONTENT).appendField(new dt.FieldDropdown([[dt.Msg.HTML_TEXT,"text"],[dt.Msg.HTML_EMAIL,"email"],[dt.Msg.HTML_NUMBER,"number"],[dt.Msg.HTML_PASSWORD,"password"],[dt.Msg.HTML_CHECKBOX,"checkbox"],[dt.Msg.HTML_RADIOBUTTON,"radiobutton"],[dt.Msg.HTML_BUTTON,"button"],[dt.Msg.HTML_COLOUR,"colour"],[dt.Msg.HTML_DATE,"date"],[dt.Msg.HTML_LOCALTIME,"local time"],[dt.Msg.HTML_FILE,"file"],[dt.Msg.HTML_HIDDEN,"hidden"],[dt.Msg.HTML_IMAGE,"image"],[dt.Msg.HTML_MONTH,"month"],[dt.Msg.HTML_RANGE,"range"],[dt.Msg.HTML_RESET,"reset"],[dt.Msg.HTML_SEARCH,"search"],[dt.Msg.HTML_SUBMIT,"submit"],[dt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[dt.Msg.HTML_TIME,"time"],[dt.Msg.HTML_URL,"url"],[dt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(dt.Msg.HTML_NAME).appendField(new dt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(dt.Msg.HTML_VALUE).appendField(new dt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qs={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_TEXT).appendField(new dt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs=160,js={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new dt.FieldTable(""),"TEXT")}},$s={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT")}},Zs={init:function(){this.setColour(zs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},t_={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},e_={init:function(){this.setColour(zs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new dt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},i_={init:function(){this.setColour(zs),this.appendValueInput("VALUE").appendField(dt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},n_={init:function(){this.setColour(zs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(dt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=dt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},dt.isNumber(n)&&dt.isNumber(s)&&dt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const $p=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},Zp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},ta=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ea=function(t,e){return["None",e.ORDER_ATOMIC]},ia=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},na=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},sa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},_a=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},oa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},pa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},aa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ua=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},da=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},la=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ta=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ha=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ma=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ea=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Oa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ca=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},ga=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Na=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Da=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),dt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},du=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},lu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Iu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Tu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Mu=function(t,e){return'"},hu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},mu=function(){return this.getFieldValue("TEXT")+"\n"},Eu=function(t){return t.getFieldValue("TEXT")+"\n"},Ou=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Ru=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},cu=function(){return""},gu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Cu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Nu.scrubNakedValue=function(t){return t+"\n"},Nu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Nu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Nu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=dt.utils.string.wrap(_,Nu.COMMENT_WRAP-3),n+=Nu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Du="#74A55B",fu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},Fu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Pu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},vu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},bu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Uu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Hu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField("360°"+dt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETTING+dt.Msg.blockpy_turtle_rotate+dt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new dt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(dt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[dt.Msg.MOTOR_N,"ms32006.MOT_N"],[dt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},zu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new dt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},ju={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},$u={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},er={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new dt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["SYN6288"+dt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+dt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ir={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_WHETHER).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_STOPPED,"0"],[dt.Msg.MIXLY_PLAYING,"1"],[dt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},nr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_PLAY,"1"],[dt.Msg.MIXLY_MP3_PAUSE,"2"],[dt.Msg.MIXLY_STOP,"3"],[dt.Msg.MIXLY_MP3_PREV,"4"],[dt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(dt.Msg.MIXLY_MP3_VOL+dt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},_r={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE+dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[dt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[dt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[dt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[dt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[dt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[dt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},pr={},ar={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},rr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},dr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},lr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Ir={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Tr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LISTS_SET_INDEX_SET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[dt.Msg.MIXLY_SPEED,"[1]"],[dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[dt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[dt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[dt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SERVO+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MOTOR+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr="#6C9858",Xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_ON,"1"],[dt.Msg.MIXLY_ESP32_OFF,"0"],[dt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},yr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Gr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LCD_SETCOLOR).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LIGHT_RED,"1"],[dt.Msg.MIXLY_LIGHT_GREEN,"2"],[dt.Msg.MIXLY_LIGHT_BLUE,"3"],[dt.Msg.MIXLY_LIGHT_YELLOW,"4"],[dt.Msg.MIXLY_LIGHT_CYAN,"5"],[dt.Msg.MIXLY_LIGHT_PURPLE,"6"],[dt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Ur={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Wr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Kr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},$r={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},td={init:function(){this.setColour(vr),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},sd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},_d={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},od={init:function(){this.setColour(vr),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ad={init:function(){this.setColour(vr),this.appendDummyInput().appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(vr),this.appendDummyInput("").appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},rd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Td={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"1"],[dt.Msg.TEXT_TRIM_RIGHT,"2"],[dt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Od={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"0"],[dt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},gd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sd={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_RECORD_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.MIXLY_ALL+dt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(dt.ALIGN_RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(dt.Msg.MIXLY_RELEASE).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT)}},vd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SPECIAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[dt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[dt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[dt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[dt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[dt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[dt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Xd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GENERAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},xd={init:function(){this.setColour(vr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new dt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(dt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},ch={init:function(){this.jsonInit({colour:dh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:dt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:dt.Msg.MIXLY_MICROBIT_Built_in_image})}},gh={init:function(){this.setColour(dh),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},Ch={init:function(){this.setColour(dh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(dt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new dt.FieldDropdown(Ch.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":dt.Msg.MIXLY_MICROBIT_image_add,"-":dt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[dt.Msg.MICROBIT_DISPLAY_UNION,"add"],[dt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Sh={init:function(){this.setColour(dh),this.appendValueInput("A").setCheck("esp32_image").appendField(dt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Ah={init:function(){this.setColour(dh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_LET2).appendField(new dt.FieldDropdown(Ah.OPERATORS),"OP"),this.appendValueInput("val").appendField(dt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=dt.Msg.DISPLAY_IMAGE_LET,n=dt.Msg.DISPLAY_IMAGE_LET2,s=dt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:dt.Msg.MIXLY_UP,shift_down:dt.Msg.MIXLY_DOWN,shift_left:dt.Msg.MIXLY_LEFT,shift_right:dt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[dt.Msg.MIXLY_UP,"shift_up"],[dt.Msg.MIXLY_DOWN,"shift_down"],[dt.Msg.MIXLY_LEFT,"shift_left"],[dt.Msg.MIXLY_RIGHT,"shift_right"]]},Lh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Nh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Dh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},fh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Fh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Clear_display)}},Ph={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Yh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(Yh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},vh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Xh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(Xh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},xh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},bh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(bh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},yh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.OLED_SET_FONT).appendField(new dt.FieldDropdown(yh.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+dt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+dt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+dt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Vh={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},Gh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(dt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},Uh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(dt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(dt.Msg.TEXT_CENTER).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},wh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(dt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Hh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Wh={init:function(){this.jsonInit({colour:dh,args0:[{name:"state",options:[[dt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[dt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[dt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[dt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:dt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.jsonInit({colour:dh,args0:[{name:"state",options:[[dt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[dt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[dt.Msg.mpython_vertical,"0"],[dt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:dt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Jh={init:function(){this.jsonInit({colour:dh,args0:[{name:"state",options:[[dt.Msg.mpython_display_hline_1,"1"],[dt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.mpython_display_line_TOOLTIP,message0:dt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Qh={init:function(){this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new dt.FieldDropdown(Qh.IMAGES),"path"),this.setColour(dh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},qh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},zh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(zh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},jh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},$h={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Zh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},tm={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new dt.FieldDropdown(tm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[dt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[dt.Msg.CLOCKWISE+"90"+dt.Msg.blockpy_setheading_degree,"1"],[dt.Msg.CLOCKWISE+"180"+dt.Msg.blockpy_setheading_degree,"2"],[dt.Msg.CLOCKWISE+"270"+dt.Msg.blockpy_setheading_degree,"3"]]},em={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},im={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},nm={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},sm={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(dt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(dt.Msg.TEXT_CENTER).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},_m={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},om={init:function(){this.jsonInit({colour:dh,args0:[{name:"shape",options:[[dt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[dt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:dt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},pm={init:function(){this.jsonInit({colour:dh,args0:[{name:"dir_h_v",options:[[dt.Msg.mpython_vertical,"0"],[dt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:dt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},am={init:function(){this.jsonInit({colour:dh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.mpython_display_line_TOOLTIP,message0:dt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},um={init:function(){this.setColour(dh),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(dt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},rm={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_LCD_SETCOLOR).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},dm={init:function(){this.setColour(dh),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lm={init:function(){this.setColour(dh),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(dt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Im={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tm={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(dt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(dt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(dt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mm={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hm={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mm={init:function(){this.jsonInit({colour:dh,args0:[{name:"shape",options:[[dt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[dt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,message0:dt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Em={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER).appendField(dt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(dt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.DRAW_POINTER_TOOLTIP)}},Om={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER).appendField(dt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(dt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.DRAW_POINTER_TOOLTIP)}},Rm={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},cm={init:function(){Th.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},gm={init:function(){mh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Cm={init:function(){Ah.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Sm={init:function(){Dh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Am={init:function(){fh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Lm={init:function(){Fh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Nm=180,Dm={init:function(){this.setColour(Nm),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(dt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_LET2).appendField(new dt.FieldDropdown(Dm.OPERATORS),"OP"),this.appendValueInput("val").appendField(dt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=dt.Msg.DISPLAY_IMAGE_LET,n=dt.Msg.DISPLAY_IMAGE_LET2,s=dt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"]]},fm={init:function(){this.setColour(Nm),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(dt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new dt.FieldDropdown(fm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":dt.Msg.MIXLY_MICROBIT_image_add,"-":dt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[dt.Msg.MICROBIT_DISPLAY_UNION,"+"],[dt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},Fm={init:function(){this.setColour(Nm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new dt.FieldDropdown(Fm.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_MICROBIT_IMAGE+{height:dt.Msg.MIXLY_HEIGHT,width:dt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[dt.Msg.MIXLY_HEIGHT,"height"],[dt.Msg.MIXLY_WIDTH,"width"]]},Pm={init:function(){this.setColour(Nm),this.appendValueInput("VAR").appendField(dt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RECT).appendField(new dt.FieldDropdown(Pm.STATUS),"OP"),this.jsonInit({message0:dt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_OLED_RECT)},STATUS:[[dt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[dt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Ym={init:function(){this.setColour(Nm),this.appendValueInput("VAR").appendField(dt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new dt.FieldDropdown(Ym.STATUS),"OP"),this.jsonInit({message0:dt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[dt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[dt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},vm={init:function(){this.setColour(Nm),this.appendValueInput("VAR").appendField(dt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_DISPLAY_DRAW+dt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new dt.FieldDropdown(vm.STATUS),"OP"),this.jsonInit({message0:dt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_DISPLAY_DRAW+dt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[dt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[dt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Xm="#777777",xm={init:function(){this.setColour(Xm),this.appendDummyInput("").appendField("from ").appendField(new dt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new dt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bm={init:function(){this.setColour(Xm),this.appendDummyInput("").appendField("import ").appendField(new dt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ym={init:function(){this.setColour(Xm),this.appendDummyInput("").appendField(new dt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},SE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},AE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},LE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},NE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_PROJECT).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},fE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},FE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},YE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},XE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},xE={init:function(){this.setColour(mE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},bE={init:function(){this.setColour(mE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},yE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},VE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(dt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},BE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+dt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UE={init:function(){this.VISITOR_ID=lt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(mE),this.appendDummyInput("").appendField(new dt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},wE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},HE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(dt.Msg.MIXLY_REQUESTS_GET).appendField(dt.Msg.MIXLY_GET_CURRENT_TIME).appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},WE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(dt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(dt.Msg.MQTT_Topic).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},JE=EE,QE=OE,qE=RE,zE=cE,jE=CE,$E={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(dt.Msg.MODEL_NAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(dt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},eO={init:function(){this.setColour(mE),this.appendDummyInput().appendField("Ollama "+dt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO=225,nO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(dt.Msg.MIXLY_NETWORK_MODE).appendField(new dt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},sO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[dt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=dt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:dt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:dt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},_O={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},oO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:dt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},pO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},aO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_CONNECT+dt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},uO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[dt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:dt.Msg.MIXLY_ESP32_NETWORK_IP,1:dt.Msg.MIXLY_ESP32_NETWORK_MASK,2:dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},rO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},dO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},lO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(dt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},IO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},TO={init:function(){this.setColour(iO),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new dt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},MO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},hO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},mO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},EO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},OO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},RO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},cO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},gO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},CO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},SO={init:function(){this.setColour(iO),this.appendValueInput("DOMAIN").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS_GET).appendField(new dt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},AO={init:function(){this.appendValueInput("VAL"),this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(AO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:dt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:dt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:dt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},LO={init:function(){this.appendValueInput("VAR").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown(LO.METHOD),"DIR"),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:dt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:dt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},NO={init:function(){this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(dt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},DO={init:function(){this.setColour(iO),this.appendDummyInput("").appendField(new dt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},fO="#3288dd",FO={init:function(){this.setColour(fO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS).appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},PO={init:function(){this.setColour(fO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(dt.Msg.blockpy_REQUESTS+dt.Msg.OLED_STRING),this.appendDummyInput("").appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},YO={init:function(){this.appendValueInput("VAL"),this.setColour(fO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(YO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[dt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},vO={init:function(){this.setColour(fO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(dt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},XO={init:function(){this.setColour(fO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(dt.Msg.MIXLY_EMQX_PORT).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xO={init:function(){this.setColour(fO),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(dt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},bO={init:function(){this.setColour(fO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO={init:function(){this.setColour(fO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VO={init:function(){this.setColour(fO),this.appendDummyInput().appendField("mqtt"+dt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},BO=100,GO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},UO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},wO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},HO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},kO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},WO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},KO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},QO="#A58C5B",qO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_IS_PRESSED)}},zO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_WAS_PRESSED)}},jO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_BUTTON+dt.Msg.MIXLY_GET_PRESSES)}},$O={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[dt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[dt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},ZO={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"],[dt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down,freefall:dt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},tR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},eR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},iR={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(new dt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new dt.FieldDropdown(iR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},nR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},sR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},_R={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"left"],[dt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(dt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=dt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=dt.Msg.MIXLY_ESP32_NEAR;return i+{left:dt.Msg.TEXT_TRIM_LEFT,right:dt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},oR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[dt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},pR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[dt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},aR={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},uR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField("LM35"+dt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LM35)}},rR={init:function(){this.setColour(QO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[dt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[dt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[dt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[dt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[dt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[dt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[dt.Msg.HTML_COLOUR+"、"+dt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+dt.Msg.MIXLY_NEXT+"、"+dt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[dt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[dt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[dt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[dt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},dR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},lR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},IR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},TR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},MR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[dt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[dt.Msg.MIXLY_THE_FIRST,"3"],[dt.Msg.MIXLY_THE_SECOND,"4"],[dt.Msg.MIXLY_THE_THIRD,"5"],[dt.Msg.MIXLY_THE_FOURTH,"6"],[dt.Msg.MIXLY_THE_FIFTH,"7"],[dt.Msg.MIXLY_THE_SIXTH,"8"],[dt.Msg.MIXLY_THE_SEVENTH,"9"],[dt.Msg.MIXLY_THE_EIGHTH,"10"],[dt.Msg.MIXLY_THE_NINTH,"11"],[dt.Msg.MIXLY_THE_TENTH,"12"],[dt.Msg.MIXLY_THE_ELEVENTH,"13"],[dt.Msg.MIXLY_THE_TWELFTH,"14"],[dt.Msg.MIXLY_THE_13TH,"15"],[dt.Msg.MIXLY_THE_14TH,"16"],[dt.Msg.MIXLY_THE_15TH,"17"],[dt.Msg.MIXLY_THE_16TH,"18"],[dt.Msg.MIXLY_THE_17TH,"19"],[dt.Msg.MIXLY_THE_18TH,"20"],[dt.Msg.MIXLY_THE_19TH,"21"],[dt.Msg.MIXLY_THE_20TH,"22"],[dt.Msg.MIXLY_Turn_on_the_lights,"23"],[dt.Msg.MIXLY_Turn_off_the_lights,"24"],[dt.Msg.MIXLY_Turn_up_the_brightness,"25"],[dt.Msg.MIXLY_Turn_down_the_brightness,"26"],[dt.Msg.MIXLY_Set_it_to_red,"27"],[dt.Msg.MIXLY_Set_it_to_orange,"28"],[dt.Msg.MIXLY_Set_it_to_yellow,"29"],[dt.Msg.MIXLY_Set_it_to_green,"30"],[dt.Msg.MIXLY_Set_it_to_cyan,"31"],[dt.Msg.MIXLY_Set_it_to_blue,"32"],[dt.Msg.MIXLY_Set_it_to_purple,"33"],[dt.Msg.MIXLY_Set_it_to_white,"34"],[dt.Msg.MIXLY_Turn_on_the_fan,"35"],[dt.Msg.MIXLY_Turn_off_the_fan,"36"],[dt.Msg.MIXLY_First_gear,"37"],[dt.Msg.MIXLY_Wind_speed_second,"38"],[dt.Msg.MIXLY_Third_gear,"39"],[dt.Msg.MIXLY_Previous,"40"],[dt.Msg.MIXLY_Next_page,"41"],[dt.Msg.MIXLY_Show_smiley_face,"42"],[dt.Msg.MIXLY_Show_crying_face,"43"],[dt.Msg.MIXLY_Show_love,"44"],[dt.Msg.MIXLY_Close_display,"45"],[dt.Msg.MIXLY_Start_execution,"46"],[dt.Msg.MIXLY_FORWARD,"47"],[dt.Msg.MIXLY_BACKWARD,"48"],[dt.Msg.MIXLY_TURNLEFT,"49"],[dt.Msg.MIXLY_TURNRIGHT,"50"],[dt.Msg.MIXLY_STOP,"51"],[dt.Msg.MIXLY_Accelerate,"52"],[dt.Msg.MIXLY_retard,"53"],[dt.Msg.ROTATION_FORWARD,"54"],[dt.Msg.ROTATION_BACKWARD,"55"],[dt.Msg.MIXLY_Query_temperature,"56"],[dt.Msg.MIXLY_Query_humidity,"57"],[dt.Msg.MIXLY_Query_brightness,"58"],[dt.Msg.MIXLY_Query_sound,"59"],[dt.Msg.MIXLY_Query_time,"60"],[dt.Msg.MIXLY_Query_distance,"61"],[dt.Msg.MIXLY_Query_pressure,"62"],[dt.Msg.MIXLY_Query_key,"63"],[dt.Msg.MIXLY_Query_touch,"64"],[dt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(dt.Msg.MIXLY_WHETHER+dt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},mR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[dt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[dt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},ER={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MP3_PLAY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_WIND_SPEED,"154"],[dt.Msg.MIXLY_HYETAL,"155"],[dt.Msg.MIXLY_TEMPERATURE,"156"],[dt.Msg.MIXLY_Humidity,"157"],[dt.Msg.MIXLY_Altitude,"158"],[dt.Msg.MIXLY_SOUND,"159"],[dt.Msg.MIXLY_BRIGHTNESS,"160"],[dt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[dt.Msg.MIXLY_SERVO,"162"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[dt.Msg.MIXLY_BUTTON2,"164"],[dt.Msg.MIXLY_ESP32_TOUCH,"165"],[dt.Msg.MIXLY_PAY,"166"],[dt.Msg.MIXLY_CARSH_CHANGE,"167"],[dt.Msg.MIXLY_COUNTDOWN,"168"],[dt.Msg.MIXLY_TIMING,"169"],[dt.Msg.MIXLY_AT_THE_MOMENT,"170"],[dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[dt.Msg.MIXLY_FORWARD,"172"],[dt.Msg.MIXLY_BACKWARD,"173"],[dt.Msg.MIXLY_TURNLEFT,"174"],[dt.Msg.MIXLY_TURNRIGHT,"175"],[dt.Msg.MIXLY_STOP,"176"],[dt.Msg.MIXLY_Accelerate,"177"],[dt.Msg.MIXLY_retard,"178"],[dt.Msg.ROTATION_FORWARD,"179"],[dt.Msg.ROTATION_BACKWARD,"180"],[dt.Msg.TUPLE_JOIN,"181"],[dt.Msg.MIXLY_SHOW,"182"],[dt.Msg.MIXLY_LAMPLIGHT,"183"],[dt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(dt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(dt.Msg.MIXLY_UNIT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_YEAR,"117"],[dt.Msg.MIXLY_MONTH,"118"],[dt.Msg.MIXLY_DAY,"119"],[dt.Msg.MIXLY_HOUR,"120"],[dt.Msg.MIXLY_MINUTE,"121"],[dt.Msg.MIXLY_SECOND,"122"],[dt.Msg.MIXLY_WEEK2,"123"],[dt.Msg.MIXLY_RMB_UNIT,"124"],[dt.Msg.blockpy_setheading_degree,"125"],[dt.Msg.MIXLY_GEAR,"126"],[dt.Msg.MIXLY_LAYER,"127"],[dt.Msg.MIXLY_GRAM,"128"],[dt.Msg.MIXLY_METER,"129"],[dt.Msg.MIXLY_CENTIMETER,"130"],[dt.Msg.MIXLY_MILLIMETER,"131"],[dt.Msg.MIXLY_LUMEN,"132"],[dt.Msg.MIXLY_DECIBEL,"133"],[dt.Msg.MIXLY_hectopascal,"134"],[dt.Msg.MIXLY_PERCENT,"135"],[dt.Msg.MIXLY_CELSIUS,"136"],[dt.Msg.MIXLY_METER_PER_SEC,"137"],[dt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[dt.Msg.MIXLY_SUCCESS,"140"],[dt.Msg.MIXLY_FAILED,"141"],[dt.Msg.MIXLY_WRONG,"142"],[dt.Msg.MIXLY_GOOD,"143"],[dt.Msg.MIXLY_blockpy_set_add,"144"],[dt.Msg.MIXLY_DECREASE,"145"],[dt.Msg.COLOUR_RGB_RED,"146"],[dt.Msg.COLOUR_RGB_ORANGE,"147"],[dt.Msg.COLOUR_YELLOW,"148"],[dt.Msg.COLOUR_RGB_GREEN,"149"],[dt.Msg.COLOUR_CYAN,"150"],[dt.Msg.COLOUR_RGB_BLUE,"151"],[dt.Msg.COLOUR_RGB_PURPLE,"152"],[dt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},OR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXLY_SYSTEM+dt.Msg.MIXLY_CMD).appendField(new dt.FieldDropdown([[dt.Msg.MILXY_ENTER_WAKE_UP,"1"],[dt.Msg.MIXLY_INCREASE_VOLUME,"202"],[dt.Msg.MIXLY_REDUCE_VOLUME,"203"],[dt.Msg.MIXLY_MAX_VOLUME,"204"],[dt.Msg.MIXLY_MINIMUM,"205"],[dt.Msg.MIXLY_OPEN_RESPONSE,"206"],[dt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[dt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},RR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[dt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[dt.Msg.MIXLY_ESP32_MAX30102_IR+","+dt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[dt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[dt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+dt.Msg.HTML_COLOUR,"[2]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_IR_STRENGTH,"[1]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+"RGB"+dt.Msg.HTML_COLOUR,"0"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_RGB_RAW,"1"],[dt.Msg.MIXLY_GET_ENV_LIGHT+dt.Msg.MIXLY_BRIGHTNESS,"2"],[dt.Msg.GET_IR_STRENGTH+dt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[dt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},DR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},fR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MIXGOPE_FIELD+dt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[dt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},xR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},bR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET+dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},VR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},BR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_GETTEMPERATUE)}},GR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},UR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},wR={init:function(){this.setColour(QO),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},HR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[dt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},WR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},KR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},JR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(dt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},QR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_SCAN_OK,"0"],[dt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[dt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},zR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$R={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},jf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},$f=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},Zf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},tF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},eF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},nF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},sF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},_F=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},oF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},pF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},aF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},uF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},rF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},dF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},lF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},IF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},TF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},MF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},hF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},mF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},EF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},RF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},cF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},gF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},CF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},SF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},AF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},LF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},NF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},DF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},fF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},FF=function(t,e){e.definitions_.import_st7789="import st7789";var i=lt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},PF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},YF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},vF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},XF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},xF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},bF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},yF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},VF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},BF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},GF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},UF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},wF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},HF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=lt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},kF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},WF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},KF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},JF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},QF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},zF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},ZF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},tP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},eP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},iP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},nP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},sP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},_P=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===lt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},oP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},pP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},aP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},uP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},rP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},dP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},lP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},IP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},TP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},jP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},$P=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},ZP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},tY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},eY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},iY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},nY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},sY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},_Y=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},oY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},pY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},aY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},uY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},rY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},dY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},lY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},IY=_P,TY=uP,MY=gP,hY=OP,mY=gP,EY=CP,OY=hP,RY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},cY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},gY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},LV=function(){return"control.reset()\n"},NV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},DV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},fV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},FV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},PV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},YV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},vV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},XV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},xV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},bV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},yV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},VV=function(){return"while True:\n pass\n"},BV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},GV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},UV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},wV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},HV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},kV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},WV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},KV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},JV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},QV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},qV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},zV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},jV=KV,$V=kV,ZV=WV,tB=UV,eB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},iB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},nB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},_B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},oB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},pB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},aB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},uB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},rB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},dB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},lB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},IB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},TB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},MB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},hB={};hB.MixGo={description:"MicroPython[ESP32 MixGo]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},hB["MixGo PE"]={description:"MicroPython[ESP32 MixGo PE]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin7","pin7"],["pin8","pin8"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:lt.Profile.generate(["0-7"]),exlcdv:lt.Profile.generate(["0-4"]),brightness:lt.Profile.generate(["0-9"]),tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},hB["ESP32 Generic(4MB)"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},hB.mPython={description:"MicroPython[ESP32 Generic]",digital_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],digital:[["pin0","pin33"],["pin1","pin32"],["pin2","pin35"],["pin5","pin0"],["pin6","pin16"],["pin7","pin17"],["pin8","pin26"],["pin9","pin25"],["pin11","pin2"],["pin13","pin18"],["pin14","pin19"],["pin15","pin21"],["pin16","pin5"],["pin19","pin22"],["pin20","pin23"]],input_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],output_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm:[["pwm0","pwm33"],["pwm1","pwm32"],["pwm5","pwm0"],["pwm6","pwm16"],["pwm7","pwm17"],["pwm8","pwm26"],["pwm9","pwm25"],["pwm11","pwm2"],["pwm13","pwm18"],["pwm14","pwm19"],["pwm15","pwm21"],["pwm16","pwm5"],["pwm19","pwm22"],["pwm20","pwm23"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["p0","33"],["p1","32"],["p2","35"],["p3","34"],["p4","39"],["p10","36"]],analog:[["adc0","adc33"],["adc1","adc32"],["adc2","adc35"],["adc3","adc34"],["adc4","adc39"],["adc10","adc36"]],dac_pin:[["p8","26"],["p9","25"]],dac:[["dac8","dac26"],["dac9","dac25"]],touch_mpython:[["p","p"],["y","y"],["t","t"],["h","h"],["o","o"],["n","n"]],touch:[["tc0","tc33"],["tc1","tc32"],["tc5","tc0"],["tc11","tc2"],["tc23","tc27"],["tc24","tc14"],["tc25","tc12"],["tc26","tc13"],["tc27","tc15"],["tc28","tc4"]],touch_pin:[["p0","33"],["p1","32"],["p5","0"],["p11","2"],["p23","27"],["p24","14"],["p25","12"],["p26","13"],["p27","15"],["p28","4"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const mB=hB,EB=230,OB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital),"PIN"),this.setOutput(!0)}},RB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},cB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},gB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},CB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},SB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},AB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},LB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},NB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},DB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},fB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},FB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},PB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},YB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},vB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},XB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},xB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog),"PIN"),this.setOutput(!0)}},yB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac),"PIN"),this.setOutput(!0)}},BB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},wB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},HB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},kB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch),"PIN"),this.setOutput(!0)}},WB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},KB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},JB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},QB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},qB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},zB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},jB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},$B={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},ZB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},aG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},uG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},rG=uG,dG=uG,lG=uG,IG=uG,TG=uG,MG=uG,hG=uG,mG=uG,EG=uG,OG=uG,RG=uG,cG=uG,gG=uG,CG=uG,SG=uG,AG=uG,LG=uG,NG=uG,DG=uG,fG=uG,FG=uG,PG=uG,YG=uG,vG=uG,XG=uG,xG=uG,bG=uG,yG=uG,VG=uG,BG=uG,GG=uG,UG=uG,wG=uG,HG=uG;Object.assign(dt.Variables,Tt),Object.assign(dt.Procedures,Lu),dt.Python=Nu,dt.generator=Nu,lt.Profile.default={},Object.assign(lt.Profile,mB),Object.assign(lt.Profile.default,mB["ESP32 Generic"]),Object.assign(dt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,b,H,w,Y,y,k,f,U,G,B,V,F,D,N,X,v,x,P,ut),Object.assign(dt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,tt,pt,ot,z,et,at,J,_t,st,nt,it,Q,K,W,$,j,Z,q,rt)})(); \ No newline at end of file +class Mt{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Xt={init:function(){this.setColour(Dt),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},xt={init:function(){this.setColour(Dt),this.appendValueInput("LIST").setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(dt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new dt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(dt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},yt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Vt={init:function(){this.setColour(Dt);var t=new dt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Bt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};bt.OPERATORS=[[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Vt.OPERATORS=[[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Ut={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Jt={init:function(){this.jsonInit({message0:dt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Dt,tooltip:dt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:dt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_STAT),this.setOutput(!0)}},qt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},jt={init:function(){this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(dt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new dt.FieldDropdown([[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Dt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},$t={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},te={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ee={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ie={init:function(){this.setColour(Dt),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(dt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ne={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},se=230;dt.FieldTextInput.math_number_validator=function(t){return String(t)},dt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const _e={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},pe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ae={init:function(){this.setColour(se),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(se),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},re={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new dt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},de={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:dt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:dt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:dt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:dt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:dt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:dt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:dt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[dt.Msg.MATH_BIN,"bin"],[dt.Msg.MATH_OCT,"oct"],[dt.Msg.MATH_HEX,"hex"]];this.setColour(se),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:dt.Msg.MATH_DEC_TOOLTIP_BIN,oct:dt.Msg.MATH_DEC_TOOLTIP_OCT,hex:dt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ie={init:function(){var t=[[dt.Msg.LANG_MATH_TO_ROUND,"round"],[dt.Msg.LANG_MATH_TO_CEIL,"ceil"],[dt.Msg.LANG_MATH_TO_FLOOR,"floor"],[dt.Msg.MATH_ABS,"fabs"],[dt.Msg.MATH_SQRT,"sqrt"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:dt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:dt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:dt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:dt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:dt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:dt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Te={init:function(){var t=[[dt.Msg.MIXLY_MAX,"max"],[dt.Msg.MIXLY_MIN,"min"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(dt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:dt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:dt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Me={init:function(){var t=[[dt.Msg.MATH_TWO,"two"],[dt.Msg.MATH_EIGHT,"eight"],[dt.Msg.MATH_TEN,"ten"],[dt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(se),this.appendDummyInput("").appendField(dt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new dt.FieldDropdown(t),"OP").appendField(dt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MATH_ZHW).appendField(new dt.FieldDropdown(t),"OP2").appendField(dt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:dt.Msg.MATH_Before_two,eight:dt.Msg.MATH_Before_eight,ten:dt.Msg.MATH_Before_ten,sixteen:dt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:dt.Msg.MATH_Behind_two,eight:dt.Msg.MATH_Behind_eight,ten:dt.Msg.MATH_Behind_ten,sixteen:dt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[dt.Msg.LANG_MATH_INT,"int"],[dt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(se),this.setOutput(!0,Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new dt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:dt.Msg.LANG_MATH_INT,float:dt.Msg.LANG_MATH_FLOAT_RANDOM};return dt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},me={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ee={init:function(){this.setColour(se),this.appendValueInput("NUM",Number).appendField(dt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(dt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(dt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},Re={init:function(){this.setColour(se),this.appendValueInput("NUM").setCheck(Number).appendField(dt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ce={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MATH_ROUND).appendField(dt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(dt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ge={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"],[dt.Msg.MIXLY_TO_BITES,"b"],[dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:dt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ce={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:dt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Se=Ee,Ae={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Le={init:function(){this.setColour(se),this.itemCount_=1,this.setMutator(new dt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(dt.Msg.MIXLY_PRODUCT+dt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(dt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(dt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ye={init:function(){this.setColour(fe),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new dt.FieldTextInput("",dt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(dt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new dt.FieldImage(e,7,12,'"')}},ve={init:function(){this.setColour(fe),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(dt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Xe={init:function(){this.setColour(fe),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},xe={init:function(){this.setColour(fe),this.appendValueInput("VAR").setCheck(String).appendField(dt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},be={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ye={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ve={init:function(){this.WHERE_OPTIONS=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.TEXT_GET_INDEX_RANDOM+1+dt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.LISTS_GET_INDEX_GET,"MODE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(dt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+dt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",dt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:dt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:dt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:dt.Msg.TEXT_GET_INDEX_RANDOM};return dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+dt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==dt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new dt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Be={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.LISTS_GET_INDEX_FROM_START+"n"+dt.Msg.TEXT_CHARAT2)}},Ge={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(dt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(dt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ue={init:function(){this.WHERE_OPTIONS_1=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[dt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==dt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new dt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},we={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(dt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},He={init:function(){var t=[[dt.Msg.MIXLY_EQUALS,"==="],[dt.Msg.MIXLY_STARTSWITH,"startswith"],[dt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(fe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new dt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ke={init:function(){this.setColour(fe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_COMPARETO_HELP)}},We={init:function(){var t=[[dt.Msg.TEXT_UPPER,"upper"],[dt.Msg.TEXT_TITLE,"title"],[dt.Msg.TEXT_CAPITALIZE,"capitalize"],[dt.Msg.TEXT_SWAPCASE,"swapcase"],[dt.Msg.TEXT_LOWER,"lower"]];this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:dt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:dt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:dt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:dt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:dt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ke={init:function(){var t=[[dt.Msg.TEXT_LJUST,"ljust"],[dt.Msg.TEXT_CENTER,"center"],[dt.Msg.TEXT_RJUST,"rjust"]];this.setColour(fe),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(dt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(dt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Je={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(dt.Msg.MIXLY_MID+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(dt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Qe={init:function(){this.setColour(fe),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},qe={init:function(){this.setColour(fe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(dt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ze={init:function(){this.setColour(fe),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(dt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(dt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},je={init:function(){var t=[[dt.Msg.TEXT_TRIM_BOTH,"strip"],[dt.Msg.TEXT_TRIM_LEFT,"lstrip"],[dt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(fe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(dt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:dt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:dt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:dt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},$e={init:function(){this.setColour(fe),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new dt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Qi={init:function(){this.setColour(Ki),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},qi={init:function(){this.setColour(Ki),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},zi={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_KEYS),this.setTooltip(dt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},ji={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_TOOLTIP)}},$i={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Zi={init:function(){this.setColour(Ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},tn={init:function(){this.setColour(Ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_DELETE_TOOLTIP)}},en={init:function(){this.setColour(Ki),this.appendValueInput("DICT2").setCheck("Dict").appendField(dt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(dt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MID),this.setTooltip(dt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_CLEAR),this.setTooltip(dt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_ITEMS),this.setTooltip(dt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},_n={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_VALUES),this.setTooltip(dt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},on={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LENGTH),this.setTooltip(dt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},pn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_DELDICT),this.setTooltip(dt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.MODE=[[dt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[dt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(dt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=dt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=dt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new dt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},un={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setTooltip(dt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},rn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dn={init:function(){this.setColour(Ki),this.appendDummyInput("").appendField(new dt.FieldLabel(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new dt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ln={init:function(){this.setColour(Ki),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},In={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Tn={init:function(){this.setColour(Ki),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn={init:function(){this.setColour(Ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},hn={init:function(){this.setColour(Ki),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},mn=210,En={init:function(){var t=dt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:dt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:dt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},On={init:function(){var t=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new dt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Rn={init:function(){var t=[[dt.Msg.LOGIC_OPERATION_AND,"AND"],[dt.Msg.LOGIC_OPERATION_OR,"OR"],[dt.Msg.LOGIC_OPERATION_NOR,"NOR"],[dt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:dt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:dt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},cn={init:function(){this.setColour(mn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(dt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(dt.Msg.LOGIC_NEGATE_TOOLTIP)}},gn={init:function(){var t=[[dt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[dt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(mn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new dt.FieldDropdown(t),"BOOL"),this.setTooltip(dt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Cn={init:function(){this.setColour(mn),this.setOutput(!0),this.appendDummyInput().appendField(dt.Msg.LOGIC_NULL),this.setTooltip(dt.Msg.LOGIC_NULL_TOOLTIP)}},Sn={init:function(){this.setColour(mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(dt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(dt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},An={init:function(){var t=[[dt.Msg.TEXT_APPEND_TO,"in"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(mn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new dt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(dt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.IN)}},Ln={init:function(){var t=[[dt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Nn={init:function(){this.setColour(mn),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Dn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(dt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXPY_TEXT_ENCODE).appendField(new dt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Yn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MICROBIT_PYTHON_TYPE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.HTML_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Bn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Gn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Wn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+dt.Msg.MIXLY_ESP32_SET+{mkdir:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(dt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.HTML_FILE,"isfile"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},qn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(dt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(dt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},jn={init:function(){var t=dt.Procedures.findLegalName("",this),e=new dt.FieldTextInput(t,dt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new dt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&dt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(dt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(dt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(dt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(dt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=dt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),dt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{dt.Events.enable()}},mutationToDom:function(t){var e=dt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ks={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_FORM_CONTENT).appendField(new dt.FieldDropdown([[dt.Msg.HTML_TEXT,"text"],[dt.Msg.HTML_EMAIL,"email"],[dt.Msg.HTML_NUMBER,"number"],[dt.Msg.HTML_PASSWORD,"password"],[dt.Msg.HTML_CHECKBOX,"checkbox"],[dt.Msg.HTML_RADIOBUTTON,"radiobutton"],[dt.Msg.HTML_BUTTON,"button"],[dt.Msg.HTML_COLOUR,"colour"],[dt.Msg.HTML_DATE,"date"],[dt.Msg.HTML_LOCALTIME,"local time"],[dt.Msg.HTML_FILE,"file"],[dt.Msg.HTML_HIDDEN,"hidden"],[dt.Msg.HTML_IMAGE,"image"],[dt.Msg.HTML_MONTH,"month"],[dt.Msg.HTML_RANGE,"range"],[dt.Msg.HTML_RESET,"reset"],[dt.Msg.HTML_SEARCH,"search"],[dt.Msg.HTML_SUBMIT,"submit"],[dt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[dt.Msg.HTML_TIME,"time"],[dt.Msg.HTML_URL,"url"],[dt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(dt.Msg.HTML_NAME).appendField(new dt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(dt.Msg.HTML_VALUE).appendField(new dt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qs={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_TEXT).appendField(new dt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs=160,js={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new dt.FieldTable(""),"TEXT")}},$s={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT")}},Zs={init:function(){this.setColour(zs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},t_={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},e_={init:function(){this.setColour(zs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new dt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},i_={init:function(){this.setColour(zs),this.appendValueInput("VALUE").appendField(dt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},n_={init:function(){this.setColour(zs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(dt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=dt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},dt.isNumber(n)&&dt.isNumber(s)&&dt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const $p=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},Zp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},ta=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ea=function(t,e){return["None",e.ORDER_ATOMIC]},ia=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},na=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},sa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},_a=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},oa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},pa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},aa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ua=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},da=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},la=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ta=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ha=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ma=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ea=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Oa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ca=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},ga=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Na=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Da=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),dt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},du=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},lu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Iu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Tu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Mu=function(t,e){return'"},hu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},mu=function(){return this.getFieldValue("TEXT")+"\n"},Eu=function(t){return t.getFieldValue("TEXT")+"\n"},Ou=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Ru=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},cu=function(){return""},gu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Cu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Nu.scrubNakedValue=function(t){return t+"\n"},Nu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Nu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Nu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=dt.utils.string.wrap(_,Nu.COMMENT_WRAP-3),n+=Nu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Du="#74A55B",fu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},Fu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Pu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},vu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},bu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Uu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Hu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField("360°"+dt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETTING+dt.Msg.blockpy_turtle_rotate+dt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new dt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(dt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[dt.Msg.MOTOR_N,"ms32006.MOT_N"],[dt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},zu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new dt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},ju={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},$u={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},er={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new dt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["SYN6288"+dt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+dt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ir={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_WHETHER).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_STOPPED,"0"],[dt.Msg.MIXLY_PLAYING,"1"],[dt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},nr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_PLAY,"1"],[dt.Msg.MIXLY_MP3_PAUSE,"2"],[dt.Msg.MIXLY_STOP,"3"],[dt.Msg.MIXLY_MP3_PREV,"4"],[dt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(dt.Msg.MIXLY_MP3_VOL+dt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},_r={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE+dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[dt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[dt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[dt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[dt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[dt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[dt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},pr={},ar={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},rr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},dr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},lr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Ir={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Tr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LISTS_SET_INDEX_SET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[dt.Msg.MIXLY_SPEED,"[1]"],[dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[dt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[dt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[dt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SERVO+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MOTOR+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr="#6C9858",Xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_ON,"1"],[dt.Msg.MIXLY_ESP32_OFF,"0"],[dt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},yr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Gr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LCD_SETCOLOR).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LIGHT_RED,"1"],[dt.Msg.MIXLY_LIGHT_GREEN,"2"],[dt.Msg.MIXLY_LIGHT_BLUE,"3"],[dt.Msg.MIXLY_LIGHT_YELLOW,"4"],[dt.Msg.MIXLY_LIGHT_CYAN,"5"],[dt.Msg.MIXLY_LIGHT_PURPLE,"6"],[dt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Ur={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Wr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Kr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},$r={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},td={init:function(){this.setColour(vr),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},sd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},_d={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},od={init:function(){this.setColour(vr),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ad={init:function(){this.setColour(vr),this.appendDummyInput().appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(vr),this.appendDummyInput("").appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},rd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Td={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"1"],[dt.Msg.TEXT_TRIM_RIGHT,"2"],[dt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Od={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"0"],[dt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},gd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sd={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_RECORD_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.MIXLY_ALL+dt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(dt.ALIGN_RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(dt.Msg.MIXLY_RELEASE).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT)}},vd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SPECIAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[dt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[dt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[dt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[dt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[dt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[dt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Xd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GENERAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},xd={init:function(){this.setColour(vr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new dt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(dt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},ch={init:function(){this.jsonInit({colour:dh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:dt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:dt.Msg.MIXLY_MICROBIT_Built_in_image})}},gh={init:function(){this.setColour(dh),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},Ch={init:function(){this.setColour(dh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(dt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new dt.FieldDropdown(Ch.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":dt.Msg.MIXLY_MICROBIT_image_add,"-":dt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[dt.Msg.MICROBIT_DISPLAY_UNION,"add"],[dt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Sh={init:function(){this.setColour(dh),this.appendValueInput("A").setCheck("esp32_image").appendField(dt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Ah={init:function(){this.setColour(dh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_LET2).appendField(new dt.FieldDropdown(Ah.OPERATORS),"OP"),this.appendValueInput("val").appendField(dt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=dt.Msg.DISPLAY_IMAGE_LET,n=dt.Msg.DISPLAY_IMAGE_LET2,s=dt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:dt.Msg.MIXLY_UP,shift_down:dt.Msg.MIXLY_DOWN,shift_left:dt.Msg.MIXLY_LEFT,shift_right:dt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[dt.Msg.MIXLY_UP,"shift_up"],[dt.Msg.MIXLY_DOWN,"shift_down"],[dt.Msg.MIXLY_LEFT,"shift_left"],[dt.Msg.MIXLY_RIGHT,"shift_right"]]},Lh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Nh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Dh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},fh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Fh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Clear_display)}},Ph={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Yh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(Yh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},vh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Xh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(Xh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},xh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},bh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(bh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},yh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.OLED_SET_FONT).appendField(new dt.FieldDropdown(yh.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+dt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+dt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+dt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Vh={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},Gh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(dt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},Uh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(dt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(dt.Msg.TEXT_CENTER).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},wh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(dt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Hh={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Wh={init:function(){this.jsonInit({colour:dh,args0:[{name:"state",options:[[dt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[dt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[dt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[dt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:dt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.jsonInit({colour:dh,args0:[{name:"state",options:[[dt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[dt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[dt.Msg.mpython_vertical,"0"],[dt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:dt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Jh={init:function(){this.jsonInit({colour:dh,args0:[{name:"state",options:[[dt.Msg.mpython_display_hline_1,"1"],[dt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.mpython_display_line_TOOLTIP,message0:dt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Qh={init:function(){this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new dt.FieldDropdown(Qh.IMAGES),"path"),this.setColour(dh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},qh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},zh={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(zh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},jh={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},$h={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Zh={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},tm={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new dt.FieldDropdown(tm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[dt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[dt.Msg.CLOCKWISE+"90"+dt.Msg.blockpy_setheading_degree,"1"],[dt.Msg.CLOCKWISE+"180"+dt.Msg.blockpy_setheading_degree,"2"],[dt.Msg.CLOCKWISE+"270"+dt.Msg.blockpy_setheading_degree,"3"]]},em={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new dt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},im={init:function(){this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(dt.inputs.Align.CENTRE).appendField(new dt.FieldBitmap(im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(dh),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},nm={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING)}},sm={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(dt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(dt.Msg.TEXT_CENTER).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},_m={init:function(){this.setColour(dh),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},om={init:function(){this.jsonInit({colour:dh,args0:[{name:"shape",options:[[dt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[dt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:dt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},pm={init:function(){this.jsonInit({colour:dh,args0:[{name:"dir_h_v",options:[[dt.Msg.mpython_vertical,"0"],[dt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:dt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},am={init:function(){this.jsonInit({colour:dh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,tooltip:dt.Msg.mpython_display_line_TOOLTIP,message0:dt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},um={init:function(){this.setColour(dh),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(dt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},rm={init:function(){this.setColour(dh),this.appendValueInput("x").setCheck(Number).appendField(dt.Msg.MIXLY_LCD_SETCOLOR).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},dm={init:function(){this.setColour(dh),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lm={init:function(){this.setColour(dh),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(dt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Im={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tm={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(dt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(dt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(dt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mm={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hm={init:function(){this.setColour(dh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mm={init:function(){this.jsonInit({colour:dh,args0:[{name:"shape",options:[[dt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[dt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:dt.Msg.mpython_HELPURL,message0:dt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Em={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER).appendField(dt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(dt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.DRAW_POINTER_TOOLTIP)}},Om={init:function(){this.setColour(dh),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER).appendField(dt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(dt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(dt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.DRAW_POINTER_TOOLTIP)}},Rm={init:function(){this.setColour(dh),this.appendValueInput("data").appendField(dt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},cm={init:function(){Th.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},gm={init:function(){mh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Cm={init:function(){Ah.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Sm={init:function(){Dh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Am={init:function(){fh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Lm={init:function(){Fh.init.call(this),this.appendDummyInput().appendField(`(${dt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(dt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Nm=180,Dm={init:function(){this.setColour(Nm),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(dt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_LET2).appendField(new dt.FieldDropdown(Dm.OPERATORS),"OP"),this.appendValueInput("val").appendField(dt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=dt.Msg.DISPLAY_IMAGE_LET,n=dt.Msg.DISPLAY_IMAGE_LET2,s=dt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"]]},fm={init:function(){this.setColour(Nm),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(dt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new dt.FieldDropdown(fm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":dt.Msg.MIXLY_MICROBIT_image_add,"-":dt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[dt.Msg.MICROBIT_DISPLAY_UNION,"+"],[dt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},Fm={init:function(){this.setColour(Nm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new dt.FieldDropdown(Fm.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_MICROBIT_IMAGE+{height:dt.Msg.MIXLY_HEIGHT,width:dt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[dt.Msg.MIXLY_HEIGHT,"height"],[dt.Msg.MIXLY_WIDTH,"width"]]},Pm={init:function(){this.setColour(Nm),this.appendValueInput("VAR").appendField(dt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RECT).appendField(new dt.FieldDropdown(Pm.STATUS),"OP"),this.jsonInit({message0:dt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_OLED_RECT)},STATUS:[[dt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[dt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Ym={init:function(){this.setColour(Nm),this.appendValueInput("VAR").appendField(dt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new dt.FieldDropdown(Ym.STATUS),"OP"),this.jsonInit({message0:dt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[dt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[dt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},vm={init:function(){this.setColour(Nm),this.appendValueInput("VAR").appendField(dt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_DISPLAY_DRAW+dt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new dt.FieldDropdown(vm.STATUS),"OP"),this.jsonInit({message0:dt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_DISPLAY_DRAW+dt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[dt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[dt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Xm="#777777",xm={init:function(){this.setColour(Xm),this.appendDummyInput("").appendField("from ").appendField(new dt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new dt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bm={init:function(){this.setColour(Xm),this.appendDummyInput("").appendField("import ").appendField(new dt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ym={init:function(){this.setColour(Xm),this.appendDummyInput("").appendField(new dt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},SE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},AE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},LE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},NE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_PROJECT).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},fE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},FE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},YE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},XE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},xE={init:function(){this.setColour(mE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},bE={init:function(){this.setColour(mE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},yE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},VE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(dt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},BE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+dt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UE={init:function(){this.VISITOR_ID=lt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(mE),this.appendDummyInput("").appendField(new dt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},wE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},HE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(dt.Msg.MIXLY_REQUESTS_GET).appendField(dt.Msg.MIXLY_GET_CURRENT_TIME).appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},WE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(dt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(dt.Msg.MQTT_Topic).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KE={init:function(){this.setColour(mE),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},JE=EE,QE=OE,qE=RE,zE=cE,jE=CE,$E={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(dt.Msg.MODEL_NAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(dt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZE={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO={init:function(){this.setColour(mE),this.appendDummyInput().appendField(dt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},eO={init:function(){this.setColour(mE),this.appendDummyInput().appendField("Ollama "+dt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO=225,nO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(dt.Msg.MIXLY_NETWORK_MODE).appendField(new dt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},sO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[dt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=dt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:dt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:dt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},_O={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},oO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:dt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},pO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},aO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_CONNECT+dt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},uO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[dt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:dt.Msg.MIXLY_ESP32_NETWORK_IP,1:dt.Msg.MIXLY_ESP32_NETWORK_MASK,2:dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},rO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},dO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},lO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(dt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},IO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},TO={init:function(){this.setColour(iO),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new dt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},MO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},hO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},mO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},EO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},OO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},RO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},cO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},gO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},CO={init:function(){this.setColour(iO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},SO={init:function(){this.setColour(iO),this.appendValueInput("DOMAIN").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS_GET).appendField(new dt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},AO={init:function(){this.appendValueInput("VAL"),this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(AO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:dt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:dt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:dt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},LO={init:function(){this.appendValueInput("VAR").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown(LO.METHOD),"DIR"),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:dt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:dt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},NO={init:function(){this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(dt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},DO={init:function(){this.setColour(iO),this.appendDummyInput("").appendField(new dt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},fO="#3288dd",FO={init:function(){this.setColour(fO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS).appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},PO={init:function(){this.setColour(fO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(dt.Msg.blockpy_REQUESTS+dt.Msg.OLED_STRING),this.appendDummyInput("").appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},YO={init:function(){this.appendValueInput("VAL"),this.setColour(fO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(YO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[dt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},vO={init:function(){this.setColour(fO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(dt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},XO={init:function(){this.setColour(fO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(dt.Msg.MIXLY_EMQX_PORT).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xO={init:function(){this.setColour(fO),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(dt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},bO={init:function(){this.setColour(fO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO={init:function(){this.setColour(fO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VO={init:function(){this.setColour(fO),this.appendDummyInput().appendField("mqtt"+dt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},BO=100,GO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},UO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},wO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},HO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},kO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},WO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},KO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(BO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},QO="#A58C5B",qO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_IS_PRESSED)}},zO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_WAS_PRESSED)}},jO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_BUTTON+dt.Msg.MIXLY_GET_PRESSES)}},$O={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[dt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[dt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},ZO={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"],[dt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down,freefall:dt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},tR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},eR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},iR={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(new dt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new dt.FieldDropdown(iR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},nR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},sR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},_R={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"left"],[dt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(dt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=dt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=dt.Msg.MIXLY_ESP32_NEAR;return i+{left:dt.Msg.TEXT_TRIM_LEFT,right:dt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},oR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[dt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},pR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[dt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},aR={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},uR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField("LM35"+dt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LM35)}},rR={init:function(){this.setColour(QO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[dt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[dt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[dt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[dt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[dt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[dt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[dt.Msg.HTML_COLOUR+"、"+dt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+dt.Msg.MIXLY_NEXT+"、"+dt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[dt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[dt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[dt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[dt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},dR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},lR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},IR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},TR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},MR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[dt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[dt.Msg.MIXLY_THE_FIRST,"3"],[dt.Msg.MIXLY_THE_SECOND,"4"],[dt.Msg.MIXLY_THE_THIRD,"5"],[dt.Msg.MIXLY_THE_FOURTH,"6"],[dt.Msg.MIXLY_THE_FIFTH,"7"],[dt.Msg.MIXLY_THE_SIXTH,"8"],[dt.Msg.MIXLY_THE_SEVENTH,"9"],[dt.Msg.MIXLY_THE_EIGHTH,"10"],[dt.Msg.MIXLY_THE_NINTH,"11"],[dt.Msg.MIXLY_THE_TENTH,"12"],[dt.Msg.MIXLY_THE_ELEVENTH,"13"],[dt.Msg.MIXLY_THE_TWELFTH,"14"],[dt.Msg.MIXLY_THE_13TH,"15"],[dt.Msg.MIXLY_THE_14TH,"16"],[dt.Msg.MIXLY_THE_15TH,"17"],[dt.Msg.MIXLY_THE_16TH,"18"],[dt.Msg.MIXLY_THE_17TH,"19"],[dt.Msg.MIXLY_THE_18TH,"20"],[dt.Msg.MIXLY_THE_19TH,"21"],[dt.Msg.MIXLY_THE_20TH,"22"],[dt.Msg.MIXLY_Turn_on_the_lights,"23"],[dt.Msg.MIXLY_Turn_off_the_lights,"24"],[dt.Msg.MIXLY_Turn_up_the_brightness,"25"],[dt.Msg.MIXLY_Turn_down_the_brightness,"26"],[dt.Msg.MIXLY_Set_it_to_red,"27"],[dt.Msg.MIXLY_Set_it_to_orange,"28"],[dt.Msg.MIXLY_Set_it_to_yellow,"29"],[dt.Msg.MIXLY_Set_it_to_green,"30"],[dt.Msg.MIXLY_Set_it_to_cyan,"31"],[dt.Msg.MIXLY_Set_it_to_blue,"32"],[dt.Msg.MIXLY_Set_it_to_purple,"33"],[dt.Msg.MIXLY_Set_it_to_white,"34"],[dt.Msg.MIXLY_Turn_on_the_fan,"35"],[dt.Msg.MIXLY_Turn_off_the_fan,"36"],[dt.Msg.MIXLY_First_gear,"37"],[dt.Msg.MIXLY_Wind_speed_second,"38"],[dt.Msg.MIXLY_Third_gear,"39"],[dt.Msg.MIXLY_Previous,"40"],[dt.Msg.MIXLY_Next_page,"41"],[dt.Msg.MIXLY_Show_smiley_face,"42"],[dt.Msg.MIXLY_Show_crying_face,"43"],[dt.Msg.MIXLY_Show_love,"44"],[dt.Msg.MIXLY_Close_display,"45"],[dt.Msg.MIXLY_Start_execution,"46"],[dt.Msg.MIXLY_FORWARD,"47"],[dt.Msg.MIXLY_BACKWARD,"48"],[dt.Msg.MIXLY_TURNLEFT,"49"],[dt.Msg.MIXLY_TURNRIGHT,"50"],[dt.Msg.MIXLY_STOP,"51"],[dt.Msg.MIXLY_Accelerate,"52"],[dt.Msg.MIXLY_retard,"53"],[dt.Msg.ROTATION_FORWARD,"54"],[dt.Msg.ROTATION_BACKWARD,"55"],[dt.Msg.MIXLY_Query_temperature,"56"],[dt.Msg.MIXLY_Query_humidity,"57"],[dt.Msg.MIXLY_Query_brightness,"58"],[dt.Msg.MIXLY_Query_sound,"59"],[dt.Msg.MIXLY_Query_time,"60"],[dt.Msg.MIXLY_Query_distance,"61"],[dt.Msg.MIXLY_Query_pressure,"62"],[dt.Msg.MIXLY_Query_key,"63"],[dt.Msg.MIXLY_Query_touch,"64"],[dt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(dt.Msg.MIXLY_WHETHER+dt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},mR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[dt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[dt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},ER={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MP3_PLAY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_WIND_SPEED,"154"],[dt.Msg.MIXLY_HYETAL,"155"],[dt.Msg.MIXLY_TEMPERATURE,"156"],[dt.Msg.MIXLY_Humidity,"157"],[dt.Msg.MIXLY_Altitude,"158"],[dt.Msg.MIXLY_SOUND,"159"],[dt.Msg.MIXLY_BRIGHTNESS,"160"],[dt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[dt.Msg.MIXLY_SERVO,"162"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[dt.Msg.MIXLY_BUTTON2,"164"],[dt.Msg.MIXLY_ESP32_TOUCH,"165"],[dt.Msg.MIXLY_PAY,"166"],[dt.Msg.MIXLY_CARSH_CHANGE,"167"],[dt.Msg.MIXLY_COUNTDOWN,"168"],[dt.Msg.MIXLY_TIMING,"169"],[dt.Msg.MIXLY_AT_THE_MOMENT,"170"],[dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[dt.Msg.MIXLY_FORWARD,"172"],[dt.Msg.MIXLY_BACKWARD,"173"],[dt.Msg.MIXLY_TURNLEFT,"174"],[dt.Msg.MIXLY_TURNRIGHT,"175"],[dt.Msg.MIXLY_STOP,"176"],[dt.Msg.MIXLY_Accelerate,"177"],[dt.Msg.MIXLY_retard,"178"],[dt.Msg.ROTATION_FORWARD,"179"],[dt.Msg.ROTATION_BACKWARD,"180"],[dt.Msg.TUPLE_JOIN,"181"],[dt.Msg.MIXLY_SHOW,"182"],[dt.Msg.MIXLY_LAMPLIGHT,"183"],[dt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(dt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(dt.Msg.MIXLY_UNIT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_YEAR,"117"],[dt.Msg.MIXLY_MONTH,"118"],[dt.Msg.MIXLY_DAY,"119"],[dt.Msg.MIXLY_HOUR,"120"],[dt.Msg.MIXLY_MINUTE,"121"],[dt.Msg.MIXLY_SECOND,"122"],[dt.Msg.MIXLY_WEEK2,"123"],[dt.Msg.MIXLY_RMB_UNIT,"124"],[dt.Msg.blockpy_setheading_degree,"125"],[dt.Msg.MIXLY_GEAR,"126"],[dt.Msg.MIXLY_LAYER,"127"],[dt.Msg.MIXLY_GRAM,"128"],[dt.Msg.MIXLY_METER,"129"],[dt.Msg.MIXLY_CENTIMETER,"130"],[dt.Msg.MIXLY_MILLIMETER,"131"],[dt.Msg.MIXLY_LUMEN,"132"],[dt.Msg.MIXLY_DECIBEL,"133"],[dt.Msg.MIXLY_hectopascal,"134"],[dt.Msg.MIXLY_PERCENT,"135"],[dt.Msg.MIXLY_CELSIUS,"136"],[dt.Msg.MIXLY_METER_PER_SEC,"137"],[dt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[dt.Msg.MIXLY_SUCCESS,"140"],[dt.Msg.MIXLY_FAILED,"141"],[dt.Msg.MIXLY_WRONG,"142"],[dt.Msg.MIXLY_GOOD,"143"],[dt.Msg.MIXLY_blockpy_set_add,"144"],[dt.Msg.MIXLY_DECREASE,"145"],[dt.Msg.COLOUR_RGB_RED,"146"],[dt.Msg.COLOUR_RGB_ORANGE,"147"],[dt.Msg.COLOUR_YELLOW,"148"],[dt.Msg.COLOUR_RGB_GREEN,"149"],[dt.Msg.COLOUR_CYAN,"150"],[dt.Msg.COLOUR_RGB_BLUE,"151"],[dt.Msg.COLOUR_RGB_PURPLE,"152"],[dt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},OR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXLY_SYSTEM+dt.Msg.MIXLY_CMD).appendField(new dt.FieldDropdown([[dt.Msg.MILXY_ENTER_WAKE_UP,"1"],[dt.Msg.MIXLY_INCREASE_VOLUME,"202"],[dt.Msg.MIXLY_REDUCE_VOLUME,"203"],[dt.Msg.MIXLY_MAX_VOLUME,"204"],[dt.Msg.MIXLY_MINIMUM,"205"],[dt.Msg.MIXLY_OPEN_RESPONSE,"206"],[dt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[dt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},RR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[dt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[dt.Msg.MIXLY_ESP32_MAX30102_IR+","+dt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[dt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[dt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+dt.Msg.HTML_COLOUR,"[2]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_IR_STRENGTH,"[1]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+"RGB"+dt.Msg.HTML_COLOUR,"0"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_RGB_RAW,"1"],[dt.Msg.MIXLY_GET_ENV_LIGHT+dt.Msg.MIXLY_BRIGHTNESS,"2"],[dt.Msg.GET_IR_STRENGTH+dt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[dt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},DR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},fR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(dt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MIXGOPE_FIELD+dt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[dt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},xR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},bR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET+dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},VR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},BR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_GETTEMPERATUE)}},GR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},UR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},wR={init:function(){this.setColour(QO),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},HR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[dt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},WR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},KR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},JR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(dt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},QR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_SCAN_OK,"0"],[dt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[dt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},zR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$R={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},jf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},$f=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},Zf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},tF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},eF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},nF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},sF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},_F=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},oF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},pF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},aF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},uF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},rF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},dF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},lF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},IF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},TF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},MF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},hF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},mF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},EF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},RF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},cF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},gF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},CF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},SF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},AF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},LF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},NF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},DF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},fF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},FF=function(t,e){e.definitions_.import_st7789="import st7789";var i=lt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},PF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},YF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},vF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},XF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},xF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},bF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},yF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},VF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},BF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},GF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},UF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},wF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},HF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=lt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},kF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},WF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},KF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},JF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},QF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},zF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},ZF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},tP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},eP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},iP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},nP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},sP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},_P=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===lt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},oP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},pP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},aP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},uP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},rP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},dP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},lP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},IP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},TP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},jP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},$P=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},ZP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},tY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},eY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},iY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},nY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},sY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},_Y=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},oY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},pY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},aY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},uY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},rY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},dY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},lY=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},IY=_P,TY=uP,MY=gP,hY=OP,mY=gP,EY=CP,OY=hP,RY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},cY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},gY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},LV=function(){return"control.reset()\n"},NV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},DV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},fV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},FV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},PV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},YV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},vV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},XV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},xV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},bV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},yV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},VV=function(){return"while True:\n pass\n"},BV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},GV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},UV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},wV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},HV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},kV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},WV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},KV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},JV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},QV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},qV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},zV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},jV=KV,$V=kV,ZV=WV,tB=UV,eB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},iB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},nB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},_B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},oB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},pB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},aB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},uB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},rB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},dB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},lB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},IB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},TB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},MB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},hB={};hB.MixGo={description:"MicroPython[ESP32 MixGo]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},hB["MixGo PE"]={description:"MicroPython[ESP32 MixGo PE]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin7","pin7"],["pin8","pin8"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:lt.Profile.generate(["0-7"]),exlcdv:lt.Profile.generate(["0-4"]),brightness:lt.Profile.generate(["0-9"]),tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},hB["ESP32 Generic(4MB)"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},hB.mPython={description:"MicroPython[ESP32 Generic]",digital_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],digital:[["pin0","pin33"],["pin1","pin32"],["pin2","pin35"],["pin5","pin0"],["pin6","pin16"],["pin7","pin17"],["pin8","pin26"],["pin9","pin25"],["pin11","pin2"],["pin13","pin18"],["pin14","pin19"],["pin15","pin21"],["pin16","pin5"],["pin19","pin22"],["pin20","pin23"]],input_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],output_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm:[["pwm0","pwm33"],["pwm1","pwm32"],["pwm5","pwm0"],["pwm6","pwm16"],["pwm7","pwm17"],["pwm8","pwm26"],["pwm9","pwm25"],["pwm11","pwm2"],["pwm13","pwm18"],["pwm14","pwm19"],["pwm15","pwm21"],["pwm16","pwm5"],["pwm19","pwm22"],["pwm20","pwm23"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["p0","33"],["p1","32"],["p2","35"],["p3","34"],["p4","39"],["p10","36"]],analog:[["adc0","adc33"],["adc1","adc32"],["adc2","adc35"],["adc3","adc34"],["adc4","adc39"],["adc10","adc36"]],dac_pin:[["p8","26"],["p9","25"]],dac:[["dac8","dac26"],["dac9","dac25"]],touch_mpython:[["p","p"],["y","y"],["t","t"],["h","h"],["o","o"],["n","n"]],touch:[["tc0","tc33"],["tc1","tc32"],["tc5","tc0"],["tc11","tc2"],["tc23","tc27"],["tc24","tc14"],["tc25","tc12"],["tc26","tc13"],["tc27","tc15"],["tc28","tc4"]],touch_pin:[["p0","33"],["p1","32"],["p5","0"],["p11","2"],["p23","27"],["p24","14"],["p25","12"],["p26","13"],["p27","15"],["p28","4"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const mB=hB,EB=230,OB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital),"PIN"),this.setOutput(!0)}},RB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},cB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},gB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},CB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},SB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},AB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},LB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},NB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},DB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},fB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},FB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},PB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},YB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},vB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},XB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},xB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog),"PIN"),this.setOutput(!0)}},yB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac),"PIN"),this.setOutput(!0)}},BB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},wB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},HB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},kB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch),"PIN"),this.setOutput(!0)}},WB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},KB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},JB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},QB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},qB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},zB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},jB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},$B={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},ZB={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},aG={init:function(){this.setColour(EB),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},uG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},rG=uG,dG=uG,lG=uG,IG=uG,TG=uG,MG=uG,hG=uG,mG=uG,EG=uG,OG=uG,RG=uG,cG=uG,gG=uG,CG=uG,SG=uG,AG=uG,LG=uG,NG=uG,DG=uG,fG=uG,FG=uG,PG=uG,YG=uG,vG=uG,XG=uG,xG=uG,bG=uG,yG=uG,VG=uG,BG=uG,GG=uG,UG=uG,wG=uG,HG=uG;Object.assign(dt.Variables,Tt),Object.assign(dt.Procedures,Lu),dt.Python=Nu,dt.generator=Nu,lt.Profile.default={},Object.assign(lt.Profile,mB),Object.assign(lt.Profile.default,mB["ESP32 Generic"]),Object.assign(dt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,b,H,w,Y,y,k,f,U,G,B,V,F,D,N,X,v,x,P,ut),Object.assign(dt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,tt,pt,ot,z,et,at,J,_t,st,nt,it,Q,K,W,$,j,Z,q,rt)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib-v1.23.0.bin b/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib-v1.23.0.bin index 5c2d3801..9d6e5cfe 100644 Binary files a/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib-v1.23.0.bin and b/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib_ble-v1.23.0.bin b/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib_ble-v1.23.0.bin index f39e6928..cf17729d 100644 Binary files a/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib_ble-v1.23.0.bin and b/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib_ble-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32c2/build/lib/map.json b/boards/default/micropython_esp32c2/build/lib/map.json index eaa22e56..1398f3c1 100644 --- a/boards/default/micropython_esp32c2/build/lib/map.json +++ b/boards/default/micropython_esp32c2/build/lib/map.json @@ -24,16 +24,6 @@ "__size__": 13061, "__name__": "mini_bot.py" }, - "mini_g2": { - "__require__": [ - "gc", - "machine", - "rc522" - ], - "__file__": true, - "__size__": 544, - "__name__": "mini_g2.py" - }, "mini_go": { "__require__": [ "time", @@ -46,6 +36,17 @@ "__size__": 8481, "__name__": "mini_go.py" }, + "mini_gx": { + "__require__": [ + "gc", + "machine", + "rc522", + "ci130x" + ], + "__file__": true, + "__size__": 736, + "__name__": "mini_gx.py" + }, "mixgo_mini": { "__require__": [ "time", diff --git a/boards/default/micropython_esp32c2/build/lib/mini_g2.py b/boards/default/micropython_esp32c2/build/lib/mini_gx.py similarity index 55% rename from boards/default/micropython_esp32c2/build/lib/mini_g2.py rename to boards/default/micropython_esp32c2/build/lib/mini_gx.py index c9c2a042..c7fa9c11 100644 --- a/boards/default/micropython_esp32c2/build/lib/mini_g2.py +++ b/boards/default/micropython_esp32c2/build/lib/mini_gx.py @@ -1,23 +1,31 @@ -""" -MINI G2 -MixGo MINI EXT G2 - -MicroPython library for the MINI G2 (Expansion board for MixGo MINI) -======================================================= -@dahanzimin From the Mixly Team -""" - -import gc -from machine import Pin, SoftI2C - -'''i2c-extboard''' -ext_i2c = SoftI2C(scl=Pin(7), sda=Pin(8), freq=400000) - -'''RFID_Sensor''' -try : - import rc522 - ext_rfid = rc522.RC522(ext_i2c) -except Exception as e: - print("Warning: Failed to communicate with SI522A (RFID) or",e) - -'''Reclaim memory''' -gc.collect() +""" +MINI GX -MixGo MINI EXT (G2, G5) + +MicroPython library for the MINI GX (Expansion board for MixGo MINI) +======================================================= +@dahanzimin From the Mixly Team +""" + +import gc +from machine import Pin, SoftI2C + +'''i2c-extboard''' +ext_i2c = SoftI2C(scl=Pin(7), sda=Pin(8), freq=400000) + +'''RFID_Sensor''' +try : + import rc522 + ext_rfid = rc522.RC522(ext_i2c) +except Exception as e: + print("Warning: Failed to communicate with SI522A (RFID) or",e) + +'''ASR_Sensor(G5)''' +try : + import ci130x + ext_asr = ci130x.CI130X(ext_i2c) +except Exception as e: + #print("Warning: Failed to communicate with CI130X (ASR) or",e) + pass + +'''Reclaim memory''' +gc.collect() diff --git a/boards/default/micropython_esp32c2/index.xml b/boards/default/micropython_esp32c2/index.xml index a70d78f9..9d547d2c 100644 --- a/boards/default/micropython_esp32c2/index.xml +++ b/boards/default/micropython_esp32c2/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.82997110010101000110050110011000110x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180292023,1,1,12,0,010044044010000412000000000001000100010020000Hello, Mixly!10Mixly0MixlyMixly500MixlyMixly50010.501001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京10000ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor1013.25xsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse192.168.1.1qwen2.5-coder:0.5b5请介绍一下米思齐?content_callbackcontent_callbackcontent请介绍一下米思齐? \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.82997110010101000110050110011000110x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180292023,1,1,12,0,010044044010000412000000000001000100010020000Hello, Mixly!10Mixly0MixlyMixly500MixlyMixly50010.501001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixly00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京10000ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor1013.25xsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse192.168.1.1qwen2.5-coder:0.5b5请介绍一下米思齐?content_callbackcontent_callbackcontent请介绍一下米思齐? \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/main.bundle.js b/boards/default/micropython_esp32c2/main.bundle.js index 7061dead..5f3054df 100644 --- a/boards/default/micropython_esp32c2/main.bundle.js +++ b/boards/default/micropython_esp32c2/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ae={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Le={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Le,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ge={init:function(){this.setColour(be),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Ue={init:function(){this.setColour(be),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},we={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ke={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},He={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},We={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ke={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Je={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Qe={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ze={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},je={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},$e={init:function(){this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},Ze={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ti={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(be),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},ei={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ii={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ni={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},si={init:function(){this.setColour(be),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},_i={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(be),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},oi={init:function(){this.setColour(be),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_n={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},on={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},pn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},an={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},un={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},rn={init:function(){this.setColour(tn),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},In={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Tn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},En={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},On={init:function(){this.setColour(tn),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Rn={init:function(){this.setColour(tn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(tn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Sn={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},An=210,Ln={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Nn={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},fn={init:function(){this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Fn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Pn={init:function(){this.setColour(An),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Yn={init:function(){this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},vn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Xn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},yn={init:function(){this.setColour(An),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Gn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},$n={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},es={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},is={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ns={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ss={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},_s={init:function(){var t=Ot.Procedures.findLegalName("",this),e=new Ot.FieldTextInput(t,Ot.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Ot.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Ot.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Ot.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Ot.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Ot.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Ot.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Ot.Events.enable()}},mutationToDom:function(t){var e=Ot.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},t_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},s_=160,__={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},o_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},p_={init:function(){this.setColour(s_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},a_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},r_={init:function(){this.setColour(s_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},l_={init:function(){this.setColour(s_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const oa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},pa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},aa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ua=function(t,e){return["None",e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},la=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},da=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ia=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Ta=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ma=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ea=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Oa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ga=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Aa=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},La=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},fa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Fa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Ya=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},va=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ba=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},cu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},gu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Cu=function(t,e){return'"},Su=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Au=function(){return this.getFieldValue("TEXT")+"\n"},Lu=function(t){return t.getFieldValue("TEXT")+"\n"},Nu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Du=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},fu=function(){return""},Fu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Pu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},yu.scrubNakedValue=function(t){return t+"\n"},yu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},yu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},yu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,yu.COMMENT_WRAP-3),n+=yu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const xu="#74A55B",bu={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Vu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Bu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Gu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Uu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},wu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},ku={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Hu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Ku={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ju={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},qu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Qu={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},$u={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},tr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},er={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},nr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},sr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},_r={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},or={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},pr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ar={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},ur={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},lr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},Ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Mr={},hr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},mr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Er={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Or={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Rr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},gr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Yr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Gr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ur="#6C9858",wr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},kr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Hr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},$r={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Zr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},tl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},el={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},il={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},nl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},_l={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},ol={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},pl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},al={init:function(){this.setColour(Ur),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ul={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},dl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Il={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tl={init:function(){this.setColour(Ur),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Ml={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},El={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Sl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Pl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Yl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Xl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},xl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Vl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},Ul={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},wl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},kl={init:function(){this.setColour(Ur),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},im={init:function(){this.jsonInit({colour:Kh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:Ot.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Ot.Msg.MIXLY_MICROBIT_Built_in_image})}},nm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},sm={init:function(){this.setColour(Kh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(sm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"add"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},_m={init:function(){this.setColour(Kh),this.appendValueInput("A").setCheck("esp32_image").appendField(Ot.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},om={init:function(){this.setColour(Kh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(om.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:Ot.Msg.MIXLY_UP,shift_down:Ot.Msg.MIXLY_DOWN,shift_left:Ot.Msg.MIXLY_LEFT,shift_right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"shift_up"],[Ot.Msg.MIXLY_DOWN,"shift_down"],[Ot.Msg.MIXLY_LEFT,"shift_left"],[Ot.Msg.MIXLY_RIGHT,"shift_right"]]},pm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},um={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},rm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},lm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Clear_display)}},dm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},hm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Em={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.OLED_SET_FONT).appendField(new Ot.FieldDropdown(Em.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+Ot.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Om={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Ot.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Sm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Lm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Dm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.mpython_display_hline_1,"1"],[Ot.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},fm={init:function(){this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(fm.IMAGES),"path"),this.setColour(Kh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Fm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Pm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Pm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},vm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Xm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new Ot.FieldDropdown(ym.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[Ot.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[Ot.Msg.CLOCKWISE+"90"+Ot.Msg.blockpy_setheading_degree,"1"],[Ot.Msg.CLOCKWISE+"180"+Ot.Msg.blockpy_setheading_degree,"2"],[Ot.Msg.CLOCKWISE+"270"+Ot.Msg.blockpy_setheading_degree,"3"]]},xm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},bm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(bm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},Vm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Bm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Um={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},km={init:function(){this.jsonInit({colour:Kh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Hm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Wm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Km={init:function(){this.setColour(Kh),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(Ot.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(Ot.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(Ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},$m={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},tE={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},eE={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){Qh.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){$h.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){om.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE={init:function(){rm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},pE={init:function(){lm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},aE=180,uE={init:function(){this.setColour(aE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Ot.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(uE.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"]]},rE={init:function(){this.setColour(aE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(rE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"+"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},lE={init:function(){this.setColour(aE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Ot.FieldDropdown(lE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE+{height:Ot.Msg.MIXLY_HEIGHT,width:Ot.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[Ot.Msg.MIXLY_HEIGHT,"height"],[Ot.Msg.MIXLY_WIDTH,"width"]]},dE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RECT).appendField(new Ot.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_OLED_RECT)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Ot.FieldDropdown(IE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},TE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Ot.FieldDropdown(TE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},ME="#777777",hE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("from ").appendField(new Ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new Ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("import ").appendField(new Ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField(new Ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},_O={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},pO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},aO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},rO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},lO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},MO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},hO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},mO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},EO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},OO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},RO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gO={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour($E),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},CO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},DO=ZE,fO=tO,FO=eO,PO=iO,YO=sO,vO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(Ot.Msg.MODEL_NAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(Ot.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},XO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},xO={init:function(){this.setColour($E),this.appendDummyInput().appendField("Ollama "+Ot.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bO=225,VO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},BO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},GO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},UO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},wO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},kO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},HO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},WO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},KO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},JO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},qO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},QO={init:function(){this.setColour(bO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},zO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},jO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},$O={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},ZO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},tR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},eR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},iR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},nR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},sR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},_R={init:function(){this.setColour(bO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},oR={init:function(){this.appendValueInput("VAL"),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(oR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},pR={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown(pR.METHOD),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},aR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},uR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},rR="#3288dd",lR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},dR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},IR={init:function(){this.appendValueInput("VAL"),this.setColour(rR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(IR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},TR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},MR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(rR),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},mR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ER={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},RR="#A58C5B",cR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},gR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},CR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},SR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},AR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},LR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},DR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(DR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]},fR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},FR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},PR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},YR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},vR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},XR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},yR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},xR={init:function(){this.setColour(RR),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},bR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},VR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},BR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},GR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},UR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},kR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},HR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},WR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},KR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},JR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$R={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},tc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ec={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},_c={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},pc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ac={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},lc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},dc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Tc={init:function(){this.setColour(RR),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ec={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Oc={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Rc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},gc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},qF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},QF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},zF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},eP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},iP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},sP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},_P=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},pP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},uP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},rP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},lP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},dP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},IP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},TP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},MP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},mP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},EP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},OP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},RP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},cP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},gP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},CP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},SP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},AP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},LP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},NP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},DP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},fP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},FP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},PP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},YP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},vP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},XP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},yP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},xP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},VP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},BP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},GP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},UP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},HP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},WP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},JP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},QP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},zP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},jP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},$P=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},ZP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},tY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},eY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},iY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Rt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},nY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},sY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},_Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},oY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},pY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},aY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},uY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},lY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},QY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},zY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},jY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},$Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},ZY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},tv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},ev=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},iv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},sv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},_v=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},ov=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},pv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},av=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},uv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},rv=iY,lv=oY,dv=OY,Iv=hY,Tv=OY,Mv=RY,hv=IY,mv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},Ev=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},Ov=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},MB=function(){return"control.reset()\n"},hB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},mB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},EB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},OB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},RB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},cB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},gB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},CB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},SB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},AB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},LB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},NB=function(){return"while True:\n pass\n"},DB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},fB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},FB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},PB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},YB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},vB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},XB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},yB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},xB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},bB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},VB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},BB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},GB=yB,UB=vB,wB=XB,kB=FB,HB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},JB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},qB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},QB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ZB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},eG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},iG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},nG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},sG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},_G={};_G["MixGo MINI"]={description:"MicroPython[ESP32C3 MixGo MINI]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},_G["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const oG=_G,pG=20,aG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},uG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},rG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},lG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},dG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},IG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},TG={init:function(){this.setColour(pG),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},MG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},hG={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},EG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},OG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},RG=hG,cG=EG,gG=TG,CG=MG,SG=40,AG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},LG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},DG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},FG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},PG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setOutput(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},YG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},vG=100,XG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},yG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},xG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},bG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},VG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},BG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},WG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},KG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},JG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},QG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},zG=230,jG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},$G={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},eU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},nU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},sU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_U={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},oU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},aU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},uU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},rU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},dU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},TU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},hU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},mU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},RU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},cU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},gU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},CU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},SU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},AU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},LU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},NU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},DU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},fU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},FU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},PU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},vU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},yU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},xU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},bU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},VU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},BU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},GU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},UU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},wU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},kU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},HU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},WU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},KU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},JU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},qU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},QU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},zU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},jU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},$U=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},ZU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},tw=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},ew=function(t,e){e.definitions_.import_mini_g2="import mini_g2";var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var n='ext_rfid.read_card(0, x="id")'}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";n='onboard_rfid.read_card(0, x="id")'}return[n,e.ORDER_ATOMIC]},iw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";s="onboard_rfid.read_card("+n+', x="content")'}return[s,e.ORDER_ATOMIC]},nw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";_="onboard_rfid.write_card("+s+", "+n+")\n"}return _},sw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";_="onboard_rfid.write_card("+s+", "+n+")"}return[_,e.ORDER_ATOMIC]},_w=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";s="onboard_rfid.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},ow=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},pw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},aw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},uw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},rw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},lw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},dw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},Iw=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},Tw=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},Mw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},hw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},mw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},Ew=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},Ow=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},Rw=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},cw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},gw=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Cw=gw,Sw=gw,Aw=gw,Lw=gw,Nw=gw,Dw=gw,fw=gw,Fw=gw,Pw=gw,Yw=gw,vw=gw,Xw=gw,yw=gw,xw=gw,bw=gw,Vw=gw,Bw=gw,Gw=gw,Uw=gw,ww=gw,kw=gw,Hw=gw,Ww=gw,Kw=gw,Jw=gw,qw=gw,Qw=gw,zw=gw,jw=gw,$w=gw,Zw=gw,tk=gw,ek=gw,ik=gw,nk=gw,sk=gw,_k=gw,ok=gw,pk=gw,ak=gw,uk=gw,rk=gw,lk=gw,dk=gw;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,Xu),Ot.Python=yu,Ot.generator=yu,Rt.Profile.default={},Object.assign(Rt.Profile,oG),Object.assign(Rt.Profile.default,oG["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,Z,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,$,Mt,ht,mt,Et)})(); \ No newline at end of file +class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ae={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Le={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Le,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ge={init:function(){this.setColour(be),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Ue={init:function(){this.setColour(be),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},we={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ke={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},He={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},We={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ke={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Je={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Qe={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ze={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},je={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},$e={init:function(){this.setColour(be),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},Ze={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ti={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(be),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},ei={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ii={init:function(){this.setColour(be),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ni={init:function(){this.setColour(be),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},si={init:function(){this.setColour(be),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},_i={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(be),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},oi={init:function(){this.setColour(be),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sn={init:function(){this.setColour(tn),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_n={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},on={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},pn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},an={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},un={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},rn={init:function(){this.setColour(tn),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},In={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Tn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},mn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},En={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},On={init:function(){this.setColour(tn),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Rn={init:function(){this.setColour(tn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(tn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn={init:function(){this.setColour(tn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Sn={init:function(){this.setColour(tn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},An=210,Ln={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Nn={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},fn={init:function(){this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Fn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Pn={init:function(){this.setColour(An),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Yn={init:function(){this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},vn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Xn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},yn={init:function(){this.setColour(An),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Gn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},$n={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},es={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},is={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ns={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ss={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},_s={init:function(){var t=Ot.Procedures.findLegalName("",this),e=new Ot.FieldTextInput(t,Ot.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Ot.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Ot.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Ot.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Ot.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Ot.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Ot.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Ot.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Ot.Events.enable()}},mutationToDom:function(t){var e=Ot.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},t_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},s_=160,__={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},o_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},p_={init:function(){this.setColour(s_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},a_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},r_={init:function(){this.setColour(s_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},l_={init:function(){this.setColour(s_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const oa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},pa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},aa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ua=function(t,e){return["None",e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},la=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},da=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Ia=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Ta=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ma=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ea=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Oa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ga=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Aa=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},La=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},fa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Fa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Ya=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},va=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ba=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},cu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},gu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Cu=function(t,e){return'"},Su=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Au=function(){return this.getFieldValue("TEXT")+"\n"},Lu=function(t){return t.getFieldValue("TEXT")+"\n"},Nu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Du=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},fu=function(){return""},Fu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Pu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},yu.scrubNakedValue=function(t){return t+"\n"},yu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},yu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},yu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,yu.COMMENT_WRAP-3),n+=yu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const xu="#74A55B",bu={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Vu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Bu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Gu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Uu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},wu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},ku={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Hu={init:function(){this.setColour(xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Ku={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ju={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},qu={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Qu={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(xu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},$u={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Zu={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},tr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},er={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},nr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},sr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},_r={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},or={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},pr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ar={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},ur={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},lr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},Ir={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Mr={},hr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},mr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Er={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Or={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Rr={init:function(){this.setColour(xu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},gr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Yr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(xu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br={init:function(){this.setColour(xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Gr={init:function(){this.setColour(xu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ur="#6C9858",wr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},kr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Hr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Wr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Qr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},zr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},jr={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},$r={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Zr={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},tl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},el={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},il={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},nl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},_l={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},ol={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},pl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},al={init:function(){this.setColour(Ur),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ul={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},dl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Il={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tl={init:function(){this.setColour(Ur),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Ml={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},El={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Sl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Ur),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Pl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Yl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Xl={init:function(){this.setColour(Ur),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},xl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Vl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Gl={init:function(){this.setColour(Ur),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},Ul={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},wl={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},kl={init:function(){this.setColour(Ur),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},im={init:function(){this.jsonInit({colour:Kh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:Ot.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Ot.Msg.MIXLY_MICROBIT_Built_in_image})}},nm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},sm={init:function(){this.setColour(Kh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(sm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"add"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},_m={init:function(){this.setColour(Kh),this.appendValueInput("A").setCheck("esp32_image").appendField(Ot.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},om={init:function(){this.setColour(Kh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(om.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:Ot.Msg.MIXLY_UP,shift_down:Ot.Msg.MIXLY_DOWN,shift_left:Ot.Msg.MIXLY_LEFT,shift_right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"shift_up"],[Ot.Msg.MIXLY_DOWN,"shift_down"],[Ot.Msg.MIXLY_LEFT,"shift_left"],[Ot.Msg.MIXLY_RIGHT,"shift_right"]]},pm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},um={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},rm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},lm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Clear_display)}},dm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},hm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},mm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Em={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.OLED_SET_FONT).appendField(new Ot.FieldDropdown(Em.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+Ot.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+Ot.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Om={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Ot.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Cm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Sm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Am={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Lm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[Ot.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Dm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"state",options:[[Ot.Msg.mpython_display_hline_1,"1"],[Ot.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},fm={init:function(){this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new Ot.FieldDropdown(fm.IMAGES),"path"),this.setColour(Kh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Fm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Pm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(Pm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},vm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Xm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},ym={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new Ot.FieldDropdown(ym.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[Ot.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[Ot.Msg.CLOCKWISE+"90"+Ot.Msg.blockpy_setheading_degree,"1"],[Ot.Msg.CLOCKWISE+"180"+Ot.Msg.blockpy_setheading_degree,"2"],[Ot.Msg.CLOCKWISE+"270"+Ot.Msg.blockpy_setheading_degree,"3"]]},xm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new Ot.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},bm={init:function(){this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Ot.inputs.Align.CENTRE).appendField(new Ot.FieldBitmap(bm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Kh),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},Vm={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING)}},Bm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(Ot.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(Ot.Msg.TEXT_CENTER).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gm={init:function(){this.setColour(Kh),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Um={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.jsonInit({colour:Kh,args0:[{name:"dir_h_v",options:[[Ot.Msg.mpython_vertical,"0"],[Ot.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},km={init:function(){this.jsonInit({colour:Kh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,tooltip:Ot.Msg.mpython_display_line_TOOLTIP,message0:Ot.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Hm={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Ot.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Wm={init:function(){this.setColour(Kh),this.appendValueInput("x").setCheck(Number).appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Km={init:function(){this.setColour(Kh),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(Ot.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(Ot.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(Ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jm={init:function(){this.setColour(Kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},$m={init:function(){this.jsonInit({colour:Kh,args0:[{name:"shape",options:[[Ot.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[Ot.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:Ot.Msg.mpython_HELPURL,message0:Ot.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zm={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},tE={init:function(){this.setColour(Kh),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER).appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(Ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.DRAW_POINTER_TOOLTIP)}},eE={init:function(){this.setColour(Kh),this.appendValueInput("data").appendField(Ot.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){Qh.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){$h.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){om.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE={init:function(){rm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},pE={init:function(){lm.init.call(this),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},aE=180,uE={init:function(){this.setColour(aE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Ot.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).appendField(new Ot.FieldDropdown(uE.OPERATORS),"OP"),this.appendValueInput("val").appendField(Ot.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Ot.Msg.DISPLAY_IMAGE_LET,n=Ot.Msg.DISPLAY_IMAGE_LET2,s=Ot.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"]]},rE={init:function(){this.setColour(aE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Ot.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Ot.FieldDropdown(rE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Ot.Msg.MIXLY_MICROBIT_image_add,"-":Ot.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Ot.Msg.MICROBIT_DISPLAY_UNION,"+"],[Ot.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},lE={init:function(){this.setColour(aE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Ot.FieldDropdown(lE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_MICROBIT_IMAGE+{height:Ot.Msg.MIXLY_HEIGHT,width:Ot.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[Ot.Msg.MIXLY_HEIGHT,"height"],[Ot.Msg.MIXLY_WIDTH,"width"]]},dE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RECT).appendField(new Ot.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_OLED_RECT)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Ot.FieldDropdown(IE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},TE={init:function(){this.setColour(aE),this.appendValueInput("VAR").appendField(Ot.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Ot.FieldDropdown(TE.STATUS),"OP"),this.jsonInit({message0:Ot.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_DISPLAY_DRAW+Ot.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[Ot.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Ot.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},ME="#777777",hE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("from ").appendField(new Ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new Ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField("import ").appendField(new Ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.setColour(ME),this.appendDummyInput("").appendField(new Ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},_O={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},pO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},aO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},rO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},lO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},MO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},hO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},mO={init:function(){this.setColour($E),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},EO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},OO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},RO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gO={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour($E),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},CO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour($E),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NO={init:function(){this.setColour($E),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},DO=ZE,fO=tO,FO=eO,PO=iO,YO=sO,vO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(Ot.Msg.MODEL_NAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(Ot.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},XO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO={init:function(){this.setColour($E),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},xO={init:function(){this.setColour($E),this.appendDummyInput().appendField("Ollama "+Ot.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bO=225,VO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},BO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},GO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},UO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},wO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},kO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},HO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},WO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},KO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},JO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},qO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},QO={init:function(){this.setColour(bO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},zO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},jO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},$O={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},ZO={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},tR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},eR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},iR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},nR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},sR={init:function(){this.setColour(bO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},_R={init:function(){this.setColour(bO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},oR={init:function(){this.appendValueInput("VAL"),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(oR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},pR={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown(pR.METHOD),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},aR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},uR={init:function(){this.setColour(bO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},rR="#3288dd",lR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},dR={init:function(){this.setColour(rR),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},IR={init:function(){this.appendValueInput("VAL"),this.setColour(rR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(IR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},TR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},MR={init:function(){this.setColour(rR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(rR),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},mR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ER={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},RR="#A58C5B",cR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},gR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},CR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},SR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},AR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},LR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},DR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(DR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]},fR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},FR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},PR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},YR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},vR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},XR={init:function(){this.setColour(RR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},yR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},xR={init:function(){this.setColour(RR),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},bR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},VR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},BR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},GR={init:function(){this.setColour(RR),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},UR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},kR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},HR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},WR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},KR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},JR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$R={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},tc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ec={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},_c={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},pc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ac={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},lc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},dc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Ic={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Tc={init:function(){this.setColour(RR),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},mc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ec={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Oc={init:function(){this.setColour(RR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Rc={init:function(){this.setColour(RR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},gc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Sc={init:function(){this.setColour(RR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},qF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},QF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},zF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},eP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},iP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},sP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},_P=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},pP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},uP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},rP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},lP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},dP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},IP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},TP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},MP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},mP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},EP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},OP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},RP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},cP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},gP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},CP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},SP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},AP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},LP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},NP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},DP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},fP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},FP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},PP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},YP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},vP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},XP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},yP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},xP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},bP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},VP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},BP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},GP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},UP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},HP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},WP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},JP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},QP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},zP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},jP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},$P=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},ZP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},tY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},eY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},iY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Rt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},nY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},sY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},_Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},oY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},pY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},aY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},uY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},lY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},QY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},zY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},jY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},$Y=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},ZY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},tv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},ev=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},iv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},sv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},_v=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},ov=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},pv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},av=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},uv=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},rv=iY,lv=oY,dv=OY,Iv=hY,Tv=OY,Mv=RY,hv=IY,mv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},Ev=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},Ov=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},MB=function(){return"control.reset()\n"},hB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},mB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},EB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},OB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},RB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},cB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},gB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},CB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},SB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},AB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},LB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},NB=function(){return"while True:\n pass\n"},DB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},fB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},FB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},PB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},YB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},vB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},XB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},yB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},xB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},bB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},VB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},BB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},GB=yB,UB=vB,wB=XB,kB=FB,HB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},JB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},qB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},QB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ZB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},eG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},iG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},nG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},sG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},_G={};_G["MixGo MINI"]={description:"MicroPython[ESP32C3 MixGo MINI]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},_G["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const oG=_G,pG=20,aG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},uG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},rG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},lG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},dG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},IG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},TG={init:function(){this.setColour(pG),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},MG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},hG={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},EG={init:function(){this.setColour(pG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},OG={init:function(){this.setColour(pG),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},RG=hG,cG=EG,gG=TG,CG=MG,SG=40,AG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},LG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},DG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},FG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},PG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setOutput(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},YG={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(SG),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.appendDummyInput().appendField(`(${Ot.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(Ot.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},vG=100,XG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},yG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},xG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},bG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},VG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},BG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},GG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},UG={init:function(){this.setColour(vG),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},WG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},KG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},JG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qG={init:function(){this.setColour(vG),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},QG={init:function(){this.setColour(vG),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},zG=230,jG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},$G={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},eU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},nU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},sU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_U={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},oU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},aU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},uU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},rU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},dU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},TU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},hU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},mU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},RU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},cU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},gU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},CU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},SU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},AU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},LU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},NU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},DU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},fU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},FU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},PU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},vU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},yU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},xU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},bU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},VU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},BU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},GU={init:function(){this.setColour(zG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},UU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},wU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},kU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},HU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},WU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},KU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},JU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},qU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},QU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},zU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},jU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},$U=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},ZU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},tw=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},ew=function(t,e){e.definitions_.import_mini_g2="import mini_g2";var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var n='ext_rfid.read_card(0, x="id")'}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";n='onboard_rfid.read_card(0, x="id")'}return[n,e.ORDER_ATOMIC]},iw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";s="onboard_rfid.read_card("+n+', x="content")'}return[s,e.ORDER_ATOMIC]},nw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";_="onboard_rfid.write_card("+s+", "+n+")\n"}return _},sw=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";_="onboard_rfid.write_card("+s+", "+n+")"}return[_,e.ORDER_ATOMIC]},_w=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";s="onboard_rfid.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},ow=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},pw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},aw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},uw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},rw=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},lw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},dw=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},Iw=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},Tw=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},Mw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},hw=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},mw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},Ew=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},Ow=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},Rw=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},cw=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},gw=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Cw=gw,Sw=gw,Aw=gw,Lw=gw,Nw=gw,Dw=gw,fw=gw,Fw=gw,Pw=gw,Yw=gw,vw=gw,Xw=gw,yw=gw,xw=gw,bw=gw,Vw=gw,Bw=gw,Gw=gw,Uw=gw,ww=gw,kw=gw,Hw=gw,Ww=gw,Kw=gw,Jw=gw,qw=gw,Qw=gw,zw=gw,jw=gw,$w=gw,Zw=gw,tk=gw,ek=gw,ik=gw,nk=gw,sk=gw,_k=gw,ok=gw,pk=gw,ak=gw,uk=gw,rk=gw,lk=gw,dk=gw;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,Xu),Ot.Python=yu,Ot.generator=yu,Rt.Profile.default={},Object.assign(Rt.Profile,oG),Object.assign(Rt.Profile.default,oG["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,Z,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,$,Mt,ht,mt,Et)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/styles/main.9995ef5e.css b/boards/default/micropython_esp32c2/styles/main.2e606000.css similarity index 97% rename from boards/default/micropython_esp32c2/styles/main.9995ef5e.css rename to boards/default/micropython_esp32c2/styles/main.2e606000.css index 5d60401a..b986c54e 100644 --- a/boards/default/micropython_esp32c2/styles/main.9995ef5e.css +++ b/boards/default/micropython_esp32c2/styles/main.2e606000.css @@ -187,6 +187,15 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NjowNCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTY6MDQrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NzQ1YzdjNjktY2JiZi1mMDRhLTg4ZGItMmQ4OWM4YjgzYjQwPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjc0NWM3YzY5LWNiYmYtZjA0YS04OGRiLTJkODljOGI4M2I0MDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjc0NWM3YzY5LWNiYmYtZjA0YS04OGRiLTJkODljOGI4M2I0MDwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3NDVjN2M2OS1jYmJmLWYwNGEtODhkYi0yZDg5YzhiODNiNDA8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+H1XW1AAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACSElEQVR42szXS4iNYRzH8c+ZSxqikZJrjchsJpcFsaKZUS4LC3YsKGWh2SIN2THYKEmSSyyNrEyUGSsiJaRcmhBTbhnXobl4bZ5Xp3GcM/O+58zxrN6e933e5/s8////9///M1EUKefIRFHUiIVJ12MIXXiQFOAWlqU4xCDOYVtSgNgGTxChYhQbj0cdejArDcB7TE2wfgK+4RnmlwNgCj6MAKADc7EG3bkA3mJaAoCZeI2nqM/z3Xlsxg8sDub+A/AzPJ/M4wMV4f39hADQhp34jBnoiwE+YvIITrsDx1MAwGlsDWHbGAMMBkfaUGDxQ7wbIUArqrA/x3+eh8hZhyul8oE4tO9gFb5kvVuOm3iJuhjgDaYXEWAeTmEFHqEhx202YGkmiqJ+DGBvlrzCuEB6I0UUdGElDmFX1vx2nMCRTBRFvaj9xwbX0ZwCoAbfw6Em4WuYr8dj3M1EUTSAfrQMC8Nq3MPtlDoQa8BGtIe5qnDrA6XyATmuew8OZM33ova/ABhugkyOnF+Ja3iRAOACNgWduTTMBP2FnDB7tOBYCiecGATvLyeMw3BfnhuoxsWQ9ZKEYRt25zDL4VL5wOzg/YWEaEkppLg6+FQsxc1Z8Z9TivMlo1fh56MBqMDRkHZb8ySjtegolI6vYnURCpJ4nMEWdKKpUEFSGaS4vUgAB0M++BTW9Y1lSXYZ60NJtijbrGNVlPbgVwjJ7nKU5VWhjyh6Y1KDOWkbk7St2RDOpmnNmrAgSO5oW+VMsG1nmua0rO357wEA7D8z1ZGqH+UAAAAASUVORK5CYII=) no-repeat; background-size: 100% auto; } +#catMINI_G5.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NjowNCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTY6MDQrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZTgzOWI5NTgtMjZhNy1kYTQwLTg1NDQtZWRkY2UzZjYzYmNhPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmU4MzliOTU4LTI2YTctZGE0MC04NTQ0LWVkZGNlM2Y2M2JjYTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmU4MzliOTU4LTI2YTctZGE0MC04NTQ0LWVkZGNlM2Y2M2JjYTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDplODM5Yjk1OC0yNmE3LWRhNDAtODU0NC1lZGRjZTNmNjNiY2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+w67uMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAFA0lEQVR42sSXS6hkVxWGv3/tfW4bgxIJNK1RuKJ4J42PgWJGCUkEHwMHcZSbgYKQgWRqRKI4izF3IoiERnzQ3pkRRwaFpB21GATRJpDuIDFog23EGNMm3XXOXr+DU1W36tbDJhlkD+ucOvtba/3r32vLNm/l0uHBfXdJfOSN/h+7DarnWpQ/iTEYI2SzkxOESQcArRSGqGghaB0e7P8W+OSbCGIw+klKX8ZLZBTaCGRtBfCU+iLYQNzoxsDbBbvAZSfvnT0wIpRIvmGAl2xOzlK1IdeglZ9vDvkq8HxaH1p8UNTmGyXx/wFInyTAEhzTpWQaBaWRPb4zrltD/ucigNG4eRijEbrxpMwHhlI+00f353AeAzBXpDyl4o3RX9PbaC7UHIicf+C2kP8GXEprbx59NDKCzDHyIM+Gfb/R633Uj1m6uAhwbRrlGcbY19TB0ahnmuKPAKW17QAaAdxEaY2sAdKjkflVS6/YvCecr80A/gW8a8yVNyqA5CvG3wcWS7ACEE4UHjNAoQ49GcH1ukPX2g9rDl9CPpfEXZbQ4cH+AFwF7t0meVsXDP849vMcoFl7YRNuEPFwhqrRt5QmS4EYn0XjBVu7rcbnMuKXMxFewT6FtA1gXX6WM6AxO+F0GCw/k9an+rrzn+qBkgMmbhecR7yYYncG8Hfsd/sYgOy5KuzYCuBkr0Wh7zq6Nvlg19oPEHckerZFOW1EbQMiQboAOp3SJ3R4sD8BesM3jgoOwAmZ87Z/M+3F0VC0OQOy6WtHkJRsCM7JvtPSd4YoD4WTaAnSA4jHDQc6PNh/GbhlbdrRU2ndo43iXAVoUXBopumbuhz+C6gR7wRenXrAnuA5i9/r8GC/BybYDy61oelU+IMifzezUlvz3t7WhtTRO4wI+6wa9zfpCyk9UTIRrkg90C9p4Fj4qHhsqQwiRm/v+w5bM59fCxDMzgFj4gHQ49hfF37EsxpKLwO3LANsOYYUSYmktcIw1DcEADyy4O9zgLEEmpdAqy5EAX4dkX+xRWvlBkowraf9UzX2m3RvSj8vmciuhHpgslWEyz4QDyZ875ggVwBk4xB9qYS9KMJ3AFfnIhTPmVGEE6DH/uaWDHRYPzM8fyNWbAmHCHvWho8OUb62pg0f2yzC1Z6cr1SstWJhSiYZ8T6Js8J3GD07LBmRQVwAnbb08a1WbIRtgukcgBY3Xz0Lxjc6FJPpF56xdc+k7rzauR9PRpXbhc8jv5jS7tbDyOivaS5pNhF5Kf3LJUj2HEHWiDoM35V4JdHDaqaVgooZS+AXjHZbic9m6MmF43ht8/3K6U+PaR8xtonQEn3tONGuI8zgyg4TmgrX4wQ1hx91OXzR4unmcvfsOL42jfYMPnJC4ZKKp1rEE7YoNKoGMsdJZ50PyGYolUIjSByiU8/QKk59u8gPJfq3zW2yX1ucCa/YnEoLpjOhnAy14hp02VNoRzo4gljpAksESWUYQzGkyy+MPg+83kf9qKVLq0Opx6F0SQPTjwU5n2znQ2orOOPWiFwaSuVxGnJoCgzFvhxu2Ue9cyjrh9KXFHmSmDv1aAg+6oZ1KzNu1ijgFYC+dnO9lNZqyTZkBEPZcDGRfNEbh9K1U+IA3GTr/YbLTC8mllCaVsuofpvIcT7YBPBmr2bN6MeLVzMx3h1mm20HeOy+u018mO1j8cZECGeLeHrxcjqr4cwztgK81dfz/w0AHjWdyjCbBL0AAAAASUVORK5CYII=) no-repeat; + background-size: 100% auto; +} + +#catMINI_G5.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NjowNCswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTY6MDQrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NzQ1YzdjNjktY2JiZi1mMDRhLTg4ZGItMmQ4OWM4YjgzYjQwPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjc0NWM3YzY5LWNiYmYtZjA0YS04OGRiLTJkODljOGI4M2I0MDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjc0NWM3YzY5LWNiYmYtZjA0YS04OGRiLTJkODljOGI4M2I0MDwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3NDVjN2M2OS1jYmJmLWYwNGEtODhkYi0yZDg5YzhiODNiNDA8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+H1XW1AAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACSElEQVR42szXS4iNYRzH8c+ZSxqikZJrjchsJpcFsaKZUS4LC3YsKGWh2SIN2THYKEmSSyyNrEyUGSsiJaRcmhBTbhnXobl4bZ5Xp3GcM/O+58zxrN6e933e5/s8////9///M1EUKefIRFHUiIVJ12MIXXiQFOAWlqU4xCDOYVtSgNgGTxChYhQbj0cdejArDcB7TE2wfgK+4RnmlwNgCj6MAKADc7EG3bkA3mJaAoCZeI2nqM/z3Xlsxg8sDub+A/AzPJ/M4wMV4f39hADQhp34jBnoiwE+YvIITrsDx1MAwGlsDWHbGAMMBkfaUGDxQ7wbIUArqrA/x3+eh8hZhyul8oE4tO9gFb5kvVuOm3iJuhjgDaYXEWAeTmEFHqEhx202YGkmiqJ+DGBvlrzCuEB6I0UUdGElDmFX1vx2nMCRTBRFvaj9xwbX0ZwCoAbfw6Em4WuYr8dj3M1EUTSAfrQMC8Nq3MPtlDoQa8BGtIe5qnDrA6XyATmuew8OZM33ova/ABhugkyOnF+Ja3iRAOACNgWduTTMBP2FnDB7tOBYCiecGATvLyeMw3BfnhuoxsWQ9ZKEYRt25zDL4VL5wOzg/YWEaEkppLg6+FQsxc1Z8Z9TivMlo1fh56MBqMDRkHZb8ySjtegolI6vYnURCpJ4nMEWdKKpUEFSGaS4vUgAB0M++BTW9Y1lSXYZ60NJtijbrGNVlPbgVwjJ7nKU5VWhjyh6Y1KDOWkbk7St2RDOpmnNmrAgSO5oW+VMsG1nmua0rO357wEA7D8z1ZGqH+UAAAAASUVORK5CYII=) no-repeat; + background-size: 100% auto; +} #catExternSensor.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA4xJREFUWEftllGIVFUYx//fnVaizSgkCu2hIMuoiKikMMKoB1OjIUGc+91ZmjBIg2R37qwPSU1UD3nPQKvkU8m2e891XUnToMWH2IgIFYRFEA2tiFLLh7JYKmfc+8U5c+/MiBkLjTMv3qd7zvnO9/3O/5zznY/Q5Y+6HB9XAS5RIFK5RTGc12OZGeorjR1sxxaFip8hksUzFzLjfRtHj7X6vAhgsly+5vT1J74E8JgxYl+3ZYu04u8B3A7gcDXuWVkYHP45hbgogFbudoAKdpCkzMXozTYp8D4B6+u+ZH91ek62UB7+24ZJA+jN7jo4tC1p72Rfr2lHcONjJMj3ZijeC+CpBOID9qOXGgBhmW9ALw4Q4R6AjsQZLMv3h2dSgLDCK+cQHV89EJ6cDZRW7kMAFrEf6dR+JMjf4VC8j4D7TF8s9GS+FH5hFYgCfk0Ib9cVkg1cirakE6PAKwjJdtOuZnpuKvQPn/sviOi93C1ywbF7LISnvaL+vKFyxeuDyEdJezf7epUF0Mr9BqC7APyI6+QBXh/9ZvuH3IWo0SEANwKYYl8/ODsF2Mx5xNj+5VTnrR3Y9WtDzYAniLDMtDPi3E+jgbfUIZm0xMBWz9evNoiVtweQbKJMjkvR2KwAAncNiHYktsPs6/rBtmo3FSWil0lXeAgCG1SA5Z6vJ6yh8rIC2VOfJmPsR7nW4Fp544A8AWAGoMO1uNb/wuDOb5vw7g6AkoMsq9iPdpux8S2Fm2vV6tnEbpS0asrVeu+1cjcB9JYxjImW5Ivh103nLP+mRI+TuW31wMgpMxZu5iXk4CuLL3jHK+lNDRUUTwqwFMAhA5AmidPs6wUtQT4G8Lxpn5uuzn2lvGvanosKfwLBc4liJ4lwHoJ7k3n2YJn/D999ce61mfN/1AWkz7gUrkh9h4ojAoyi3xkA47jXZCn29cMtRj8RsACEo1zU9upYAMVmhfNb+0PFJwi4E8Av7OtbG7YBHwfhbgBn2NfzWxRQAhQB/N5tgFpXt4CAU90+hFPdvYaEvV1NRAJs7Hgq1srbB8iz9nbGeLyjj5F5VUnwqQlOwEHX149agE48x/Uc0lw9IJ55rjtSkNjggbsNROuSZDTBvl6eKNHM6leqJNMV9w0IlZNIPyCWLA9GU5cAXMGi1D5eIvhTQCtMJZQuuyNleaRyWcDZIJCt6bN8WYDmhnTmry11//9BvQrwD1F8Qa3W8hbBAAAAAElFTkSuQmCC) no-repeat; diff --git a/boards/default/micropython_esp32c3/build/Generic_C3_UART_lib-v1.23.0.bin b/boards/default/micropython_esp32c3/build/Generic_C3_UART_lib-v1.23.0.bin index d80ff601..700d6cbe 100644 Binary files a/boards/default/micropython_esp32c3/build/Generic_C3_UART_lib-v1.23.0.bin and b/boards/default/micropython_esp32c3/build/Generic_C3_UART_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32c3/build/Mixgo_CC_lib-v1.23.0.bin b/boards/default/micropython_esp32c3/build/Mixgo_CC_lib-v1.23.0.bin index 2ff948a3..6567bbec 100644 Binary files a/boards/default/micropython_esp32c3/build/Mixgo_CC_lib-v1.23.0.bin and b/boards/default/micropython_esp32c3/build/Mixgo_CC_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32c3/build/Mixgo_Car_lib-v1.23.0.bin b/boards/default/micropython_esp32c3/build/Mixgo_Car_lib-v1.23.0.bin index 9265a665..5a60c16b 100644 Binary files a/boards/default/micropython_esp32c3/build/Mixgo_Car_lib-v1.23.0.bin and b/boards/default/micropython_esp32c3/build/Mixgo_Car_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32c3/build/Mixgo_ME_lib-v1.23.0.bin b/boards/default/micropython_esp32c3/build/Mixgo_ME_lib-v1.23.0.bin index 5d8b1aa2..5f22fdfa 100644 Binary files a/boards/default/micropython_esp32c3/build/Mixgo_ME_lib-v1.23.0.bin and b/boards/default/micropython_esp32c3/build/Mixgo_ME_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32c3/main.bundle.js b/boards/default/micropython_esp32c3/main.bundle.js index cd2e8924..5169e507 100644 --- a/boards/default/micropython_esp32c3/main.bundle.js +++ b/boards/default/micropython_esp32c3/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Ht={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},kt={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],kt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(xe),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(xe),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(xe),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(xe),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},He={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ke={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Qe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},qe={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(xe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(xe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(xe),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ze={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(xe),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(xe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(xe),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour($i),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour($i),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour($i),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour($i),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},An={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Yn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={init:function(){var t=mt.Procedures.findLegalName("",this),e=new mt.FieldTextInput(t,mt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new mt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&mt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(mt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(mt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(mt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(mt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=mt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),mt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{mt.Events.enable()}},mutationToDom:function(t){var e=mt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},xa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Au=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Lu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},vu.scrubNakedValue=function(t){return t+"\n"},vu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,vu.COMMENT_WRAP-3),n+=vu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Xu="#74A55B",xu={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},yu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Vu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Gu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Uu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},wu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Wu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ju={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},qu={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},$u={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},er={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ir={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},nr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},sr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},_r={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},or={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},pr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ar={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ur={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Ir={},Tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},hr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Er={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Or={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Rr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},yr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br="#6C9858",Gr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Ur={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},zr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},jr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},$r={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},el={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},_l={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ol={init:function(){this.setColour(Br),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},pl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},ul={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ll={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dl={init:function(){this.setColour(Br),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Il={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(Br),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Br),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ol={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},yl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},Bl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Gl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Ul={init:function(){this.setColour(Br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},tm={init:function(){this.jsonInit({colour:kh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},em={init:function(){this.setColour(kh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},im={init:function(){this.setColour(kh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(im.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},nm={init:function(){this.setColour(kh),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},sm={init:function(){this.setColour(kh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(sm.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]]},_m={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},om={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},pm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},am={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},um={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},rm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},lm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(lm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},hm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(hm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},mm={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Em={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Om={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},cm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},gm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cm={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Sm={init:function(){this.jsonInit({colour:kh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Am={init:function(){this.jsonInit({colour:kh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Lm={init:function(){this.jsonInit({colour:kh,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Nm.IMAGES),"path"),this.setColour(kh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(fm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Fm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Pm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ym={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},vm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(vm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]]},Xm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},xm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(xm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},ym={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},bm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Vm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Bm={init:function(){this.jsonInit({colour:kh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Gm={init:function(){this.jsonInit({colour:kh,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Um={init:function(){this.jsonInit({colour:kh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.setColour(kh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Hm={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},km={init:function(){this.setColour(kh),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wm={init:function(){this.setColour(kh),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Km={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.jsonInit({colour:kh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},jm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},$m={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Zm={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},tE={init:function(){Jh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},eE={init:function(){zh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){sm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){pm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){am.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE=180,pE={init:function(){this.setColour(oE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(mt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(pE.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"]]},aE={init:function(){this.setColour(oE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(aE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"+"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},uE={init:function(){this.setColour(oE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(uE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]]},rE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(rE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},lE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(lE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},dE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE="#777777",TE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ME={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_O={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},aO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},uO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},IO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},TO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},MO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},hO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},mO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},EO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RO={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(zE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},cO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},gO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO=jE,NO=$E,DO=ZE,fO=tO,FO=iO,PO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(mt.Msg.MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(mt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},YO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},XO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("Ollama "+mt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xO=225,yO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},bO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},VO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},BO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},GO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},UO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},HO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},kO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},WO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},KO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},JO={init:function(){this.setColour(xO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},QO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},qO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},zO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},jO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},$O={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},ZO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},tR={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},eR={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},iR={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},nR={init:function(){this.setColour(xO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},sR={init:function(){this.appendValueInput("VAL"),this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(sR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},_R={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown(_R.METHOD),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},oR={init:function(){this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pR={init:function(){this.setColour(xO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},aR="#3288dd",uR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},rR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},lR={init:function(){this.appendValueInput("VAL"),this.setColour(aR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(lR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},dR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},IR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TR={init:function(){this.setColour(aR),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},MR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},ER="#A58C5B",OR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},RR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},cR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},gR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},CR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},SR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},AR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},LR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(LR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},NR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},DR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},fR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},FR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},PR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},YR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},vR={init:function(){this.setColour(ER),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},XR={init:function(){this.setColour(ER),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},xR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},yR={init:function(){this.setColour(ER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},bR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},VR={init:function(){this.setColour(ER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},BR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},GR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},UR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},wR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},JR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},$R={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ZR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},_c={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},oc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},pc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ac={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},uc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},rc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},lc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},dc={init:function(){this.setColour(ER),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Ic={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Tc={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mc={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},hc={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mc={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Ec={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Oc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},Rc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},cc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},gc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},KF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},JF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},QF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},zF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},ZF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},tP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},eP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},iP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},nP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},_P=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},oP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},pP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},aP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},uP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},rP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},lP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},dP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},IP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},TP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},MP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},hP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},mP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},EP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},OP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},RP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},cP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},gP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},CP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},SP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},AP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},LP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},NP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},DP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},fP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},FP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},PP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},YP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},vP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},XP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},xP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},yP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},bP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},VP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},BP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},GP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},UP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},HP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},WP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},JP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},QP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},zP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},jP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},$P=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},ZP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},tY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Et.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},eY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},iY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},nY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},sY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},_Y=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},oY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},pY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},aY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},uY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},KY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},JY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},QY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},qY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},zY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},jY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},$Y=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},ZY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},tv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ev=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},iv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},nv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},sv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},_v=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},ov=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},pv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},av=tY,uv=sY,rv=mY,lv=TY,dv=mY,Iv=EY,Tv=lY,Mv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},hv=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},mv=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},IB=function(){return"control.reset()\n"},TB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},MB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},hB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},mB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},EB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},OB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},RB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},cB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},gB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},CB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},SB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},AB=function(){return"while True:\n pass\n"},LB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},NB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},DB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},fB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},FB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},PB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},YB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},vB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},XB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},xB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},yB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},bB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},VB=vB,BB=PB,GB=YB,UB=DB,wB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},HB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},kB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},KB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},JB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},QB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},qB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$B=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},ZB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},tG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},eG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},iG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},nG={};nG["MixGo CC"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},nG["MixGo ME"]={description:"MicroPython[ESP32C3 MixGo ME]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-7"]),exlcdv:Et.Profile.generate(["0-4"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},nG["MixGo Car 4.2"]={description:"MicroPython[ESP32]",digital_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],digital:[["pin0","pin0"],["pin1","pin1"],["pin2","pin2"],["pin3","pin3"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin20","pin20"],["pin21","pin21"]],pwm_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],pwm:[["pwm0","pwm0"],["pwm1","pwm1"],["pwm2","pwm2"],["pwm3","pwm3"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm6","pwm6"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm9","pwm9"],["pwm10","pwm10"],["pwm20","pwm20"],["pwm21","pwm21"]],espnow_channel:[["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"]],i2c_A_pin:[["6","6"],["9","9"]],i2c_B_pin:[["7","7"],["10","10"]],spi_A_pin:[["6","6"],["9","9"]],spi_B_pin:[["7","7"],["10","10"]],spi_C_pin:[["9","9"],["20","20"]],spi_D_pin:[["10","10"],["21","21"]],analog_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],analog:[["adc0","adc0"],["adc1","adc1"],["adc2","adc2"],["adc3","adc3"],["adc4","adc4"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],buttonB:[["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","matrix.Image.HEART"],["HEART_SMALL","matrix.Image.HEART_SMALL"],["HAPPY","matrix.Image.HAPPY"],["SAD","matrix.Image.SAD"],["SMILE","matrix.Image.SMILE"],["SILLY","matrix.Image.SILLY"],["FABULOUS","matrix.Image.FABULOUS"],["SURPRISED","matrix.Image.SURPRISED"],["ASLEEP","matrix.Image.ASLEEP"],["ANGRY","matrix.Image.ANGRY"],["CONFUSED","matrix.Image.CONFUSED"],["NO","matrix.Image.NO"],["YES","matrix.Image.YES"],["LEFT_ARROW","matrix.Image.LEFT_ARROW"],["RIGHT_ARROW","matrix.Image.RIGHT_ARROW"],["DRESS","matrix.Image.DRESS"],["TRANSFORMERS","matrix.Image.TRANSFORMERS"],["SCISSORS","matrix.Image.SCISSORS"],["EXIT","matrix.Image.EXIT"],["TREE","matrix.Image.TREE"],["PACMAN","matrix.Image.PACMAN"],["TARGET","matrix.Image.TARGET"],["TSHIRT","matrix.Image.TSHIRT"],["ROLLERSKATE","matrix.Image.ROLLERSKATE"],["DUCK","matrix.Image.DUCK"],["HOUSE","matrix.Image.HOUSE"],["TORTOISE","matrix.Image.TORTOISE"],["BUTTERFLY","matrix.Image.BUTTERFLY"],["STICKFIGURE","matrix.Image.STICKFIGURE"],["GHOST","matrix.Image.GHOST"],["PITCHFORK","matrix.Image.PITCHFORK"],["MUSIC_QUAVERS","matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER","matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET","matrix.Image.MUSIC_CROTCHET"],["COW","matrix.Image.COW"],["RABBIT","matrix.Image.RABBIT"],["SQUARE_SMALL","matrix.Image.SQUARE_SMALL"],["SQUARE","matrix.Image.SQUARE"],["DIAMOND_SMALL","matrix.Image.DIAMOND_SMALL"],["DIAMOND","matrix.Image.DIAMOND"],["CHESSBOARD","matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT","matrix.Image.TRIANGLE_LEFT"],["TRIANGLE","matrix.Image.TRIANGLE"],["SNAKE","matrix.Image.SNAKE"],["UMBRELLA","matrix.Image.UMBRELLA"],["SKULL","matrix.Image.SKULL"],["GIRAFFE","matrix.Image.GIRAFFE"],["SWORD","matrix.Image.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","music.DADADADUM"],["ENTERTAINER","music.ENTERTAINER"],["PRELUDE","music.PRELUDE"],["ODE","music.ODE"],["NYAN","music.NYAN"],["RINGTONE","music.RINGTONE"],["FUNK","music.FUNK"],["BLUES","music.BLUES"],["BIRTHDAY","music.BIRTHDAY"],["WEDDING","music.WEDDING"],["FUNERAL","music.FUNERAL"],["PUNCHLINE","music.PUNCHLINE"],["PYTHON","music.PYTHON"],["BADDY","music.BADDY"],["CHASE","music.CHASE"],["BA_DING","music.BA_DING"],["WAWAWAWAA","music.WAWAWAWAA"],["JUMP_UP","music.JUMP_UP"],["JUMP_DOWN","music.JUMP_DOWN"],["POWER_UP","music.POWER_UP"],["POWER_DOWN","music.POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},nG["ESP32C3 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const sG=nG,_G=20,oG={init:function(){this.setColour(_G),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},pG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},aG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},uG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},rG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},lG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},dG={init:function(){this.setColour(_G),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},IG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},TG={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},MG={init:function(){this.setColour(_G),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},hG={init:function(){this.setColour(_G),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},EG=TG,OG=hG,RG=dG,cG=IG,gG=40,CG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},SG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},LG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},NG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},DG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setOutput(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},FG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},PG=230,YG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},vG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},XG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},xG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},yG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},BG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},GG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},UG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},wG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},kG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},WG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},KG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},JG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},QG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},qG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},zG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},jG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},$G={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},eU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},nU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},sU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},_U={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},oU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},pU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},aU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},uU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},rU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},dU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},TU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},MU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},hU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},mU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},EU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},RU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},cU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},gU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},CU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},SU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},AU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},LU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},NU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},DU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},fU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},FU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},PU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},YU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},vU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},XU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_hp203x."+i,e.ORDER_ATOMIC]},xU=function(t,e){e.definitions_.import_me_g1="import me_g1";return["me_g1.varistor()",e.ORDER_ATOMIC]},yU=function(t,e){e.definitions_.import_me_g1="import me_g1";return['me_g1.ext_rc522.read_card(0, x="id")',e.ORDER_ATOMIC]},bU=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.read_card("+i+")",e.ORDER_ATOMIC]},VU=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1","me_g1.ext_rc522.write_card("+n+","+i+")\n"},BU=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.write_card("+n+","+i+")",e.ORDER_ATOMIC]},GU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.scan_card()=="+i,e.ORDER_ATOMIC]},UU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},wU=UU,HU=UU,kU=UU,WU=UU,KU=UU,JU=UU,QU=UU,qU=UU,zU=UU,jU=UU,$U=UU,ZU=UU,tw=UU,ew=UU,iw=UU,nw=UU,sw=UU,_w=UU,ow=UU,pw=UU,aw=UU,uw=UU,rw=UU,lw=UU,dw=UU,Iw=UU,Tw=UU,Mw=UU,hw=UU,mw=UU,Ew=UU,Ow=UU,Rw=UU,cw=UU,gw=UU,Cw=UU,Sw=UU,Aw=UU,Lw=UU,Nw=UU,Dw=UU,fw=UU,Fw=UU,Pw=UU;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Yu),mt.Python=vu,mt.generator=vu,Et.Profile.default={},Object.assign(Et.Profile,sG),Object.assign(Et.Profile.default,sG["MixGo CC"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,k,H,X,B,W,f,w,U,G,F,D,N,y,x,b,P,Y,v,lt,dt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,Z,st,rt,Q,pt,ot,_t,q,J,K,et,tt,it,z,j,$,Tt,Mt,ht)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Ht={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},kt={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],kt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(xe),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(xe),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(xe),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(xe),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},He={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ke={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Qe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},qe={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(xe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(xe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(xe),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ze={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(xe),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(xe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(xe),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(xe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(xe),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour($i),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour($i),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour($i),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour($i),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},An={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Yn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={init:function(){var t=mt.Procedures.findLegalName("",this),e=new mt.FieldTextInput(t,mt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new mt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&mt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(mt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(mt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(mt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(mt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=mt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),mt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{mt.Events.enable()}},mutationToDom:function(t){var e=mt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},xa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Au=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Lu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},vu.scrubNakedValue=function(t){return t+"\n"},vu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,vu.COMMENT_WRAP-3),n+=vu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Xu="#74A55B",xu={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},yu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Vu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Gu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Uu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},wu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Wu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ju={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},qu={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},$u={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},er={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ir={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},nr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},sr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},_r={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},or={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},pr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ar={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ur={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Ir={},Tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},hr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Er={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Or={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Rr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},yr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br="#6C9858",Gr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Ur={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},zr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},jr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},$r={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},el={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},_l={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ol={init:function(){this.setColour(Br),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},pl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},ul={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ll={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dl={init:function(){this.setColour(Br),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Il={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(Br),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Br),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ol={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},yl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},Bl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Gl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Ul={init:function(){this.setColour(Br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},tm={init:function(){this.jsonInit({colour:kh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},em={init:function(){this.setColour(kh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},im={init:function(){this.setColour(kh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(im.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},nm={init:function(){this.setColour(kh),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},sm={init:function(){this.setColour(kh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(sm.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]]},_m={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},om={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},pm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},am={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},um={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},rm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},lm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(lm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},hm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(hm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},mm={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Em={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Om={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},cm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},gm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cm={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Sm={init:function(){this.jsonInit({colour:kh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Am={init:function(){this.jsonInit({colour:kh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Lm={init:function(){this.jsonInit({colour:kh,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Nm.IMAGES),"path"),this.setColour(kh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(fm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Fm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Pm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ym={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},vm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(vm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]]},Xm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},xm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(xm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(kh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},ym={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},bm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Vm={init:function(){this.setColour(kh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Bm={init:function(){this.jsonInit({colour:kh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Gm={init:function(){this.jsonInit({colour:kh,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Um={init:function(){this.jsonInit({colour:kh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.setColour(kh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Hm={init:function(){this.setColour(kh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},km={init:function(){this.setColour(kh),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wm={init:function(){this.setColour(kh),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Km={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(kh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.jsonInit({colour:kh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},jm={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},$m={init:function(){this.setColour(kh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Zm={init:function(){this.setColour(kh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},tE={init:function(){Jh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},eE={init:function(){zh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){sm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){pm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){am.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE=180,pE={init:function(){this.setColour(oE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(mt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(pE.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"]]},aE={init:function(){this.setColour(oE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(aE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"+"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},uE={init:function(){this.setColour(oE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(uE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]]},rE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(rE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},lE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(lE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},dE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE="#777777",TE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ME={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_O={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},aO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},uO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},IO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},TO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},MO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},hO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},mO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},EO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RO={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(zE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},cO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},gO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO=jE,NO=$E,DO=ZE,fO=tO,FO=iO,PO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(mt.Msg.MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(mt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},YO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},XO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("Ollama "+mt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xO=225,yO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},bO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},VO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},BO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},GO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},UO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},HO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},kO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},WO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},KO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},JO={init:function(){this.setColour(xO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},QO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},qO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},zO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},jO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},$O={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},ZO={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},tR={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},eR={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},iR={init:function(){this.setColour(xO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},nR={init:function(){this.setColour(xO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},sR={init:function(){this.appendValueInput("VAL"),this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(sR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},_R={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown(_R.METHOD),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},oR={init:function(){this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pR={init:function(){this.setColour(xO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},aR="#3288dd",uR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},rR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},lR={init:function(){this.appendValueInput("VAL"),this.setColour(aR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(lR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},dR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},IR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TR={init:function(){this.setColour(aR),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},MR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},ER="#A58C5B",OR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},RR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},cR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},gR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},CR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},SR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},AR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},LR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(LR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},NR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},DR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},fR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},FR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},PR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},YR={init:function(){this.setColour(ER),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},vR={init:function(){this.setColour(ER),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},XR={init:function(){this.setColour(ER),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},xR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},yR={init:function(){this.setColour(ER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},bR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},VR={init:function(){this.setColour(ER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},BR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},GR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},UR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},wR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},JR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},$R={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ZR={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},_c={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},oc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},pc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ac={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},uc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},rc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},lc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},dc={init:function(){this.setColour(ER),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},Ic={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Tc={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mc={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},hc={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mc={init:function(){this.setColour(ER),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Ec={init:function(){this.setColour(ER),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Oc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},Rc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},cc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},gc={init:function(){this.setColour(ER),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},KF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},JF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},QF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},qF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},zF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},ZF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},tP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},eP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},iP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},nP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},_P=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},oP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},pP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},aP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},uP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},rP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},lP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},dP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},IP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},TP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},MP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},hP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},mP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},EP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},OP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},RP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},cP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},gP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},CP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},SP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},AP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},LP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},NP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},DP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},fP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},FP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},PP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},YP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},vP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},XP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},xP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},yP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},bP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},VP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},BP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},GP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},UP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},HP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},WP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},JP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},QP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},zP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},jP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},$P=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},ZP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},tY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Et.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},eY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},iY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},nY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},sY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},_Y=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},oY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},pY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},aY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},uY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},KY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},JY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},QY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},qY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},zY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},jY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},$Y=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},ZY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},tv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ev=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},iv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},nv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},sv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},_v=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},ov=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},pv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},av=tY,uv=sY,rv=mY,lv=TY,dv=mY,Iv=EY,Tv=lY,Mv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},hv=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},mv=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},IB=function(){return"control.reset()\n"},TB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},MB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},hB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},mB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},EB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},OB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},RB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},cB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},gB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},CB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},SB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},AB=function(){return"while True:\n pass\n"},LB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},NB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},DB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},fB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},FB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},PB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},YB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},vB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},XB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},xB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},yB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},bB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},VB=vB,BB=PB,GB=YB,UB=DB,wB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},HB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},kB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},KB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},JB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},QB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},qB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$B=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},ZB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},tG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},eG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},iG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},nG={};nG["MixGo CC"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},nG["MixGo ME"]={description:"MicroPython[ESP32C3 MixGo ME]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-7"]),exlcdv:Et.Profile.generate(["0-4"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},nG["MixGo Car 4.2"]={description:"MicroPython[ESP32]",digital_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],digital:[["pin0","pin0"],["pin1","pin1"],["pin2","pin2"],["pin3","pin3"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin20","pin20"],["pin21","pin21"]],pwm_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],pwm:[["pwm0","pwm0"],["pwm1","pwm1"],["pwm2","pwm2"],["pwm3","pwm3"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm6","pwm6"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm9","pwm9"],["pwm10","pwm10"],["pwm20","pwm20"],["pwm21","pwm21"]],espnow_channel:[["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"]],i2c_A_pin:[["6","6"],["9","9"]],i2c_B_pin:[["7","7"],["10","10"]],spi_A_pin:[["6","6"],["9","9"]],spi_B_pin:[["7","7"],["10","10"]],spi_C_pin:[["9","9"],["20","20"]],spi_D_pin:[["10","10"],["21","21"]],analog_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],analog:[["adc0","adc0"],["adc1","adc1"],["adc2","adc2"],["adc3","adc3"],["adc4","adc4"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],buttonB:[["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","matrix.Image.HEART"],["HEART_SMALL","matrix.Image.HEART_SMALL"],["HAPPY","matrix.Image.HAPPY"],["SAD","matrix.Image.SAD"],["SMILE","matrix.Image.SMILE"],["SILLY","matrix.Image.SILLY"],["FABULOUS","matrix.Image.FABULOUS"],["SURPRISED","matrix.Image.SURPRISED"],["ASLEEP","matrix.Image.ASLEEP"],["ANGRY","matrix.Image.ANGRY"],["CONFUSED","matrix.Image.CONFUSED"],["NO","matrix.Image.NO"],["YES","matrix.Image.YES"],["LEFT_ARROW","matrix.Image.LEFT_ARROW"],["RIGHT_ARROW","matrix.Image.RIGHT_ARROW"],["DRESS","matrix.Image.DRESS"],["TRANSFORMERS","matrix.Image.TRANSFORMERS"],["SCISSORS","matrix.Image.SCISSORS"],["EXIT","matrix.Image.EXIT"],["TREE","matrix.Image.TREE"],["PACMAN","matrix.Image.PACMAN"],["TARGET","matrix.Image.TARGET"],["TSHIRT","matrix.Image.TSHIRT"],["ROLLERSKATE","matrix.Image.ROLLERSKATE"],["DUCK","matrix.Image.DUCK"],["HOUSE","matrix.Image.HOUSE"],["TORTOISE","matrix.Image.TORTOISE"],["BUTTERFLY","matrix.Image.BUTTERFLY"],["STICKFIGURE","matrix.Image.STICKFIGURE"],["GHOST","matrix.Image.GHOST"],["PITCHFORK","matrix.Image.PITCHFORK"],["MUSIC_QUAVERS","matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER","matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET","matrix.Image.MUSIC_CROTCHET"],["COW","matrix.Image.COW"],["RABBIT","matrix.Image.RABBIT"],["SQUARE_SMALL","matrix.Image.SQUARE_SMALL"],["SQUARE","matrix.Image.SQUARE"],["DIAMOND_SMALL","matrix.Image.DIAMOND_SMALL"],["DIAMOND","matrix.Image.DIAMOND"],["CHESSBOARD","matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT","matrix.Image.TRIANGLE_LEFT"],["TRIANGLE","matrix.Image.TRIANGLE"],["SNAKE","matrix.Image.SNAKE"],["UMBRELLA","matrix.Image.UMBRELLA"],["SKULL","matrix.Image.SKULL"],["GIRAFFE","matrix.Image.GIRAFFE"],["SWORD","matrix.Image.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","music.DADADADUM"],["ENTERTAINER","music.ENTERTAINER"],["PRELUDE","music.PRELUDE"],["ODE","music.ODE"],["NYAN","music.NYAN"],["RINGTONE","music.RINGTONE"],["FUNK","music.FUNK"],["BLUES","music.BLUES"],["BIRTHDAY","music.BIRTHDAY"],["WEDDING","music.WEDDING"],["FUNERAL","music.FUNERAL"],["PUNCHLINE","music.PUNCHLINE"],["PYTHON","music.PYTHON"],["BADDY","music.BADDY"],["CHASE","music.CHASE"],["BA_DING","music.BA_DING"],["WAWAWAWAA","music.WAWAWAWAA"],["JUMP_UP","music.JUMP_UP"],["JUMP_DOWN","music.JUMP_DOWN"],["POWER_UP","music.POWER_UP"],["POWER_DOWN","music.POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},nG["ESP32C3 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const sG=nG,_G=20,oG={init:function(){this.setColour(_G),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},pG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},aG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},uG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},rG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},lG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},dG={init:function(){this.setColour(_G),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},IG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},TG={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},MG={init:function(){this.setColour(_G),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},hG={init:function(){this.setColour(_G),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},mG={init:function(){this.setColour(_G),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},EG=TG,OG=hG,RG=dG,cG=IG,gG=40,CG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},SG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},LG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},NG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},DG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setInputsInline(!0),this.setOutput(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},FG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(gG),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,Number),this.setInputsInline(!0),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},PG=230,YG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},vG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},XG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},xG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},yG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},BG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},GG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},UG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},wG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},kG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},WG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},KG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},JG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},QG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},qG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},zG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},jG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},$G={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},eU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},nU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},sU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},_U={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},oU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},pU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},aU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},uU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},rU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},dU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},TU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},MU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},hU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},mU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},EU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},RU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},cU={init:function(){this.setColour(PG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},gU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},CU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},SU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},AU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},LU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},NU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},DU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},fU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},FU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},PU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},YU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},vU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},XU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_hp203x."+i,e.ORDER_ATOMIC]},xU=function(t,e){e.definitions_.import_me_g1="import me_g1";return["me_g1.varistor()",e.ORDER_ATOMIC]},yU=function(t,e){e.definitions_.import_me_g1="import me_g1";return['me_g1.ext_rc522.read_card(0, x="id")',e.ORDER_ATOMIC]},bU=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.read_card("+i+")",e.ORDER_ATOMIC]},VU=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1","me_g1.ext_rc522.write_card("+n+","+i+")\n"},BU=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.write_card("+n+","+i+")",e.ORDER_ATOMIC]},GU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.scan_card()=="+i,e.ORDER_ATOMIC]},UU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},wU=UU,HU=UU,kU=UU,WU=UU,KU=UU,JU=UU,QU=UU,qU=UU,zU=UU,jU=UU,$U=UU,ZU=UU,tw=UU,ew=UU,iw=UU,nw=UU,sw=UU,_w=UU,ow=UU,pw=UU,aw=UU,uw=UU,rw=UU,lw=UU,dw=UU,Iw=UU,Tw=UU,Mw=UU,hw=UU,mw=UU,Ew=UU,Ow=UU,Rw=UU,cw=UU,gw=UU,Cw=UU,Sw=UU,Aw=UU,Lw=UU,Nw=UU,Dw=UU,fw=UU,Fw=UU,Pw=UU;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Yu),mt.Python=vu,mt.generator=vu,Et.Profile.default={},Object.assign(Et.Profile,sG),Object.assign(Et.Profile.default,sG["MixGo CC"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,k,H,X,B,W,f,w,U,G,F,D,N,y,x,b,P,Y,v,lt,dt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,Z,st,rt,Q,pt,ot,_t,q,J,K,et,tt,it,z,j,$,Tt,Mt,ht)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32s2/build/Generic_S2_lib-v1.23.0.bin b/boards/default/micropython_esp32s2/build/Generic_S2_lib-v1.23.0.bin index f68624cb..6e45b42e 100644 Binary files a/boards/default/micropython_esp32s2/build/Generic_S2_lib-v1.23.0.bin and b/boards/default/micropython_esp32s2/build/Generic_S2_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32s2/build/Mixgo_CE_lib-v1.23.0.bin b/boards/default/micropython_esp32s2/build/Mixgo_CE_lib-v1.23.0.bin index 7ab153f7..cd3921bd 100644 Binary files a/boards/default/micropython_esp32s2/build/Mixgo_CE_lib-v1.23.0.bin and b/boards/default/micropython_esp32s2/build/Mixgo_CE_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32s2/index.xml b/boards/default/micropython_esp32s2/index.xml index 44cd1069..13fca7df 100644 --- a/boards/default/micropython_esp32s2/index.xml +++ b/boards/default/micropython_esp32s2/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.82997110010101000110050110011000110x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_func2022711420452023,1,1,12,0,0180292023,1,1,12,0,0100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistancei2c_extend1718400000g6i2c_extendg6g6100g6g6100g6g6100g6wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京111113820000391000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor1013.25xsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr124ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.82997110010101000110050110011000110x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_func2022711420452023,1,1,12,0,0180292023,1,1,12,0,0100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistancei2c_extend1718400000g6i2c_extendg6g6100g6g6100g6g6100g6wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京111113820000391000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor1013.25xsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr124ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_esp32s2/main.bundle.js b/boards/default/micropython_esp32s2/main.bundle.js index 56c06538..a04187d6 100644 --- a/boards/default/micropython_esp32s2/main.bundle.js +++ b/boards/default/micropython_esp32s2/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ze={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour($i),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour($i),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour($i),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour($i),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},An={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Yn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={init:function(){var t=mt.Procedures.findLegalName("",this),e=new mt.FieldTextInput(t,mt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new mt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&mt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(mt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(mt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(mt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(mt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=mt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),mt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{mt.Events.enable()}},mutationToDom:function(t){var e=mt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Au=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Lu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},vu.scrubNakedValue=function(t){return t+"\n"},vu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,vu.COMMENT_WRAP-3),n+=vu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Xu="#74A55B",yu={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},xu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Vu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Gu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Uu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},wu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Hu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Wu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ju={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Qu={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},$u={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},er={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ir={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},nr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},sr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},_r={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},or={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},pr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ar={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ur={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Ir={},Tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},hr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Er={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Or={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Rr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br="#6C9858",Gr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Ur={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},zr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},jr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},$r={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},el={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},_l={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ol={init:function(){this.setColour(Br),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},pl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},ul={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ll={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dl={init:function(){this.setColour(Br),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Il={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(Br),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Br),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ol={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},Bl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Gl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Ul={init:function(){this.setColour(Br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},tm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},em={init:function(){this.setColour(Hh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},im={init:function(){this.setColour(Hh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(im.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},nm={init:function(){this.setColour(Hh),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},sm={init:function(){this.setColour(Hh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(sm.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]]},_m={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},om={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},pm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},am={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},um={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},rm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},lm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(lm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},hm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(hm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},mm={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Em={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Om={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},cm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},gm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cm={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Sm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Am={init:function(){this.jsonInit({colour:Hh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Lm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Nm.IMAGES),"path"),this.setColour(Hh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(fm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Fm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Pm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ym={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},vm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(vm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]]},Xm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},ym={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(ym.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},xm={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},bm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Vm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Bm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Gm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Um={init:function(){this.jsonInit({colour:Hh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.setColour(Hh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},km={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Hm={init:function(){this.setColour(Hh),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wm={init:function(){this.setColour(Hh),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Km={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},jm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},$m={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Zm={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},tE={init:function(){Jh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},eE={init:function(){zh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){sm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){pm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){am.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE=180,pE={init:function(){this.setColour(oE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(mt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(pE.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"]]},aE={init:function(){this.setColour(oE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(aE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"+"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},uE={init:function(){this.setColour(oE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(uE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]]},rE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(rE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},lE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(lE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},dE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE="#777777",TE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ME={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_O={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},aO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},uO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},IO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},TO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},MO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},hO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},mO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},EO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RO={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(zE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},cO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},gO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO=jE,NO=$E,DO=ZE,fO=tO,FO=iO,PO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(mt.Msg.MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(mt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},YO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},XO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("Ollama "+mt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO=225,xO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},bO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},VO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},BO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},GO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},UO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},kO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},HO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},WO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},KO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},JO={init:function(){this.setColour(yO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},qO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},QO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},zO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},jO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},$O={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},ZO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},tR={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},eR={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},iR={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},nR={init:function(){this.setColour(yO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},sR={init:function(){this.appendValueInput("VAL"),this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(sR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},_R={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown(_R.METHOD),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},oR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},aR="#3288dd",uR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},rR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},lR={init:function(){this.appendValueInput("VAL"),this.setColour(aR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(lR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},dR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},IR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TR={init:function(){this.setColour(aR),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},MR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},ER=100,OR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},RR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},SR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},AR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR="#A58C5B",DR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},fR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},FR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},PR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},YR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},vR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},XR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},yR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(yR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},xR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},bR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},VR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},BR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},GR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},UR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},wR={init:function(){this.setColour(NR),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},kR={init:function(){this.setColour(NR),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},HR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},WR={init:function(){this.setColour(NR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},KR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},JR={init:function(){this.setColour(NR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},qR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},QR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},zR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},jR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},$R={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tc={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_c={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},pc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ac={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},uc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},lc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},dc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ic={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},Tc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Mc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},hc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},mc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Ec={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},Oc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Rc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},cc={init:function(){this.setColour(NR),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},gc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ac={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Lc={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Nc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Dc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},fc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Fc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Pc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},eP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},nP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},_P=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},pP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},aP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},uP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},rP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},lP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},dP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},IP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},TP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},MP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},mP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},EP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},OP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},RP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},cP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},gP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},CP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},SP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},AP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},LP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},NP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},DP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},fP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},FP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},PP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},YP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},vP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},XP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},yP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},xP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},bP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},VP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},BP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},GP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},UP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},wP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},kP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},HP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},WP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},KP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},JP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},QP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},zP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},$P=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},tY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},eY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},iY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},nY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},sY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},_Y=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},oY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},pY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},aY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},uY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Et.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},rY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},lY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},dY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},IY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},EY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ev=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},iv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},nv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},sv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},_v=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},ov=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},pv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},av=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},uv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},rv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},lv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},dv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},Iv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},Tv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},Mv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},hv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},mv=uY,Ev=IY,Ov=LY,Rv=CY,cv=LY,gv=NY,Cv=RY,Sv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},Av=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},Lv=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},FB=function(){return"control.reset()\n"},PB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},YB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},vB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},XB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},yB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},xB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},bB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},VB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},BB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},GB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},UB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},wB=function(){return"while True:\n pass\n"},kB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},HB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},WB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},KB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},JB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},qB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},QB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},zB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},jB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},$B=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},ZB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},tG=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},eG=zB,iG=qB,nG=QB,sG=WB,_G=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},oG=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},pG=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},uG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},rG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},lG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},dG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},IG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},TG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},MG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},hG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},mG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},EG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},OG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},RG={};RG["MixGo CE"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21-46"]),input_pin:Et.Profile.generate(["0-18","21-46"]),output_pin:Et.Profile.generate(["0-18","21-45"]),pwm_input:Et.Profile.generate(["0-18","21-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-18","21-45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21-45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21-45"]),pwm:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},RG["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-42","45"]),input_pin:Et.Profile.generate(["0-42","45-46"]),output_pin:Et.Profile.generate(["0-42","45"]),pwm_input:Et.Profile.generate(["0-42","45-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-42","45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-42","45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-42","45"]),pwm:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-20"]),analog:Et.Profile.generate(["1-20"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const cG=RG,gG=20,CG={init:function(){this.setColour(gG),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},SG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},AG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},LG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},NG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},DG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},fG={init:function(){this.setColour(gG),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},FG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},PG={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},YG={init:function(){this.setColour(gG),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},vG={init:function(){this.setColour(gG),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},XG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},yG=PG,xG=vG,bG=fG,VG=FG,BG=230,GG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},UG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},wG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},kG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},WG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},KG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},JG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},qG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},QG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},zG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},jG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},$G={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},eU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},nU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},sU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},_U={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},oU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},pU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},aU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},uU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},rU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},dU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},TU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},MU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},hU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},mU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},EU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},RU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},cU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},gU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},CU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},SU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},AU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},LU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},NU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},DU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},fU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},FU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},PU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},YU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},vU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},XU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},yU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},xU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},bU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},VU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},BU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},GU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},UU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},wU=UU,kU=UU,HU=UU,WU=UU,KU=UU,JU=UU,qU=UU,QU=UU,zU=UU,jU=UU,$U=UU,ZU=UU,tw=UU,ew=UU,iw=UU,nw=UU,sw=UU,_w=UU,ow=UU,pw=UU,aw=UU,uw=UU,rw=UU,lw=UU,dw=UU,Iw=UU,Tw=UU,Mw=UU,hw=UU,mw=UU,Ew=UU,Ow=UU,Rw=UU,cw=UU,gw=UU,Cw=UU,Sw=UU,Aw=UU,Lw=UU,Nw=UU,Dw=UU,fw=UU,Fw=UU,Pw=UU;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Yu),mt.Python=vu,mt.generator=vu,Et.Profile.default={},Object.assign(Et.Profile,cG),Object.assign(Et.Profile.default,cG["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,W,H,X,B,K,f,k,w,U,G,F,D,N,x,y,b,P,Y,v,It,Tt),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,st,lt,rt,tt,_t,dt,Q,ut,at,pt,ot,z,q,J,it,et,nt,j,$,Z,Mt,ht)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ze={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour($i),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour($i),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour($i),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour($i),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},An={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Yn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={init:function(){var t=mt.Procedures.findLegalName("",this),e=new mt.FieldTextInput(t,mt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new mt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&mt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(mt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(mt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(mt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(mt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=mt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),mt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{mt.Events.enable()}},mutationToDom:function(t){var e=mt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Au=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Lu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},vu.scrubNakedValue=function(t){return t+"\n"},vu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,vu.COMMENT_WRAP-3),n+=vu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Xu="#74A55B",yu={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},xu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Vu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Gu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Uu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},wu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Hu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Wu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ju={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Qu={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},$u={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},er={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ir={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},nr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},sr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},_r={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},or={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},pr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ar={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ur={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Ir={},Tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},hr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Er={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Or={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Rr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br="#6C9858",Gr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Ur={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},zr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},jr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},$r={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},el={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},_l={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ol={init:function(){this.setColour(Br),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},pl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},ul={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ll={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dl={init:function(){this.setColour(Br),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Il={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(Br),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Br),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ol={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},Bl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Gl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Ul={init:function(){this.setColour(Br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},tm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},em={init:function(){this.setColour(Hh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},im={init:function(){this.setColour(Hh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(im.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},nm={init:function(){this.setColour(Hh),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},sm={init:function(){this.setColour(Hh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(sm.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]]},_m={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},om={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},pm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},am={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},um={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},rm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},lm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(lm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Im={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Tm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Mm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Mm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},hm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(hm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},mm={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Em={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Om={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Rm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},cm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},gm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cm={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Sm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Am={init:function(){this.jsonInit({colour:Hh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Lm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Nm={init:function(){this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Nm.IMAGES),"path"),this.setColour(Hh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Dm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(fm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Fm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Pm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ym={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},vm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(vm.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]]},Xm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},ym={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(ym.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(Hh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},xm={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},bm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Vm={init:function(){this.setColour(Hh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Bm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Gm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Um={init:function(){this.jsonInit({colour:Hh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},wm={init:function(){this.setColour(Hh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},km={init:function(){this.setColour(Hh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Hm={init:function(){this.setColour(Hh),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Wm={init:function(){this.setColour(Hh),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Km={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Jm={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qm={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Qm={init:function(){this.setColour(Hh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zm={init:function(){this.jsonInit({colour:Hh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},jm={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},$m={init:function(){this.setColour(Hh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Zm={init:function(){this.setColour(Hh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},tE={init:function(){Jh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},eE={init:function(){zh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},iE={init:function(){sm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},nE={init:function(){pm.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},sE={init:function(){am.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},_E={init:function(){um.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},oE=180,pE={init:function(){this.setColour(oE),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(mt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(pE.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"]]},aE={init:function(){this.setColour(oE),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(aE.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"+"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},uE={init:function(){this.setColour(oE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(uE.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]]},rE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(rE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},lE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(lE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},dE={init:function(){this.setColour(oE),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(dE.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},IE="#777777",TE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ME={init:function(){this.setColour(IE),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.setColour(IE),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_O={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},oO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},aO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},uO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},IO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},TO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},MO={init:function(){this.setColour(zE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},hO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},mO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},EO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RO={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(zE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},cO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},gO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LO=jE,NO=$E,DO=ZE,fO=tO,FO=iO,PO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(mt.Msg.MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(mt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},YO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vO={init:function(){this.setColour(zE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},XO={init:function(){this.setColour(zE),this.appendDummyInput().appendField("Ollama "+mt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yO=225,xO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},bO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},VO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},BO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},GO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},UO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},kO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},HO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},WO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},KO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},JO={init:function(){this.setColour(yO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},qO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},QO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},zO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},jO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},$O={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},ZO={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},tR={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},eR={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},iR={init:function(){this.setColour(yO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},nR={init:function(){this.setColour(yO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},sR={init:function(){this.appendValueInput("VAL"),this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(sR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},_R={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown(_R.METHOD),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},oR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},aR="#3288dd",uR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},rR={init:function(){this.setColour(aR),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},lR={init:function(){this.appendValueInput("VAL"),this.setColour(aR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(lR.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},dR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},IR={init:function(){this.setColour(aR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TR={init:function(){this.setColour(aR),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},MR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mR={init:function(){this.setColour(aR),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},ER=100,OR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},RR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},SR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},AR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(ER),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR="#A58C5B",DR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},fR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},FR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},PR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},YR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},vR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},XR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},yR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(yR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},xR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},bR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},VR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},BR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},GR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},UR={init:function(){this.setColour(NR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},wR={init:function(){this.setColour(NR),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},kR={init:function(){this.setColour(NR),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},HR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},WR={init:function(){this.setColour(NR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},KR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},JR={init:function(){this.setColour(NR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},qR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},QR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},zR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},jR={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},$R={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tc={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_c={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},pc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ac={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},uc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},lc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},dc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ic={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},Tc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Mc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},hc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},mc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Ec={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},Oc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Rc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},cc={init:function(){this.setColour(NR),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},gc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ac={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Lc={init:function(){this.setColour(NR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Nc={init:function(){this.setColour(NR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Dc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},fc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Fc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Pc={init:function(){this.setColour(NR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},eP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},nP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},_P=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},pP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},aP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},uP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},rP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},lP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},dP=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},IP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},TP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},MP=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},mP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},EP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},OP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},RP=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},cP=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},gP=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},CP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},SP=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},AP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},LP=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},NP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},DP=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},fP=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},FP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},PP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},YP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},vP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},XP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},yP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},xP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},bP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},VP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},BP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},GP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},UP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},wP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},kP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},HP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},WP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},KP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},JP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},qP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},QP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},zP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},jP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},$P=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},ZP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},tY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},eY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},iY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},nY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},sY=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},_Y=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},oY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},pY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},aY=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},uY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Et.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},rY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},lY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},dY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},IY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},EY=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ev=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},iv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},nv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},sv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},_v=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},ov=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},pv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},av=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},uv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},rv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},lv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},dv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},Iv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},Tv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},Mv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},hv=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},mv=uY,Ev=IY,Ov=LY,Rv=CY,cv=LY,gv=NY,Cv=RY,Sv=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},Av=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},Lv=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},FB=function(){return"control.reset()\n"},PB=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},YB=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},vB=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},XB=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},yB=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},xB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},bB=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},VB=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},BB=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},GB=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},UB=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},wB=function(){return"while True:\n pass\n"},kB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},HB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},WB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},KB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},JB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},qB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},QB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},zB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},jB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},$B=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},ZB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},tG=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},eG=zB,iG=qB,nG=QB,sG=WB,_G=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},oG=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},pG=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},uG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},rG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},lG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},dG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},IG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},TG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},MG=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},hG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},mG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},EG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},OG=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},RG={};RG["MixGo CE"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21-46"]),input_pin:Et.Profile.generate(["0-18","21-46"]),output_pin:Et.Profile.generate(["0-18","21-45"]),pwm_input:Et.Profile.generate(["0-18","21-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-18","21-45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21-45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21-45"]),pwm:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},RG["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-42","45"]),input_pin:Et.Profile.generate(["0-42","45-46"]),output_pin:Et.Profile.generate(["0-42","45"]),pwm_input:Et.Profile.generate(["0-42","45-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-42","45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-42","45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-42","45"]),pwm:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-20"]),analog:Et.Profile.generate(["1-20"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const cG=RG,gG=20,CG={init:function(){this.setColour(gG),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},SG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},AG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},LG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},NG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},DG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},fG={init:function(){this.setColour(gG),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},FG={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},PG={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},YG={init:function(){this.setColour(gG),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},vG={init:function(){this.setColour(gG),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},XG={init:function(){this.setColour(gG),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},yG=PG,xG=vG,bG=fG,VG=FG,BG=230,GG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},UG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},wG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},kG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},WG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},KG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},JG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},qG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},QG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},zG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},jG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},$G={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},ZG={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},tU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},eU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},iU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},nU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},sU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},_U={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},oU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},pU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},aU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},uU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},rU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},lU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},dU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},IU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},TU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},MU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},hU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},mU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},EU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},OU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},RU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},cU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},gU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},CU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},SU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},AU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},LU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},NU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},DU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},fU={init:function(){this.setColour(BG),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},FU=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},PU=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},YU=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},vU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},XU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},yU=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},xU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},bU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},VU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},BU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},GU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},UU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},wU=UU,kU=UU,HU=UU,WU=UU,KU=UU,JU=UU,qU=UU,QU=UU,zU=UU,jU=UU,$U=UU,ZU=UU,tw=UU,ew=UU,iw=UU,nw=UU,sw=UU,_w=UU,ow=UU,pw=UU,aw=UU,uw=UU,rw=UU,lw=UU,dw=UU,Iw=UU,Tw=UU,Mw=UU,hw=UU,mw=UU,Ew=UU,Ow=UU,Rw=UU,cw=UU,gw=UU,Cw=UU,Sw=UU,Aw=UU,Lw=UU,Nw=UU,Dw=UU,fw=UU,Fw=UU,Pw=UU;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Yu),mt.Python=vu,mt.generator=vu,Et.Profile.default={},Object.assign(Et.Profile,cG),Object.assign(Et.Profile.default,cG["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,W,H,X,B,K,f,k,w,U,G,F,D,N,x,y,b,P,Y,v,It,Tt),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,st,lt,rt,tt,_t,dt,Q,ut,at,pt,ot,z,q,J,it,et,nt,j,$,Z,Mt,ht)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32s3/build/Mixgo_Nova_lib-v1.21.0.bin b/boards/default/micropython_esp32s3/build/Mixgo_Nova_lib-v1.21.0.bin index 3a4efe92..8ebde6bc 100644 Binary files a/boards/default/micropython_esp32s3/build/Mixgo_Nova_lib-v1.21.0.bin and b/boards/default/micropython_esp32s3/build/Mixgo_Nova_lib-v1.21.0.bin differ diff --git a/boards/default/micropython_esp32s3/build/Mixgo_Sant_lib-v1.23.0.bin b/boards/default/micropython_esp32s3/build/Mixgo_Sant_lib-v1.23.0.bin index cbaefe83..7de4ccf1 100644 Binary files a/boards/default/micropython_esp32s3/build/Mixgo_Sant_lib-v1.23.0.bin and b/boards/default/micropython_esp32s3/build/Mixgo_Sant_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_esp32s3/main.bundle.js b/boards/default/micropython_esp32s3/main.bundle.js index 309a14c7..56a81965 100644 --- a/boards/default/micropython_esp32s3/main.bundle.js +++ b/boards/default/micropython_esp32s3/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ze={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour($i),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour($i),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour($i),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour($i),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},An={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Yn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={init:function(){var t=mt.Procedures.findLegalName("",this),e=new mt.FieldTextInput(t,mt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new mt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&mt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(mt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(mt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(mt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(mt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=mt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),mt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{mt.Events.enable()}},mutationToDom:function(t){var e=mt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Au=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Lu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},vu.scrubNakedValue=function(t){return t+"\n"},vu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,vu.COMMENT_WRAP-3),n+=vu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Xu="#74A55B",yu={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},xu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Vu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Gu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Uu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},wu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Hu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Wu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ju={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Qu={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},$u={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},er={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ir={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},nr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},sr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},_r={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},or={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},pr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ar={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ur={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Ir={},Tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},hr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Er={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Or={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Rr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br="#6C9858",Gr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Ur={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},zr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},jr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},$r={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},el={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},_l={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ol={init:function(){this.setColour(Br),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},pl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},ul={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ll={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dl={init:function(){this.setColour(Br),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Il={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(Br),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Br),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ol={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},Bl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Gl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Ul={init:function(){this.setColour(Br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},Nh={init:function(){this.jsonInit({colour:mh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Dh={init:function(){this.setColour(mh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},fh={init:function(){this.setColour(mh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(fh.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Fh={init:function(){this.setColour(mh),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Ph={init:function(){this.setColour(mh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(Ph.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]]},Yh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},vh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Xh={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},yh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},xh={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},bh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Vh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Vh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Bh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Gh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Gh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Uh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},wh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(wh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},kh={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(kh.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Hh={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Wh={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Kh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Jh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},qh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Qh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},jh={init:function(){this.jsonInit({colour:mh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},$h={init:function(){this.jsonInit({colour:mh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zh={init:function(){this.jsonInit({colour:mh,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},tm={init:function(){this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(tm.IMAGES),"path"),this.setColour(mh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},em={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},im={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},nm={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},sm={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},_m={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},om={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(om.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]]},pm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},am={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(am.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},um={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},rm={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},lm={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dm={init:function(){this.jsonInit({colour:mh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Im={init:function(){this.jsonInit({colour:mh,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Tm={init:function(){this.jsonInit({colour:mh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Mm={init:function(){this.setColour(mh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},hm={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},mm={init:function(){this.setColour(mh),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Em={init:function(){this.setColour(mh),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Om={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rm={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cm={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gm={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cm={init:function(){this.jsonInit({colour:mh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Sm={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Am={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Lm={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Nm={init:function(){Rh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Dm={init:function(){Ch.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fm={init:function(){Ph.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Fm={init:function(){Xh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Pm={init:function(){yh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Ym={init:function(){xh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},vm=180,Xm={init:function(){this.setColour(vm),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(mt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(Xm.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"]]},ym={init:function(){this.setColour(vm),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(ym.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"+"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},xm={init:function(){this.setColour(vm),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(xm.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]]},bm={init:function(){this.setColour(vm),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(bm.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Vm={init:function(){this.setColour(vm),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(Vm.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Bm={init:function(){this.setColour(vm),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(Bm.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Gm="#777777",Um={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wm={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},km={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},FE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},PE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},YE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},XE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},yE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},xE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},BE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},GE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},UE={init:function(){this.setColour(CE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},wE={init:function(){this.setColour(CE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},kE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},HE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},WE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JE={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(CE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},qE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},QE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},jE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ZE=SE,tO=AE,eO=LE,iO=NE,nO=fE,sO={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(mt.Msg.MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(mt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_O={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oO={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},pO={init:function(){this.setColour(CE),this.appendDummyInput().appendField("Ollama "+mt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aO=225,uO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},rO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},lO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},dO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},IO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},TO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},hO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},mO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},EO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},OO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},RO={init:function(){this.setColour(aO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},cO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},gO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},CO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},SO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},AO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},LO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},NO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},DO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},fO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},FO={init:function(){this.setColour(aO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},PO={init:function(){this.appendValueInput("VAL"),this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(PO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},YO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown(YO.METHOD),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},vO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},XO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},yO="#3288dd",xO={init:function(){this.setColour(yO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},bO={init:function(){this.setColour(yO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},VO={init:function(){this.appendValueInput("VAL"),this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(VO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},BO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},GO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UO={init:function(){this.setColour(yO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},wO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},WO=100,KO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.SET_USB),this.appendValueInput("percent").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_POWER_SUPPLY),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_SPK_STATE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"True"],[mt.Msg.MIXLY_OFF,"False"]]),"state"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zO=100,jO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$O={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},eR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},iR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},nR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},sR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},_R="#A58C5B",oR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},pR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},aR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},uR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},rR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},lR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},dR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},IR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(IR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},TR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},MR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},hR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},mR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},ER={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},OR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},RR={init:function(){this.setColour(_R),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},cR={init:function(){this.setColour(_R),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},gR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},CR={init:function(){this.setColour(_R),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},SR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},AR={init:function(){this.setColour(_R),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},LR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},NR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},DR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},fR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},FR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},PR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},yR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},xR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},bR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},BR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},GR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},wR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},HR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},KR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},JR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},qR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},QR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},zR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},jR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},$R={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},ZR={init:function(){this.setColour(_R),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},tc={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},nc={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sc={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},_c={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},pc={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},ac={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},uc={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},aF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},rF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},lF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},dF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},IF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},TF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},MF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},hF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},mF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},EF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},OF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},cF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},gF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},CF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},SF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},AF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},LF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},NF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},DF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},fF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},FF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},PF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},YF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},vF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},XF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},yF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},xF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},bF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},VF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},BF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},GF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},UF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},wF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},kF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},HF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},WF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},KF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},JF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},qF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},QF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},zF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},jF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},ZF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},eP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},nP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},_P=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},pP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},aP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},uP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},lP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},dP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},IP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},TP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},MP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},hP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Et.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},mP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},EP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},OP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},RP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},cP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},gP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},CP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},SP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},AP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},aY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},uY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},rY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},lY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},dY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},IY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},EY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},OY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},RY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},cY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},gY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},CY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},SY=hP,AY=RP,LY=vP,NY=FP,DY=vP,fY=XP,FY=NP,PY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},YY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},vY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},UV=function(){return"control.reset()\n"},wV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},kV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},HV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},WV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},KV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},JV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},qV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},QV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},zV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},jV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},$V=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},ZV=function(){return"while True:\n pass\n"},tB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},eB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},iB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},nB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},sB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},_B=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},oB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},pB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},aB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},uB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},rB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},lB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},dB=pB,IB=_B,TB=oB,MB=iB,hB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},mB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},EB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},RB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},cB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},gB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},CB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},SB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},AB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},LB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},NB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},DB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},fB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},FB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},PB={};PB["元控青春"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["DOOR_CLOSE","object_picture.DOOR_CLOSE"],["DOOR_OPEN","object_picture.DOOR_OPEN"],["DOOR_OPENING","object_picture.DOOR_OPENING"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},PB["元控自强"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:PB["元控青春"].builtinimg,builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},PB["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:PB["元控青春"].builtinimg,builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM",".DADADADUM"],["ENTERTAINER",".ENTERTAINER"],["PRELUDE",".PRELUDE"],["ODE",".ODE"],["NYAN",".NYAN"],["RINGTONE",".RINGTONE"],["FUNK",".FUNK"],["BLUES",".BLUES"],["BIRTHDAY",".BIRTHDAY"],["WEDDING",".WEDDING"],["FUNERAL",".FUNERAL"],["PUNCHLINE",".PUNCHLINE"],["PYTHON",".PYTHON"],["BADDY",".BADDY"],["CHASE",".CHASE"],["BA_DING",".BA_DING"],["WAWAWAWAA",".WAWAWAWAA"],["JUMP_UP",".JUMP_UP"],["JUMP_DOWN",".JUMP_DOWN"],["POWER_UP",".POWER_UP"],["POWER_DOWN",".POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const YB=PB,vB=20,XB={init:function(){this.setColour(vB),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},yB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},xB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},bB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},VB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},BB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},GB={init:function(){this.setColour(vB),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},UB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},wB={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},kB={init:function(){this.setColour(vB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},HB={init:function(){this.setColour(vB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},WB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},KB=wB,JB=HB,qB=GB,QB=UB,zB=230,jB={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},$B={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ZB={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},sG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_G={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},oG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},lG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},dG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},TG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},hG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},OG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},RG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},CG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},AG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},LG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},NG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},DG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},fG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},FG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},PG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},vG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},yG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},xG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},BG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},GG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},wG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},kG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},HG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},WG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"True"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},JG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},qG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},QG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},zG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},jG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},$G=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},ZG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},tU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},eU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},iU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},nU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},sU=nU,_U=nU,oU=nU,pU=nU,aU=nU,uU=nU,rU=nU,lU=nU,dU=nU,IU=nU,TU=nU,MU=nU,hU=nU,mU=nU,EU=nU,OU=nU,RU=nU,cU=nU,gU=nU,CU=nU,SU=nU,AU=nU,LU=nU,NU=nU,DU=nU,fU=nU,FU=nU,PU=nU,YU=nU,vU=nU,XU=nU,yU=nU,xU=nU,bU=nU,VU=nU,BU=nU,GU=nU,UU=nU,wU=nU,kU=nU,HU=nU,WU=nU,KU=nU,JU=function(t,e){const i=this.getFieldValue("PIN").split(".");if(2!==i.length)throw Error("pin value error");return e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`,[i[1],e.ORDER_ATOMIC]},qU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var n='ext_rfid.read_card(0, x="id")'}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";n='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";n='mini_g2.ext_rc522.read_card(0, x="id")'}return[n,e.ORDER_ATOMIC]},QU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},zU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},jU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},$U=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]};Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Yu),mt.Python=vu,mt.generator=vu,Et.Profile.default={},Object.assign(Et.Profile,YB),Object.assign(Et.Profile.default,YB["元控青春"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,x,H,k,Y,b,W,f,w,U,G,V,F,D,N,X,v,y,P,B,lt,dt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,et,ut,at,j,it,rt,q,pt,ot,_t,nt,Q,J,K,Z,$,tt,z,st,Tt,Mt,ht)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Zt={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ze={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour($i),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour($i),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour($i),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour($i),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour($i),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour($i),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour($i),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},An={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Yn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={init:function(){var t=mt.Procedures.findLegalName("",this),e=new mt.FieldTextInput(t,mt.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new mt.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&mt.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(mt.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(mt.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(mt.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(mt.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=mt.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),mt.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{mt.Events.enable()}},mutationToDom:function(t){var e=mt.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Au=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Lu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},vu.scrubNakedValue=function(t){return t+"\n"},vu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,vu.COMMENT_WRAP-3),n+=vu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Xu="#74A55B",yu={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},xu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Vu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Bu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Gu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Uu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},wu={init:function(){this.setColour(Xu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Hu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Wu={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ku={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Ju={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Qu={init:function(){this.setColour(Xu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ju={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},$u={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},er={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ir={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},nr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},sr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},_r={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},or={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},pr={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ar={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ur={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},Ir={},Tr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},hr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},mr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Er={init:function(){this.setColour(Xu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Or={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Rr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Fr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Xu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},yr={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br={init:function(){this.setColour(Xu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Vr={init:function(){this.setColour(Xu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Br="#6C9858",Gr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Ur={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Kr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Qr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},zr={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},jr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},$r={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},el={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},sl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},_l={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ol={init:function(){this.setColour(Br),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},pl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},ul={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ll={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dl={init:function(){this.setColour(Br),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Il={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(Br),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Br),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},hl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ol={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},gl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Al={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(Br),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},fl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yl={init:function(){this.setColour(Br),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},xl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},bl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Vl={init:function(){this.setColour(Br),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},Bl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Gl={init:function(){this.setColour(Br),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Ul={init:function(){this.setColour(Br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},Nh={init:function(){this.jsonInit({colour:mh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:mt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:mt.Msg.MIXLY_MICROBIT_Built_in_image})}},Dh={init:function(){this.setColour(mh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},fh={init:function(){this.setColour(mh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(fh.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"add"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Fh={init:function(){this.setColour(mh),this.appendValueInput("A").setCheck("esp32_image").appendField(mt.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Ph={init:function(){this.setColour(mh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(Ph.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:mt.Msg.MIXLY_UP,shift_down:mt.Msg.MIXLY_DOWN,shift_left:mt.Msg.MIXLY_LEFT,shift_right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"shift_up"],[mt.Msg.MIXLY_DOWN,"shift_down"],[mt.Msg.MIXLY_LEFT,"shift_left"],[mt.Msg.MIXLY_RIGHT,"shift_right"]]},Yh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},vh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Xh={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},yh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},xh={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Clear_display)}},bh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Vh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Vh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Bh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Gh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(Gh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Uh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},wh={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(wh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},kh={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.OLED_SET_FONT).appendField(new mt.FieldDropdown(kh.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+mt.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+mt.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Hh={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Wh={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Kh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(mt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},Jh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},qh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Qh={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zh={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},jh={init:function(){this.jsonInit({colour:mh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},$h={init:function(){this.jsonInit({colour:mh,args0:[{name:"state",options:[[mt.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[mt.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Zh={init:function(){this.jsonInit({colour:mh,args0:[{name:"state",options:[[mt.Msg.mpython_display_hline_1,"1"],[mt.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},tm={init:function(){this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new mt.FieldDropdown(tm.IMAGES),"path"),this.setColour(mh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},em={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},im={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(im.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},nm={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},sm={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},_m={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},om={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new mt.FieldDropdown(om.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[mt.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[mt.Msg.CLOCKWISE+"90"+mt.Msg.blockpy_setheading_degree,"1"],[mt.Msg.CLOCKWISE+"180"+mt.Msg.blockpy_setheading_degree,"2"],[mt.Msg.CLOCKWISE+"270"+mt.Msg.blockpy_setheading_degree,"3"]]},pm={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new mt.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},am={init:function(){this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(mt.inputs.Align.CENTRE).appendField(new mt.FieldBitmap(am.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(mh),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},um={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING)}},rm={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(mt.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(mt.Msg.TEXT_CENTER).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},lm={init:function(){this.setColour(mh),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dm={init:function(){this.jsonInit({colour:mh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},Im={init:function(){this.jsonInit({colour:mh,args0:[{name:"dir_h_v",options:[[mt.Msg.mpython_vertical,"0"],[mt.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:mt.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Tm={init:function(){this.jsonInit({colour:mh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,tooltip:mt.Msg.mpython_display_line_TOOLTIP,message0:mt.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Mm={init:function(){this.setColour(mh),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(mt.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},hm={init:function(){this.setColour(mh),this.appendValueInput("x").setCheck(Number).appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},mm={init:function(){this.setColour(mh),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Em={init:function(){this.setColour(mh),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(mt.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Om={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rm={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(mt.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(mt.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(mt.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cm={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gm={init:function(){this.setColour(mh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cm={init:function(){this.jsonInit({colour:mh,args0:[{name:"shape",options:[[mt.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[mt.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:mt.Msg.mpython_HELPURL,message0:mt.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},Sm={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Am={init:function(){this.setColour(mh),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER).appendField(mt.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(mt.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(mt.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.DRAW_POINTER_TOOLTIP)}},Lm={init:function(){this.setColour(mh),this.appendValueInput("data").appendField(mt.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Nm={init:function(){Rh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Dm={init:function(){Ch.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},fm={init:function(){Ph.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Fm={init:function(){Xh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Pm={init:function(){yh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Ym={init:function(){xh.init.call(this),this.appendDummyInput().appendField(`(${mt.Msg.MIXLY_DEPRECATED})`),this.setWarningText(mt.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},vm=180,Xm={init:function(){this.setColour(vm),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(mt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_LET2).appendField(new mt.FieldDropdown(Xm.OPERATORS),"OP"),this.appendValueInput("val").appendField(mt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=mt.Msg.DISPLAY_IMAGE_LET,n=mt.Msg.DISPLAY_IMAGE_LET2,s=mt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"]]},ym={init:function(){this.setColour(vm),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(mt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new mt.FieldDropdown(ym.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":mt.Msg.MIXLY_MICROBIT_image_add,"-":mt.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[mt.Msg.MICROBIT_DISPLAY_UNION,"+"],[mt.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},xm={init:function(){this.setColour(vm),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new mt.FieldDropdown(xm.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_MICROBIT_IMAGE+{height:mt.Msg.MIXLY_HEIGHT,width:mt.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[mt.Msg.MIXLY_HEIGHT,"height"],[mt.Msg.MIXLY_WIDTH,"width"]]},bm={init:function(){this.setColour(vm),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RECT).appendField(new mt.FieldDropdown(bm.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_OLED_RECT)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Vm={init:function(){this.setColour(vm),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new mt.FieldDropdown(Vm.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Bm={init:function(){this.setColour(vm),this.appendValueInput("VAR").appendField(mt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new mt.FieldDropdown(Bm.STATUS),"OP"),this.jsonInit({message0:mt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_DISPLAY_DRAW+mt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[mt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[mt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Gm="#777777",Um={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField("from ").appendField(new mt.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new mt.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wm={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField("import ").appendField(new mt.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},km={init:function(){this.setColour(Gm),this.appendDummyInput("").appendField(new mt.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},FE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},PE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},YE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},XE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},yE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},xE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},BE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},GE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},UE={init:function(){this.setColour(CE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},wE={init:function(){this.setColour(CE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},kE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},HE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},WE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KE={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JE={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(CE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},qE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},QE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},jE={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.setColour(CE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ZE=SE,tO=AE,eO=LE,iO=NE,nO=fE,sO={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(mt.Msg.MODEL_NAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(mt.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_O={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oO={init:function(){this.setColour(CE),this.appendDummyInput().appendField(mt.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},pO={init:function(){this.setColour(CE),this.appendDummyInput().appendField("Ollama "+mt.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aO=225,uO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},rO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},lO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},dO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},IO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},TO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},hO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},mO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},EO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},OO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},RO={init:function(){this.setColour(aO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},cO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},gO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},CO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},SO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},AO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},LO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},NO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},DO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},fO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},FO={init:function(){this.setColour(aO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},PO={init:function(){this.appendValueInput("VAL"),this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(PO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},YO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown(YO.METHOD),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},vO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},XO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},yO="#3288dd",xO={init:function(){this.setColour(yO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},bO={init:function(){this.setColour(yO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},VO={init:function(){this.appendValueInput("VAL"),this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(VO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},BO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},GO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UO={init:function(){this.setColour(yO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},wO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},WO=100,KO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.SET_USB),this.appendValueInput("percent").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_POWER_SUPPLY),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(WO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_SPK_STATE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"True"],[mt.Msg.MIXLY_OFF,"False"]]),"state"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},zO=100,jO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$O={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},tR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},eR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},iR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},nR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},sR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(zO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},_R="#A58C5B",oR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},pR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},aR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},uR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},rR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},lR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},dR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},IR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(IR.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]},TR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},MR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},hR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},mR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},ER={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},OR={init:function(){this.setColour(_R),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},RR={init:function(){this.setColour(_R),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},cR={init:function(){this.setColour(_R),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},gR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},CR={init:function(){this.setColour(_R),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},SR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},AR={init:function(){this.setColour(_R),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},LR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},NR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},DR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},fR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},FR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},PR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},yR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},xR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},bR={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},BR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},GR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},wR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},HR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},KR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},JR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},qR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},QR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},zR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},jR={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},$R={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},ZR={init:function(){this.setColour(_R),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},tc={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},ic={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},nc={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sc={init:function(){this.setColour(_R),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},_c={init:function(){this.setColour(_R),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oc={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},pc={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},ac={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},uc={init:function(){this.setColour(_R),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},aF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},rF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},lF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},dF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},IF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},TF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},MF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},hF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},mF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},EF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},OF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},cF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},gF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},CF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},SF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},AF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},LF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},NF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},DF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},fF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},FF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},PF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},YF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},vF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},XF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},yF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},xF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},bF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},VF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},BF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},GF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},UF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},wF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},kF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},HF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},WF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},KF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},JF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},qF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},QF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},zF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},jF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},$F=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},ZF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},eP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},nP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},_P=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},pP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},aP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},uP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},lP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},dP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},IP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},TP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},MP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},hP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===Et.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},mP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},EP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},OP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},RP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},cP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},gP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},CP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},SP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},AP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},aY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},uY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},rY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},lY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},dY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},IY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},EY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},OY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},RY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},cY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},gY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},CY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},SY=hP,AY=RP,LY=vP,NY=FP,DY=vP,fY=XP,FY=NP,PY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},YY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},vY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},UV=function(){return"control.reset()\n"},wV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},kV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},HV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},WV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},KV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},JV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},qV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},QV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},zV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},jV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},$V=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},ZV=function(){return"while True:\n pass\n"},tB=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},eB=function(t,e){return e.definitions_.import_os="import os","os.uname()"},iB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},nB=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},sB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},_B=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},oB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},pB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},aB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},uB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},rB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},lB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},dB=pB,IB=_B,TB=oB,MB=iB,hB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},mB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},EB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},RB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},cB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},gB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},CB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},SB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},AB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},LB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},NB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},DB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},fB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},FB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},PB={};PB["元控青春"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["DOOR_CLOSE","object_picture.DOOR_CLOSE"],["DOOR_OPEN","object_picture.DOOR_OPEN"],["DOOR_OPENING","object_picture.DOOR_OPENING"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},PB["元控自强"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:PB["元控青春"].builtinimg,builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},PB["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:PB["元控青春"].builtinimg,builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM",".DADADADUM"],["ENTERTAINER",".ENTERTAINER"],["PRELUDE",".PRELUDE"],["ODE",".ODE"],["NYAN",".NYAN"],["RINGTONE",".RINGTONE"],["FUNK",".FUNK"],["BLUES",".BLUES"],["BIRTHDAY",".BIRTHDAY"],["WEDDING",".WEDDING"],["FUNERAL",".FUNERAL"],["PUNCHLINE",".PUNCHLINE"],["PYTHON",".PYTHON"],["BADDY",".BADDY"],["CHASE",".CHASE"],["BA_DING",".BA_DING"],["WAWAWAWAA",".WAWAWAWAA"],["JUMP_UP",".JUMP_UP"],["JUMP_DOWN",".JUMP_DOWN"],["POWER_UP",".POWER_UP"],["POWER_DOWN",".POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const YB=PB,vB=20,XB={init:function(){this.setColour(vB),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},yB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},xB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},bB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},VB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},BB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},GB={init:function(){this.setColour(vB),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},UB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},wB={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},kB={init:function(){this.setColour(vB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},HB={init:function(){this.setColour(vB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},WB={init:function(){this.setColour(vB),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},KB=wB,JB=HB,qB=GB,QB=UB,zB=230,jB={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},$B={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},ZB={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},sG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},_G={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},oG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},pG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},lG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},dG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},TG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},hG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},OG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},RG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},CG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},AG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},LG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},NG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},DG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},fG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},FG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},PG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},YG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},vG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},XG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},yG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},xG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},BG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},GG={init:function(){this.setColour(zB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},wG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},kG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},HG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},WG={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"True"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},JG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},qG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},QG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},zG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},jG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},$G=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},ZG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},tU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},eU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},iU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},nU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},sU=nU,_U=nU,oU=nU,pU=nU,aU=nU,uU=nU,rU=nU,lU=nU,dU=nU,IU=nU,TU=nU,MU=nU,hU=nU,mU=nU,EU=nU,OU=nU,RU=nU,cU=nU,gU=nU,CU=nU,SU=nU,AU=nU,LU=nU,NU=nU,DU=nU,fU=nU,FU=nU,PU=nU,YU=nU,vU=nU,XU=nU,yU=nU,xU=nU,bU=nU,VU=nU,BU=nU,GU=nU,UU=nU,wU=nU,kU=nU,HU=nU,WU=nU,KU=nU,JU=function(t,e){const i=this.getFieldValue("PIN").split(".");if(2!==i.length)throw Error("pin value error");return e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`,[i[1],e.ORDER_ATOMIC]},qU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var n='ext_rfid.read_card(0, x="id")'}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";n='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";n='mini_g2.ext_rc522.read_card(0, x="id")'}return[n,e.ORDER_ATOMIC]},QU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},zU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},jU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},$U=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]};Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,Yu),mt.Python=vu,mt.generator=vu,Et.Profile.default={},Object.assign(Et.Profile,YB),Object.assign(Et.Profile.default,YB["元控青春"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,x,H,k,Y,b,W,f,w,U,G,V,F,D,N,X,v,y,P,B,lt,dt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,et,ut,at,j,it,rt,q,pt,ot,_t,nt,Q,J,K,Z,$,tt,z,st,Tt,Mt,ht)})(); \ No newline at end of file diff --git a/boards/default/micropython_nrf51822_microbit/main.bundle.js b/boards/default/micropython_nrf51822_microbit/main.bundle.js index 21520b6c..3e9cf6ce 100644 --- a/boards/default/micropython_nrf51822_microbit/main.bundle.js +++ b/boards/default/micropython_nrf51822_microbit/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>_t,controls_typeLists:()=>ut,lists_zip:()=>pt,lists_zip_container:()=>rt,lists_zip_item:()=>at,unpack_iterable_object:()=>lt,variables_change:()=>st,variables_get:()=>it,variables_global:()=>ot,variables_set:()=>nt});var i={};t.r(i),t.d(i,{base_setup:()=>Tt,controls_delay:()=>Mt,controls_end_program:()=>ht,controls_except:()=>Nt,controls_finally:()=>Pt,controls_flow_statements:()=>gt,controls_for:()=>Ct,controls_forEach:()=>Et,controls_for_range:()=>At,controls_if:()=>mt,controls_if_else:()=>Dt,controls_if_elseif:()=>St,controls_if_if:()=>Lt,controls_lambda:()=>Yt,controls_main:()=>dt,controls_pass:()=>vt,controls_range:()=>Ot,controls_repeat_ext:()=>Ft,controls_thread:()=>Xt,controls_try:()=>ft,controls_try_finally:()=>Rt,controls_whileUntil:()=>ct,datetime_fromtimestamp:()=>Ut,do_while:()=>bt,garbage_collection:()=>yt,gene_unique_identifier:()=>wt,get_mem_alloc:()=>Vt,get_mem_free:()=>Bt,get_unique_identifier:()=>Gt});var n={};t.r(n),t.d(n,{base_map:()=>pe,generate_cartesian_product:()=>ae,math_arithmetic:()=>Kt,math_bit:()=>Qt,math_constant:()=>Ht,math_constant_mp:()=>Wt,math_constrain:()=>ee,math_dec:()=>jt,math_degree_to_radian:()=>Ie,math_indexer_number:()=>ne,math_map:()=>ie,math_max_min:()=>Zt,math_number:()=>xt,math_number_base_conversion:()=>$t,math_radian_to_degree:()=>le,math_random:()=>te,math_random_seed:()=>se,math_round:()=>oe,math_selfcalcu:()=>Jt,math_to_int:()=>zt,math_trig:()=>qt,text_to_number:()=>_e,text_to_number_skulpt:()=>ue,turn_to_int:()=>re});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Oe,char_to_ascii:()=>Ee,number_to_text:()=>ce,os_system:()=>We,text:()=>Te,text_capital:()=>Ne,text_center:()=>Pe,text_char:()=>he,text_char_at:()=>Ce,text_char_at2:()=>ge,text_char_at3:()=>we,text_compareTo:()=>Ue,text_compare_to:()=>fe,text_create_with_container:()=>Ve,text_create_with_item:()=>Be,text_encode:()=>xe,text_equals_starts_ends:()=>De,text_eval:()=>He,text_find:()=>Fe,text_format:()=>ye,text_format_noreturn:()=>ke,text_join:()=>me,text_join_seq:()=>Ye,text_length:()=>Re,text_random_char:()=>Ae,text_replace:()=>ve,text_split:()=>Xe,text_strip:()=>be,text_substring:()=>Se,text_substring2:()=>Le,text_substring3:()=>Ge,text_textarea:()=>Me});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Di,content_in_lists:()=>Ni,enumerate:()=>fi,list_many_input:()=>Ti,list_tolist:()=>Oi,list_tolist2:()=>Si,list_trig:()=>li,lists_2d_get_col_row_data:()=>je,lists_2d_get_data_with_col_row:()=>qe,lists_append_extend:()=>ii,lists_change_to:()=>di,lists_change_to_general:()=>hi,lists_clear:()=>ui,lists_create_with:()=>ze,lists_create_with2:()=>Ei,lists_create_with_container:()=>$e,lists_create_with_item:()=>ti,lists_create_with_noreturn:()=>Mi,lists_create_with_text:()=>Ze,lists_create_with_text2:()=>ci,lists_del_general:()=>mi,lists_find:()=>ai,lists_getIndex3:()=>Ri,lists_getSublist3:()=>gi,lists_get_index:()=>Je,lists_get_random_item:()=>ni,lists_get_random_sublist:()=>si,lists_get_sublist:()=>Qe,lists_insert_value:()=>oi,lists_insert_value2:()=>Ai,lists_pop:()=>ri,lists_remove_at:()=>pi,lists_remove_at2:()=>Li,lists_reverse:()=>_i,lists_setIndex3:()=>Ci,lists_set_index:()=>ei,lists_sort:()=>Ii});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>Wi,dicts_add_or_change:()=>Vi,dicts_clear:()=>Ui,dicts_create_with:()=>Fi,dicts_create_with_container:()=>Yi,dicts_create_with_item:()=>vi,dicts_create_with_noreturn:()=>Qi,dicts_deldict:()=>Hi,dicts_delete:()=>Bi,dicts_get:()=>bi,dicts_get_default:()=>yi,dicts_items:()=>wi,dicts_keys:()=>Xi,dicts_length:()=>xi,dicts_pop:()=>Ki,dicts_setdefault:()=>Ji,dicts_to_json:()=>ji,dicts_to_json2:()=>$i,dicts_to_to:()=>Zi,dicts_todict:()=>qi,dicts_update:()=>Gi,dicts_values:()=>ki,json_to_dicts:()=>zi});var u={};t.r(u),t.d(u,{logic_boolean:()=>_n,logic_compare:()=>en,logic_compare_continous:()=>nn,logic_is:()=>an,logic_is_in:()=>rn,logic_negate:()=>on,logic_null:()=>un,logic_operation:()=>sn,logic_tobool:()=>ln,logic_true_or_false:()=>pn});var p={};t.r(p),t.d(p,{sdcard_mount:()=>Xn,sdcard_use_spi_init:()=>vn,storage_can_write_ornot:()=>cn,storage_change_dir:()=>Fn,storage_close_file:()=>gn,storage_delete_file:()=>An,storage_file_seek:()=>Dn,storage_file_tell:()=>Sn,storage_file_write:()=>hn,storage_fileopen:()=>dn,storage_fileopen_new:()=>Tn,storage_fileopen_new_encoding:()=>Mn,storage_get_a_line:()=>En,storage_get_contents:()=>On,storage_get_contents_without_para:()=>mn,storage_get_current_dir:()=>fn,storage_get_file_size:()=>Ln,storage_get_filename:()=>Rn,storage_is_file:()=>Yn,storage_list_all_files:()=>Cn,storage_make_dir:()=>Nn,storage_open_file_with_os:()=>In,storage_rename:()=>Pn});var r={};t.r(r),t.d(r,{procedures_callnoreturn:()=>Gn,procedures_callreturn:()=>Un,procedures_defnoreturn:()=>bn,procedures_defreturn:()=>yn,procedures_ifreturn:()=>wn,procedures_mutatorarg:()=>Bn,procedures_mutatorcontainer:()=>Vn,procedures_return:()=>kn});var a={};t.r(a),t.d(a,{tuple_change_to:()=>ts,tuple_create_with:()=>Hn,tuple_create_with_container:()=>Wn,tuple_create_with_item:()=>Kn,tuple_create_with_noreturn:()=>ss,tuple_create_with_text2:()=>Jn,tuple_create_with_text_return:()=>Qn,tuple_del:()=>zn,tuple_find:()=>es,tuple_getIndex:()=>qn,tuple_getSublist:()=>ns,tuple_get_random_item:()=>_s,tuple_get_sublist:()=>os,tuple_input:()=>ps,tuple_join:()=>Zn,tuple_length:()=>jn,tuple_max:()=>$n,tuple_totuple:()=>us,tuple_trig:()=>is});var l={};t.r(l),t.d(l,{set_add_discard:()=>Os,set_clear:()=>Ms,set_create_with:()=>as,set_create_with_container:()=>ls,set_create_with_item:()=>Is,set_create_with_text_return:()=>Rs,set_length:()=>ds,set_operate:()=>hs,set_operate_update:()=>ms,set_pop:()=>Ts,set_sub:()=>Es,set_toset:()=>gs,set_update:()=>cs});var I={};t.r(I),t.d(I,{html_content:()=>Ds,html_content_more:()=>fs,html_document:()=>As,html_form:()=>Ps,html_head_body:()=>Ss,html_style:()=>Ns,html_style_color:()=>Ys,html_style_content:()=>Fs,html_text:()=>vs,html_title:()=>Ls});var d={};t.r(d),t.d(d,{attribute_access:()=>Js,function_call:()=>Hs,function_call_container:()=>Ws,function_call_item:()=>Ks,raw_block:()=>ys,raw_empty:()=>Bs,raw_expression:()=>Vs,raw_table:()=>bs,text_comment:()=>Gs,text_print_multiple:()=>ws,text_print_multiple_container:()=>ks,text_print_multiple_item:()=>xs,type_check:()=>Us});var T={};t.r(T),t.d(T,{controls_type:()=>Zs,controls_typeLists:()=>$s,lists_zip:()=>to,unpack_iterable_object:()=>eo,variables_change:()=>js,variables_get:()=>Qs,variables_global:()=>zs,variables_set:()=>qs});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>lo,base_setup:()=>no,controls_delay:()=>ao,controls_flow_statements:()=>ro,controls_for:()=>_o,controls_forEach:()=>mo,controls_for_range:()=>uo,controls_if:()=>so,controls_interrupts:()=>Mo,controls_lambda:()=>Eo,controls_main:()=>io,controls_millis:()=>Io,controls_nointerrupts:()=>ho,controls_pass:()=>Ro,controls_range:()=>Oo,controls_repeat:()=>No,controls_repeat_ext:()=>Ao,controls_thread:()=>go,controls_try_finally:()=>oo,controls_whileUntil:()=>po,datetime_fromtimestamp:()=>Po,do_while:()=>Co,garbage_collection:()=>Lo,gene_unique_identifier:()=>Fo,get_mem_alloc:()=>So,get_mem_free:()=>Do,get_unique_identifier:()=>fo,reset:()=>To,time_sleep:()=>co});var h={};t.r(h),t.d(h,{base_map:()=>Zo,generate_cartesian_product:()=>t_,math_arithmetic:()=>yo,math_bit:()=>bo,math_constant:()=>vo,math_constant_mp:()=>Xo,math_constrain:()=>Wo,math_dec:()=>Uo,math_degree_to_radian:()=>i_,math_indexer_number:()=>Qo,math_map:()=>Ho,math_max_min:()=>ko,math_number:()=>Yo,math_number_base_conversion:()=>Ko,math_radian_to_degree:()=>e_,math_random:()=>xo,math_random_seed:()=>Jo,math_round:()=>qo,math_selfcalcu:()=>Vo,math_single:()=>Bo,math_to_int:()=>wo,math_trig:()=>Go,text_to_number:()=>jo,text_to_number_skulpt:()=>zo,turn_to_int:()=>$o});var m={};t.r(m),t.d(m,{ascii_to_char:()=>u_,char_to_ascii:()=>p_,number_to_text:()=>r_,os_system:()=>Y_,text:()=>n_,text_capital:()=>O_,text_center:()=>E_,text_char:()=>o_,text_char_at:()=>I_,text_char_at2:()=>l_,text_char_at3:()=>N_,text_compareTo:()=>f_,text_compare_to:()=>M_,text_encode:()=>P_,text_equals_starts_ends:()=>T_,text_eval:()=>F_,text_find:()=>c_,text_format:()=>L_,text_format_noreturn:()=>S_,text_join:()=>__,text_join_seq:()=>R_,text_length:()=>a_,text_random_char:()=>d_,text_replace:()=>g_,text_split:()=>C_,text_strip:()=>A_,text_substring:()=>m_,text_substring2:()=>h_,text_substring3:()=>D_,text_textarea:()=>s_});var O={};t.r(O),t.d(O,{content_in_lists:()=>Iu,enumerate:()=>lu,list_many_input:()=>Z_,list_tolist:()=>ru,list_tolist2:()=>au,list_trig:()=>q_,lists_2d_get_col_row_data:()=>b_,lists_2d_get_data_with_col_row:()=>X_,lists_append_extend:()=>U_,lists_change_to:()=>z_,lists_change_to_general:()=>tu,lists_clear:()=>W_,lists_create_with:()=>y_,lists_create_with2:()=>iu,lists_create_with_noreturn:()=>$_,lists_create_with_text:()=>V_,lists_create_with_text2:()=>nu,lists_del_general:()=>eu,lists_find:()=>K_,lists_getIndex3:()=>su,lists_getSublist3:()=>ou,lists_get_index:()=>B_,lists_get_random_item:()=>w_,lists_get_random_sublist:()=>k_,lists_get_sublist:()=>v_,lists_insert_value:()=>x_,lists_insert_value2:()=>uu,lists_pop:()=>Q_,lists_remove_at:()=>J_,lists_remove_at2:()=>pu,lists_reverse:()=>H_,lists_setIndex3:()=>_u,lists_set_index:()=>G_,lists_sort:()=>j_});var E={};t.r(E),t.d(E,{dicts_add_change_del:()=>Lu,dicts_add_or_change:()=>mu,dicts_clear:()=>cu,dicts_create_with:()=>du,dicts_create_with_noreturn:()=>fu,dicts_deldict:()=>Au,dicts_delete:()=>Ou,dicts_get:()=>Mu,dicts_get_default:()=>hu,dicts_items:()=>Ru,dicts_keys:()=>Tu,dicts_length:()=>Cu,dicts_pop:()=>Su,dicts_setdefault:()=>Du,dicts_to_json:()=>Pu,dicts_to_json2:()=>vu,dicts_to_to:()=>Yu,dicts_todict:()=>Nu,dicts_update:()=>Eu,dicts_values:()=>gu,json_to_dicts:()=>Fu});var c={};t.r(c),t.d(c,{logic_boolean:()=>Bu,logic_compare:()=>Xu,logic_compare_continous:()=>bu,logic_is:()=>ku,logic_is_in:()=>wu,logic_negate:()=>Vu,logic_null:()=>Gu,logic_operation:()=>yu,logic_tobool:()=>xu,logic_true_or_false:()=>Uu});var R={};t.r(R),t.d(R,{sdcard_mount:()=>Ip,sdcard_use_spi_init:()=>lp,storage_can_write_ornot:()=>Zu,storage_change_dir:()=>_p,storage_close_file:()=>tp,storage_delete_file:()=>ip,storage_file_seek:()=>op,storage_file_tell:()=>sp,storage_file_write:()=>Qu,storage_fileopen:()=>Wu,storage_fileopen_new:()=>Ku,storage_fileopen_new_encoding:()=>Ju,storage_get_a_line:()=>zu,storage_get_contents:()=>ju,storage_get_contents_without_para:()=>qu,storage_get_current_dir:()=>up,storage_get_file_size:()=>np,storage_get_filename:()=>$u,storage_is_file:()=>ap,storage_list_all_files:()=>ep,storage_make_dir:()=>pp,storage_open_file_with_os:()=>Hu,storage_rename:()=>rp});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>hp,procedures_callreturn:()=>Mp,procedures_defnoreturn:()=>Tp,procedures_defreturn:()=>dp,procedures_ifreturn:()=>mp,procedures_return:()=>Op});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Dp,tuple_create_with:()=>Ep,tuple_create_with_noreturn:()=>Fp,tuple_create_with_text2:()=>cp,tuple_create_with_text_return:()=>Rp,tuple_del:()=>Ap,tuple_find:()=>fp,tuple_getIndex:()=>gp,tuple_getSublist:()=>Pp,tuple_get_random_item:()=>vp,tuple_get_sublist:()=>Yp,tuple_input:()=>bp,tuple_join:()=>Lp,tuple_length:()=>Cp,tuple_max:()=>Sp,tuple_totuple:()=>Xp,tuple_trig:()=>Np});var A={};t.r(A),t.d(A,{set_add_discard:()=>kp,set_clear:()=>Gp,set_create_with:()=>yp,set_create_with_text_return:()=>Wp,set_length:()=>Vp,set_operate:()=>Up,set_operate_update:()=>wp,set_pop:()=>Bp,set_sub:()=>xp,set_toset:()=>Kp,set_update:()=>Hp});var L={};t.r(L),t.d(L,{html_content:()=>jp,html_content_more:()=>zp,html_document:()=>Jp,html_form:()=>$p,html_head_body:()=>qp,html_style:()=>Zp,html_style_content:()=>tr,html_text:()=>er,html_title:()=>Qp});var S={};t.r(S),t.d(S,{attribute_access:()=>pr,function_call:()=>ur,raw_block:()=>ir,raw_empty:()=>sr,raw_expression:()=>nr,raw_table:()=>or,type_check:()=>_r});var D={};t.r(D),t.d(D,{educore_mqtt_connect:()=>Oa,educore_mqtt_connect_success:()=>ga,educore_mqtt_subscribe_message:()=>Ea,educore_mqtt_topic_publish:()=>Ra,educore_mqtt_topic_subscribe:()=>ca,educore_wifi_connect:()=>ma,network_ap_connect:()=>jr,network_connect:()=>Wr,network_get_connect:()=>Jr,network_get_wifi:()=>qr,network_init:()=>wr,network_is_active:()=>xr,network_open:()=>kr,network_scan:()=>Hr,network_server:()=>zr,network_socket_accept:()=>ia,network_socket_bind:()=>$r,network_socket_close:()=>ua,network_socket_connect:()=>ta,network_socket_init:()=>Zr,network_socket_listen:()=>ea,network_socket_receive:()=>na,network_socket_receive_from:()=>oa,network_socket_send:()=>sa,network_socket_send_to:()=>_a,network_stop:()=>Qr,network_wifi_connect:()=>Kr,ntptime_address:()=>Ia,ntptime_time:()=>la,requests_attribute:()=>ra,requests_attribute2:()=>ha,requests_get:()=>pa,requests_get2:()=>Ta,requests_method:()=>aa,requests_post:()=>Ma});var f={};t.r(f),t.d(f,{CI130X_BROADCAST_SANT:()=>AI,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>CI,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>gI,CI130X_IDENTIFY_AND_SAVE_SANT:()=>RI,CI130X_SET_SYSTEM_CMD_SANT:()=>LI,HCSR04:()=>Wa,RTC_set_date:()=>Ha,RTC_set_time:()=>xa,bitbot_als_num:()=>tI,dht11:()=>uI,educore_button_sensor:()=>hI,educore_button_was_pressed:()=>mI,educore_gyroscope_sensor:()=>dI,educore_gyroscope_sensor_read:()=>TI,educore_gyroscope_sensor_shake:()=>MI,educore_light_sensor:()=>II,educore_rfid_sensor:()=>OI,educore_rfid_sensor_scan:()=>EI,educore_rfid_sensor_scan_data:()=>cI,educore_voice_sensor:()=>aI,number1:()=>Ja,number2:()=>Qa,number3:()=>qa,number4:()=>ja,number5:()=>za,number6:()=>Za,number7:()=>$a,onboard_RTC_get_time:()=>ul,onboard_RTC_get_time_str:()=>dl,onboard_RTC_get_timestamp:()=>pl,onboard_RTC_get_timetuple_to_str:()=>Tl,onboard_RTC_set_datetime:()=>ll,onboard_RTC_settime_string:()=>al,onboard_RTC_timestamp_totuple:()=>rl,rfid_readcontent:()=>Rl,rfid_readid:()=>cl,rfid_status:()=>Al,rfid_write:()=>gl,rfid_write_return:()=>Cl,sensor_LTR308:()=>Ml,sensor_aht11:()=>ml,sensor_bitbot_ALS:()=>$l,sensor_button_get_presses:()=>nI,sensor_button_is_pressed:()=>eI,sensor_button_was_pressed:()=>iI,sensor_distance_hrsc04:()=>ka,sensor_eulerangles:()=>Sl,sensor_field_strength:()=>pI,sensor_get_acceleration:()=>Ll,sensor_get_temperature:()=>Ol,sensor_get_the_coprocessor_version:()=>SI,sensor_hp203:()=>El,sensor_light:()=>_I,sensor_mixbot_get_gyro:()=>Zl,sensor_mixbot_patrol_calibrate:()=>ql,sensor_mixbot_patrol_value:()=>jl,sensor_mixbot_temperature:()=>zl,sensor_mixgo_LTR308:()=>ol,sensor_mixgo_button_attachInterrupt:()=>va,sensor_mixgo_button_get_presses:()=>Ya,sensor_mixgo_button_is_pressed:()=>Pa,sensor_mixgo_button_was_pressed:()=>Fa,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Vl,sensor_mixgo_cc_mmc5603_get_angle:()=>yl,sensor_mixgo_cc_mmc5603_get_magnetic:()=>bl,sensor_mixgo_light:()=>Ka,sensor_mixgo_nova_LTR308:()=>sl,sensor_mixgo_nova_pin_near:()=>nl,sensor_mixgo_pin_near:()=>il,sensor_mixgo_pin_near_double:()=>el,sensor_mixgo_pin_near_single:()=>tl,sensor_mixgo_pin_pressed:()=>Ba,sensor_mixgo_sant_color:()=>_l,sensor_mixgo_touch_slide:()=>wa,sensor_mixgocar42_button_attachInterrupt:()=>Va,sensor_mixgocar42_button_get_presses:()=>ya,sensor_mixgocar42_button_is_pressed:()=>Xa,sensor_mixgocar42_button_was_pressed:()=>ba,sensor_mixgocar_battery_left:()=>Ql,sensor_mixgocar_pin_near:()=>Kl,sensor_mixgocar_pin_near_line:()=>Wl,sensor_mixgocar_pin_near_state_change:()=>Jl,sensor_mixgoce_pin_pressed:()=>Ga,sensor_mixgoce_temperature:()=>Gl,sensor_mixgome_temperature:()=>Bl,sensor_mpython_pin_pressed:()=>Ua,sensor_mpython_qmi8658_get_gyro:()=>Ul,sensor_mpython_qmi8658_temperature:()=>wl,sensor_onboard_compass_reset:()=>Xl,sensor_onboard_mpu9250_calibrate_compass:()=>Fl,sensor_onboard_mpu9250_field_strength:()=>vl,sensor_onboard_mpu9250_gesture:()=>Dl,sensor_onboard_mpu9250_get_acceleration:()=>fl,sensor_onboard_mpu9250_get_gyro:()=>Pl,sensor_onboard_mpu9250_get_magnetic:()=>Nl,sensor_onboard_mpu9250_temperature:()=>Yl,sensor_pin_near:()=>oI,sensor_pin_pressed:()=>sI,sensor_read:()=>lI,sensor_rm_acc:()=>Hl,sensor_rm_battery_left:()=>xl,sensor_rm_pin_near_double:()=>kl,sensor_rtc_init:()=>Il,sensor_sound:()=>hl,sensor_temperature:()=>rI});var N={};t.r(N),t.d(N,{educore_mqtt_connect:()=>od,educore_mqtt_connect_success:()=>rd,educore_mqtt_subscribe_message:()=>_d,educore_mqtt_topic_publish:()=>pd,educore_mqtt_topic_subscribe:()=>ud,educore_wifi_connect:()=>sd,network_ap_connect:()=>VI,network_connect:()=>PI,network_get_connect:()=>YI,network_get_wifi:()=>yI,network_init:()=>NI,network_is_active:()=>bI,network_open:()=>XI,network_scan:()=>BI,network_server:()=>GI,network_socket_accept:()=>HI,network_socket_bind:()=>wI,network_socket_close:()=>qI,network_socket_connect:()=>kI,network_socket_init:()=>UI,network_socket_listen:()=>xI,network_socket_receive:()=>WI,network_socket_receive_from:()=>JI,network_socket_send:()=>KI,network_socket_send_to:()=>QI,network_stop:()=>vI,network_wifi_connect:()=>FI,ntptime_address:()=>td,ntptime_time:()=>$I,requests_attribute:()=>zI,requests_attribute2:()=>id,requests_get:()=>jI,requests_get2:()=>ed,requests_method:()=>ZI,requests_post:()=>nd});var P={};t.r(P),t.d(P,{CI130X_BROADCAST_SANT:()=>rM,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>pM,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>uM,CI130X_IDENTIFY_AND_SAVE_SANT:()=>_M,CI130X_SET_SYSTEM_CMD_SANT:()=>aM,HCSR04:()=>Od,bitbot_als_num:()=>UT,dht11:()=>QT,educore_button_sensor:()=>eM,educore_button_was_pressed:()=>iM,educore_gyroscope_sensor:()=>ZT,educore_gyroscope_sensor_read:()=>$T,educore_gyroscope_sensor_shake:()=>tM,educore_light_sensor:()=>zT,educore_rfid_sensor:()=>nM,educore_rfid_sensor_scan:()=>sM,educore_rfid_sensor_scan_data:()=>oM,educore_voice_sensor:()=>qT,number1:()=>Ed,number2:()=>cd,number3:()=>Rd,number4:()=>gd,number5:()=>Cd,number6:()=>Ad,number7:()=>Ld,onboard_RTC_get_time:()=>hT,onboard_RTC_get_time_str:()=>ET,onboard_RTC_get_timestamp:()=>mT,onboard_RTC_get_timetuple_to_str:()=>cT,onboard_RTC_set_datetime:()=>TT,onboard_RTC_settime_string:()=>MT,onboard_RTC_timestamp_totuple:()=>OT,rfid_readcontent:()=>wd,rfid_readid:()=>Ud,rfid_status:()=>Hd,rfid_write:()=>kd,rfid_write_return:()=>xd,sensor_LTR308:()=>bd,sensor_adxl345_get_acceleration:()=>$d,sensor_aht11:()=>Bd,sensor_bitbot_ALS:()=>GT,sensor_button_get_presses:()=>xT,sensor_button_is_pressed:()=>wT,sensor_button_was_pressed:()=>kT,sensor_compass_reset:()=>oT,sensor_ds18x20:()=>vd,sensor_eulerangles:()=>Kd,sensor_get_acceleration:()=>Wd,sensor_get_temperature:()=>Gd,sensor_get_the_coprocessor_version:()=>lM,sensor_hp203:()=>Vd,sensor_light:()=>JT,sensor_lm35:()=>Xd,sensor_mixbot_get_gyro:()=>BT,sensor_mixbot_patrol_calibrate:()=>bT,sensor_mixbot_patrol_value:()=>yT,sensor_mixbot_temperature:()=>VT,sensor_mixgo_LTR308:()=>Pd,sensor_mixgo_button_attachInterrupt:()=>dd,sensor_mixgo_button_get_presses:()=>Id,sensor_mixgo_button_is_pressed:()=>ad,sensor_mixgo_button_was_pressed:()=>ld,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>CT,sensor_mixgo_cc_mmc5603_get_angle:()=>gT,sensor_mixgo_cc_mmc5603_get_magnetic:()=>RT,sensor_mixgo_light:()=>KT,sensor_mixgo_nova_LTR308:()=>Yd,sensor_mixgo_nova_pin_near:()=>Nd,sensor_mixgo_pin_near:()=>fd,sensor_mixgo_pin_near_double:()=>Dd,sensor_mixgo_pin_near_single:()=>Sd,sensor_mixgo_pin_pressed:()=>zd,sensor_mixgo_sant_color:()=>Fd,sensor_mixgo_touch_slide:()=>jd,sensor_mixgocar42_button_attachInterrupt:()=>md,sensor_mixgocar42_button_get_presses:()=>hd,sensor_mixgocar42_button_is_pressed:()=>Td,sensor_mixgocar42_button_was_pressed:()=>Md,sensor_mixgocar_battery_left:()=>XT,sensor_mixgocar_pin_near:()=>YT,sensor_mixgocar_pin_near_line:()=>FT,sensor_mixgocar_pin_near_state_change:()=>vT,sensor_mixgoce_pin_pressed:()=>qd,sensor_mixgoce_temperature:()=>LT,sensor_mixgome_temperature:()=>AT,sensor_mpu9250_calibrate_compass:()=>iT,sensor_mpu9250_field_strength:()=>sT,sensor_mpu9250_gesture:()=>Jd,sensor_mpu9250_get_acceleration:()=>Qd,sensor_mpu9250_get_gyro:()=>eT,sensor_mpu9250_get_magnetic:()=>tT,sensor_mpu9250_temperature:()=>nT,sensor_mpython_pin_pressed:()=>Zd,sensor_mpython_qmi8658_get_gyro:()=>ST,sensor_mpython_qmi8658_temperature:()=>DT,sensor_onboard_compass_reset:()=>dT,sensor_onboard_mpu9250_calibrate_compass:()=>aT,sensor_onboard_mpu9250_field_strength:()=>IT,sensor_onboard_mpu9250_gesture:()=>_T,sensor_onboard_mpu9250_get_acceleration:()=>uT,sensor_onboard_mpu9250_get_gyro:()=>rT,sensor_onboard_mpu9250_get_magnetic:()=>pT,sensor_onboard_mpu9250_temperature:()=>lT,sensor_pin_near:()=>WT,sensor_pin_pressed:()=>HT,sensor_read:()=>jT,sensor_rm_acc:()=>PT,sensor_rm_battery_left:()=>NT,sensor_rm_pin_near_double:()=>fT,sensor_sound:()=>yd});var F={};t.r(F),t.d(F,{MP3_CONTROL:()=>BM,MP3_EQ_MODE:()=>kM,MP3_INIT:()=>yM,MP3_LOOP_MODE:()=>UM,MP3_PLAY_FOLDER:()=>WM,MP3_PLAY_NUM:()=>HM,MP3_VOL:()=>xM,bit_motor_control:()=>FM,display_rgb:()=>vM,display_rgb2:()=>XM,display_rgb_init:()=>YM,display_rgb_show:()=>bM,microbit_music_get_tempo:()=>CM,microbit_music_pitch:()=>OM,microbit_music_pitch_delay:()=>mM,microbit_music_play_built_in:()=>MM,microbit_music_play_built_in_easy:()=>hM,microbit_music_play_list_of_notes:()=>EM,microbit_music_play_list_of_notes_easy:()=>cM,microbit_music_reset:()=>RM,microbit_music_stop:()=>gM,servo_move:()=>PM,speech_pronounce_easy:()=>fM,speech_say:()=>LM,speech_say_easy:()=>SM,speech_sing_easy:()=>DM,speech_translate:()=>NM,tone_set_tempo:()=>AM});var Y={};t.r(Y),t.d(Y,{i2c_init:()=>ih,i2c_read:()=>nh,i2c_write:()=>sh,microbit_radio_config:()=>jM,microbit_radio_off:()=>qM,microbit_radio_on:()=>QM,microbit_radio_receive:()=>th,microbit_radio_reset:()=>zM,microbit_radio_send_string:()=>ZM,radio_ons:()=>JM,radio_receive_string:()=>eh,radio_send_string:()=>$M,spi_init:()=>oh,spi_write:()=>_h});var v={};t.r(v),t.d(v,{display_fill:()=>Xh,display_image_size:()=>vh,group_lcd_init:()=>Nh,group_lcd_power:()=>Fh,group_lcd_print:()=>fh,group_lcd_print2:()=>Ph,image_arithmetic:()=>Dh,image_shift:()=>Sh,lp2i_u8g_draw_4strings:()=>Yh,microbit_display_clear:()=>ph,microbit_display_is_on:()=>Rh,microbit_display_off:()=>ch,microbit_display_on:()=>Eh,microbit_display_scroll:()=>Oh,microbit_display_scroll_string_animation:()=>mh,microbit_display_show_animation:()=>hh,microbit_display_show_default_image:()=>Mh,microbit_display_show_image:()=>Th,microbit_image_builtins:()=>gh,microbit_image_copy:()=>Ch,microbit_image_create:()=>Lh,microbit_image_invert:()=>Ah,monitor_bright_point:()=>ah,monitor_get_pixel:()=>rh,monitor_scroll_string:()=>Ih,monitor_scroll_string_with_delay:()=>dh,monitor_show_image_or_string:()=>lh});var X={};t.r(X),t.d(X,{factory_block:()=>Wh,factory_block_return:()=>Kh,factory_block_return_with_textarea:()=>Qh,factory_block_with_textarea:()=>Jh,factory_callMethod_noreturn:()=>xh,factory_callMethod_return:()=>Hh,factory_create_with_container:()=>Gh,factory_create_with_item:()=>Uh,factory_declare:()=>kh,factory_from_import:()=>yh,factory_function_noreturn:()=>Bh,factory_function_return:()=>wh,factory_import:()=>Vh});var b={};t.r(b),t.d(b,{inout_analog_read:()=>tm,inout_analog_write:()=>Zh,inout_analog_write_set:()=>$h,inout_digital_read:()=>zh,inout_digital_write:()=>im,inout_highlow:()=>jh,sensor_pin_pressed:()=>em});var y={};t.r(y),t.d(y,{pins_analog:()=>om,pins_axis:()=>Im,pins_brightness:()=>dm,pins_builtinimg:()=>am,pins_button:()=>_m,pins_digital:()=>sm,pins_imglist:()=>lm,pins_interrupt:()=>pm,pins_pwm:()=>um,pins_radio_datarate:()=>hm,pins_radio_power:()=>Mm,pins_serial:()=>rm,pins_tone_notes:()=>Tm});var V={};t.r(V),t.d(V,{DS1307_init:()=>Um,NTC_TEMP:()=>jm,RTC_get_time:()=>km,RTC_set_date:()=>Hm,RTC_set_time:()=>xm,TCS34725_Get_RGB:()=>qm,controls_GestureLists:()=>Am,controls_attachGestureInterrupt:()=>Cm,controls_attachGestureInterrupt2:()=>Lm,sensor_button_get_presses:()=>cm,sensor_button_is_pressed:()=>Om,sensor_button_was_pressed:()=>Em,sensor_calibrate_compass:()=>Fm,sensor_compass_heading:()=>vm,sensor_compass_reset:()=>Wm,sensor_current_gesture:()=>Nm,sensor_current_gesture1:()=>Rm,sensor_current_gesture2:()=>gm,sensor_distance_hrsc04:()=>Bm,sensor_distance_hrsc04_:()=>Gm,sensor_field_strength:()=>bm,sensor_get_acceleration:()=>Sm,sensor_get_gestures:()=>fm,sensor_hrsc04_init:()=>Jm,sensor_is_compass_calibrated:()=>Ym,sensor_light:()=>Km,sensor_light_level:()=>Pm,sensor_magnetic:()=>Vm,sensor_rotation:()=>ym,sensor_set_acceleration:()=>Dm,sensor_temperature:()=>Xm});var B={};t.r(B),t.d(B,{IO_input:()=>pO,IO_print:()=>rO,IO_print_inline:()=>aO,serial_any:()=>nO,serial_begin:()=>uO,serial_print:()=>Zm,serial_print_hex:()=>tO,serial_println:()=>$m,serial_readline:()=>sO,serial_readstr:()=>iO,serial_readstr_until:()=>oO,serial_receive_data_event:()=>eO,serial_softserial:()=>_O});var G={};t.r(G),t.d(G,{Panic_with_status_code:()=>TO,base_delay:()=>IO,controls_millis:()=>dO,controls_uname:()=>hO,reset:()=>MO});var U={};t.r(U),t.d(U,{MP3_CONTROL:()=>BO,MP3_EQ_MODE:()=>UO,MP3_INIT:()=>VO,MP3_LOOP_MODE:()=>GO,MP3_PLAY_FOLDER:()=>xO,MP3_PLAY_NUM:()=>kO,MP3_VOL:()=>wO,bit_motor_control:()=>YO,display_rgb:()=>XO,display_rgb2:()=>bO,display_rgb_init:()=>vO,display_rgb_show:()=>yO,microbit_music_get_tempo:()=>AO,microbit_music_pitch:()=>cO,microbit_music_pitch_delay:()=>EO,microbit_music_play_built_in:()=>mO,microbit_music_play_built_in_easy:()=>OO,microbit_music_play_list_of_notes:()=>RO,microbit_music_reset:()=>gO,microbit_music_stop:()=>CO,servo_move:()=>FO,speech_pronounce_easy:()=>PO,speech_say:()=>DO,speech_say_easy:()=>fO,speech_sing_easy:()=>NO,speech_translate:()=>SO,tone_set_tempo:()=>LO});var w={};t.r(w),t.d(w,{i2c_init:()=>ZO,i2c_read:()=>$O,i2c_write:()=>tE,microbit_radio_config:()=>JO,microbit_radio_off:()=>KO,microbit_radio_on:()=>WO,microbit_radio_receive:()=>zO,microbit_radio_reset:()=>QO,radio_ons:()=>HO,radio_receive_string:()=>jO,radio_send_string:()=>qO,spi_init:()=>eE,spi_write:()=>iE});var k={};t.r(k),t.d(k,{display_fill:()=>NE,display_image_size:()=>fE,group_lcd_init:()=>AE,group_lcd_power:()=>SE,group_lcd_print:()=>CE,group_lcd_print2:()=>LE,image_arithmetic:()=>RE,image_shift:()=>cE,lp2i_u8g_draw_4strings:()=>DE,microbit_display_clear:()=>nE,microbit_display_is_on:()=>ME,microbit_display_on:()=>TE,microbit_display_scroll:()=>dE,microbit_display_scroll_string_animation:()=>gE,microbit_display_set_pixel:()=>oE,microbit_display_show_animation:()=>IE,microbit_display_show_default_image:()=>lE,microbit_display_show_image:()=>aE,microbit_image_builtins:()=>hE,microbit_image_copy:()=>mE,microbit_image_create:()=>EE,microbit_image_invert:()=>OE,monitor_bright_point:()=>_E,monitor_get_pixel:()=>sE,monitor_scroll_string:()=>pE,monitor_scroll_string_with_delay:()=>rE,monitor_show_image_or_string:()=>uE});var x={};t.r(x),t.d(x,{factory_block:()=>VE,factory_block_return:()=>BE,factory_block_return_with_textarea:()=>UE,factory_block_with_textarea:()=>GE,factory_callMethod_noreturn:()=>bE,factory_callMethod_return:()=>yE,factory_declare:()=>XE,factory_from_import:()=>PE,factory_function_noreturn:()=>YE,factory_function_return:()=>vE,factory_import:()=>FE});var H={};t.r(H),t.d(H,{inout_analog_read:()=>KE,inout_analog_write:()=>HE,inout_analog_write_set:()=>WE,inout_digital_read:()=>xE,inout_digital_write:()=>kE,inout_highlow:()=>wE,sensor_pin_pressed:()=>JE});var W={};t.r(W),t.d(W,{pins_analog:()=>qE,pins_axis:()=>ic,pins_brightness:()=>nc,pins_builtinimg:()=>tc,pins_button:()=>jE,pins_digital:()=>QE,pins_imglist:()=>ec,pins_interrupt:()=>ZE,pins_pwm:()=>zE,pins_radio_datarate:()=>_c,pins_radio_power:()=>oc,pins_serial:()=>$E,pins_tone_notes:()=>sc});var K={};t.r(K),t.d(K,{DS1307_init:()=>Nc,NTC_TEMP:()=>Vc,RTC_get_time:()=>Pc,RTC_set_date:()=>Yc,RTC_set_time:()=>Fc,TCS34725_Get_RGB:()=>yc,controls_GestureLists:()=>ac,controls_attachGestureInterrupt:()=>lc,controls_attachGestureInterrupt2:()=>Tc,sensor_button_get_presses:()=>rc,sensor_button_is_pressed:()=>uc,sensor_button_was_pressed:()=>pc,sensor_calibrate_compass:()=>cc,sensor_compass_heading:()=>gc,sensor_compass_reset:()=>vc,sensor_current_gesture:()=>hc,sensor_current_gesture1:()=>Ic,sensor_current_gesture2:()=>dc,sensor_distance_hrsc04:()=>Dc,sensor_distance_hrsc04_:()=>fc,sensor_field_strength:()=>Ac,sensor_get_acceleration:()=>mc,sensor_get_gestures:()=>Mc,sensor_hrsc04_init:()=>bc,sensor_is_compass_calibrated:()=>Rc,sensor_light:()=>Xc,sensor_light_level:()=>Ec,sensor_magnetic:()=>Sc,sensor_rotation:()=>Lc,sensor_set_acceleration:()=>Oc,sensor_temperature:()=>Cc});var J={};t.r(J),t.d(J,{IO_input:()=>Qc,IO_print:()=>qc,IO_print_inline:()=>jc,serial_any:()=>kc,serial_begin:()=>Jc,serial_print:()=>Bc,serial_print_hex:()=>Uc,serial_println:()=>Gc,serial_readline:()=>Hc,serial_readstr:()=>xc,serial_readstr_until:()=>Wc,serial_receive_data_event:()=>wc,serial_softserial:()=>Kc});var Q={};t.r(Q),t.d(Q,{Panic_with_status_code:()=>rR,base_delay:()=>pR,controls_end_program:()=>lR,controls_millis:()=>aR,controls_uname:()=>dR,reset:()=>IR,system_device_name:()=>_R,system_device_serial_number:()=>uR,system_event_bus_source:()=>sR,system_event_bus_value:()=>oR,system_on_event:()=>eR,system_raise_event:()=>tR,system_reset:()=>Zc,system_run_in_background:()=>zc,system_timestamp:()=>iR,system_value:()=>nR,system_wait:()=>$c});const q=Blockly,j=Mixly,z={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},Z=z; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>_t,controls_typeLists:()=>ut,lists_zip:()=>pt,lists_zip_container:()=>rt,lists_zip_item:()=>at,unpack_iterable_object:()=>lt,variables_change:()=>st,variables_get:()=>it,variables_global:()=>ot,variables_set:()=>nt});var i={};t.r(i),t.d(i,{base_setup:()=>Tt,controls_delay:()=>Mt,controls_end_program:()=>ht,controls_except:()=>Nt,controls_finally:()=>Pt,controls_flow_statements:()=>gt,controls_for:()=>Ct,controls_forEach:()=>Et,controls_for_range:()=>At,controls_if:()=>mt,controls_if_else:()=>ft,controls_if_elseif:()=>St,controls_if_if:()=>Lt,controls_lambda:()=>Yt,controls_main:()=>dt,controls_pass:()=>vt,controls_range:()=>Ot,controls_repeat_ext:()=>Ft,controls_thread:()=>Xt,controls_try:()=>Dt,controls_try_finally:()=>Rt,controls_whileUntil:()=>ct,datetime_fromtimestamp:()=>Ut,do_while:()=>bt,garbage_collection:()=>yt,gene_unique_identifier:()=>wt,get_mem_alloc:()=>Vt,get_mem_free:()=>Bt,get_unique_identifier:()=>Gt});var n={};t.r(n),t.d(n,{base_map:()=>pe,generate_cartesian_product:()=>ae,math_arithmetic:()=>Kt,math_bit:()=>Qt,math_constant:()=>Ht,math_constant_mp:()=>Wt,math_constrain:()=>ee,math_dec:()=>jt,math_degree_to_radian:()=>Ie,math_indexer_number:()=>ne,math_map:()=>ie,math_max_min:()=>Zt,math_number:()=>xt,math_number_base_conversion:()=>$t,math_radian_to_degree:()=>le,math_random:()=>te,math_random_seed:()=>se,math_round:()=>oe,math_selfcalcu:()=>Jt,math_to_int:()=>zt,math_trig:()=>qt,text_to_number:()=>_e,text_to_number_skulpt:()=>ue,turn_to_int:()=>re});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Oe,char_to_ascii:()=>Ee,number_to_text:()=>ce,os_system:()=>We,text:()=>Te,text_capital:()=>Ne,text_center:()=>Pe,text_char:()=>he,text_char_at:()=>Ce,text_char_at2:()=>ge,text_char_at3:()=>we,text_compareTo:()=>Ue,text_compare_to:()=>De,text_create_with_container:()=>Ve,text_create_with_item:()=>Be,text_encode:()=>xe,text_equals_starts_ends:()=>fe,text_eval:()=>He,text_find:()=>Fe,text_format:()=>ye,text_format_noreturn:()=>ke,text_join:()=>me,text_join_seq:()=>Ye,text_length:()=>Re,text_random_char:()=>Ae,text_replace:()=>ve,text_split:()=>Xe,text_strip:()=>be,text_substring:()=>Se,text_substring2:()=>Le,text_substring3:()=>Ge,text_textarea:()=>Me});var o={};t.r(o),t.d(o,{ENUMERATE:()=>fi,content_in_lists:()=>Ni,enumerate:()=>Di,list_many_input:()=>Ti,list_tolist:()=>Oi,list_tolist2:()=>Si,list_trig:()=>li,lists_2d_get_col_row_data:()=>je,lists_2d_get_data_with_col_row:()=>qe,lists_append_extend:()=>ii,lists_change_to:()=>di,lists_change_to_general:()=>hi,lists_clear:()=>ui,lists_create_with:()=>ze,lists_create_with2:()=>Ei,lists_create_with_container:()=>$e,lists_create_with_item:()=>ti,lists_create_with_noreturn:()=>Mi,lists_create_with_text:()=>Ze,lists_create_with_text2:()=>ci,lists_del_general:()=>mi,lists_find:()=>ai,lists_getIndex3:()=>Ri,lists_getSublist3:()=>gi,lists_get_index:()=>Je,lists_get_random_item:()=>ni,lists_get_random_sublist:()=>si,lists_get_sublist:()=>Qe,lists_insert_value:()=>oi,lists_insert_value2:()=>Ai,lists_pop:()=>ri,lists_remove_at:()=>pi,lists_remove_at2:()=>Li,lists_reverse:()=>_i,lists_setIndex3:()=>Ci,lists_set_index:()=>ei,lists_sort:()=>Ii});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>Wi,dicts_add_or_change:()=>Vi,dicts_clear:()=>Ui,dicts_create_with:()=>Fi,dicts_create_with_container:()=>Yi,dicts_create_with_item:()=>vi,dicts_create_with_noreturn:()=>Qi,dicts_deldict:()=>Hi,dicts_delete:()=>Bi,dicts_get:()=>bi,dicts_get_default:()=>yi,dicts_items:()=>wi,dicts_keys:()=>Xi,dicts_length:()=>xi,dicts_pop:()=>Ki,dicts_setdefault:()=>Ji,dicts_to_json:()=>ji,dicts_to_json2:()=>$i,dicts_to_to:()=>Zi,dicts_todict:()=>qi,dicts_update:()=>Gi,dicts_values:()=>ki,json_to_dicts:()=>zi});var u={};t.r(u),t.d(u,{logic_boolean:()=>_n,logic_compare:()=>en,logic_compare_continous:()=>nn,logic_is:()=>an,logic_is_in:()=>rn,logic_negate:()=>on,logic_null:()=>un,logic_operation:()=>sn,logic_tobool:()=>ln,logic_true_or_false:()=>pn});var p={};t.r(p),t.d(p,{sdcard_mount:()=>Xn,sdcard_use_spi_init:()=>vn,storage_can_write_ornot:()=>cn,storage_change_dir:()=>Fn,storage_close_file:()=>gn,storage_delete_file:()=>An,storage_file_seek:()=>fn,storage_file_tell:()=>Sn,storage_file_write:()=>hn,storage_fileopen:()=>dn,storage_fileopen_new:()=>Tn,storage_fileopen_new_encoding:()=>Mn,storage_get_a_line:()=>En,storage_get_contents:()=>On,storage_get_contents_without_para:()=>mn,storage_get_current_dir:()=>Dn,storage_get_file_size:()=>Ln,storage_get_filename:()=>Rn,storage_is_file:()=>Yn,storage_list_all_files:()=>Cn,storage_make_dir:()=>Nn,storage_open_file_with_os:()=>In,storage_rename:()=>Pn});var r={};t.r(r),t.d(r,{procedures_callnoreturn:()=>Gn,procedures_callreturn:()=>Un,procedures_defnoreturn:()=>bn,procedures_defreturn:()=>yn,procedures_ifreturn:()=>wn,procedures_mutatorarg:()=>Bn,procedures_mutatorcontainer:()=>Vn,procedures_return:()=>kn});var a={};t.r(a),t.d(a,{tuple_change_to:()=>ts,tuple_create_with:()=>Hn,tuple_create_with_container:()=>Wn,tuple_create_with_item:()=>Kn,tuple_create_with_noreturn:()=>ss,tuple_create_with_text2:()=>Jn,tuple_create_with_text_return:()=>Qn,tuple_del:()=>zn,tuple_find:()=>es,tuple_getIndex:()=>qn,tuple_getSublist:()=>ns,tuple_get_random_item:()=>_s,tuple_get_sublist:()=>os,tuple_input:()=>ps,tuple_join:()=>Zn,tuple_length:()=>jn,tuple_max:()=>$n,tuple_totuple:()=>us,tuple_trig:()=>is});var l={};t.r(l),t.d(l,{set_add_discard:()=>Os,set_clear:()=>Ms,set_create_with:()=>as,set_create_with_container:()=>ls,set_create_with_item:()=>Is,set_create_with_text_return:()=>Rs,set_length:()=>ds,set_operate:()=>hs,set_operate_update:()=>ms,set_pop:()=>Ts,set_sub:()=>Es,set_toset:()=>gs,set_update:()=>cs});var I={};t.r(I),t.d(I,{html_content:()=>fs,html_content_more:()=>Ds,html_document:()=>As,html_form:()=>Ps,html_head_body:()=>Ss,html_style:()=>Ns,html_style_color:()=>Ys,html_style_content:()=>Fs,html_text:()=>vs,html_title:()=>Ls});var d={};t.r(d),t.d(d,{attribute_access:()=>Js,function_call:()=>Hs,function_call_container:()=>Ws,function_call_item:()=>Ks,raw_block:()=>ys,raw_empty:()=>Bs,raw_expression:()=>Vs,raw_table:()=>bs,text_comment:()=>Gs,text_print_multiple:()=>ws,text_print_multiple_container:()=>ks,text_print_multiple_item:()=>xs,type_check:()=>Us});var T={};t.r(T),t.d(T,{controls_type:()=>Zs,controls_typeLists:()=>$s,lists_zip:()=>to,unpack_iterable_object:()=>eo,variables_change:()=>js,variables_get:()=>Qs,variables_global:()=>zs,variables_set:()=>qs});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>lo,base_setup:()=>no,controls_delay:()=>ao,controls_flow_statements:()=>ro,controls_for:()=>_o,controls_forEach:()=>mo,controls_for_range:()=>uo,controls_if:()=>so,controls_interrupts:()=>Mo,controls_lambda:()=>Eo,controls_main:()=>io,controls_millis:()=>Io,controls_nointerrupts:()=>ho,controls_pass:()=>Ro,controls_range:()=>Oo,controls_repeat:()=>No,controls_repeat_ext:()=>Ao,controls_thread:()=>go,controls_try_finally:()=>oo,controls_whileUntil:()=>po,datetime_fromtimestamp:()=>Po,do_while:()=>Co,garbage_collection:()=>Lo,gene_unique_identifier:()=>Fo,get_mem_alloc:()=>So,get_mem_free:()=>fo,get_unique_identifier:()=>Do,reset:()=>To,time_sleep:()=>co});var h={};t.r(h),t.d(h,{base_map:()=>Zo,generate_cartesian_product:()=>t_,math_arithmetic:()=>yo,math_bit:()=>bo,math_constant:()=>vo,math_constant_mp:()=>Xo,math_constrain:()=>Wo,math_dec:()=>Uo,math_degree_to_radian:()=>i_,math_indexer_number:()=>Qo,math_map:()=>Ho,math_max_min:()=>ko,math_number:()=>Yo,math_number_base_conversion:()=>Ko,math_radian_to_degree:()=>e_,math_random:()=>xo,math_random_seed:()=>Jo,math_round:()=>qo,math_selfcalcu:()=>Vo,math_single:()=>Bo,math_to_int:()=>wo,math_trig:()=>Go,text_to_number:()=>jo,text_to_number_skulpt:()=>zo,turn_to_int:()=>$o});var m={};t.r(m),t.d(m,{ascii_to_char:()=>u_,char_to_ascii:()=>p_,number_to_text:()=>r_,os_system:()=>Y_,text:()=>n_,text_capital:()=>O_,text_center:()=>E_,text_char:()=>o_,text_char_at:()=>I_,text_char_at2:()=>l_,text_char_at3:()=>N_,text_compareTo:()=>D_,text_compare_to:()=>M_,text_encode:()=>P_,text_equals_starts_ends:()=>T_,text_eval:()=>F_,text_find:()=>c_,text_format:()=>L_,text_format_noreturn:()=>S_,text_join:()=>__,text_join_seq:()=>R_,text_length:()=>a_,text_random_char:()=>d_,text_replace:()=>g_,text_split:()=>C_,text_strip:()=>A_,text_substring:()=>m_,text_substring2:()=>h_,text_substring3:()=>f_,text_textarea:()=>s_});var O={};t.r(O),t.d(O,{content_in_lists:()=>Iu,enumerate:()=>lu,list_many_input:()=>Z_,list_tolist:()=>ru,list_tolist2:()=>au,list_trig:()=>q_,lists_2d_get_col_row_data:()=>b_,lists_2d_get_data_with_col_row:()=>X_,lists_append_extend:()=>U_,lists_change_to:()=>z_,lists_change_to_general:()=>tu,lists_clear:()=>W_,lists_create_with:()=>y_,lists_create_with2:()=>iu,lists_create_with_noreturn:()=>$_,lists_create_with_text:()=>V_,lists_create_with_text2:()=>nu,lists_del_general:()=>eu,lists_find:()=>K_,lists_getIndex3:()=>su,lists_getSublist3:()=>ou,lists_get_index:()=>B_,lists_get_random_item:()=>w_,lists_get_random_sublist:()=>k_,lists_get_sublist:()=>v_,lists_insert_value:()=>x_,lists_insert_value2:()=>uu,lists_pop:()=>Q_,lists_remove_at:()=>J_,lists_remove_at2:()=>pu,lists_reverse:()=>H_,lists_setIndex3:()=>_u,lists_set_index:()=>G_,lists_sort:()=>j_});var E={};t.r(E),t.d(E,{dicts_add_change_del:()=>Lu,dicts_add_or_change:()=>mu,dicts_clear:()=>cu,dicts_create_with:()=>du,dicts_create_with_noreturn:()=>Du,dicts_deldict:()=>Au,dicts_delete:()=>Ou,dicts_get:()=>Mu,dicts_get_default:()=>hu,dicts_items:()=>Ru,dicts_keys:()=>Tu,dicts_length:()=>Cu,dicts_pop:()=>Su,dicts_setdefault:()=>fu,dicts_to_json:()=>Pu,dicts_to_json2:()=>vu,dicts_to_to:()=>Yu,dicts_todict:()=>Nu,dicts_update:()=>Eu,dicts_values:()=>gu,json_to_dicts:()=>Fu});var c={};t.r(c),t.d(c,{logic_boolean:()=>Bu,logic_compare:()=>Xu,logic_compare_continous:()=>bu,logic_is:()=>ku,logic_is_in:()=>wu,logic_negate:()=>Vu,logic_null:()=>Gu,logic_operation:()=>yu,logic_tobool:()=>xu,logic_true_or_false:()=>Uu});var R={};t.r(R),t.d(R,{sdcard_mount:()=>Ip,sdcard_use_spi_init:()=>lp,storage_can_write_ornot:()=>Zu,storage_change_dir:()=>_p,storage_close_file:()=>tp,storage_delete_file:()=>ip,storage_file_seek:()=>op,storage_file_tell:()=>sp,storage_file_write:()=>Qu,storage_fileopen:()=>Wu,storage_fileopen_new:()=>Ku,storage_fileopen_new_encoding:()=>Ju,storage_get_a_line:()=>zu,storage_get_contents:()=>ju,storage_get_contents_without_para:()=>qu,storage_get_current_dir:()=>up,storage_get_file_size:()=>np,storage_get_filename:()=>$u,storage_is_file:()=>ap,storage_list_all_files:()=>ep,storage_make_dir:()=>pp,storage_open_file_with_os:()=>Hu,storage_rename:()=>rp});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>hp,procedures_callreturn:()=>Mp,procedures_defnoreturn:()=>Tp,procedures_defreturn:()=>dp,procedures_ifreturn:()=>mp,procedures_return:()=>Op});var C={};t.r(C),t.d(C,{tuple_change_to:()=>fp,tuple_create_with:()=>Ep,tuple_create_with_noreturn:()=>Fp,tuple_create_with_text2:()=>cp,tuple_create_with_text_return:()=>Rp,tuple_del:()=>Ap,tuple_find:()=>Dp,tuple_getIndex:()=>gp,tuple_getSublist:()=>Pp,tuple_get_random_item:()=>vp,tuple_get_sublist:()=>Yp,tuple_input:()=>bp,tuple_join:()=>Lp,tuple_length:()=>Cp,tuple_max:()=>Sp,tuple_totuple:()=>Xp,tuple_trig:()=>Np});var A={};t.r(A),t.d(A,{set_add_discard:()=>kp,set_clear:()=>Gp,set_create_with:()=>yp,set_create_with_text_return:()=>Wp,set_length:()=>Vp,set_operate:()=>Up,set_operate_update:()=>wp,set_pop:()=>Bp,set_sub:()=>xp,set_toset:()=>Kp,set_update:()=>Hp});var L={};t.r(L),t.d(L,{html_content:()=>jp,html_content_more:()=>zp,html_document:()=>Jp,html_form:()=>$p,html_head_body:()=>qp,html_style:()=>Zp,html_style_content:()=>tr,html_text:()=>er,html_title:()=>Qp});var S={};t.r(S),t.d(S,{attribute_access:()=>pr,function_call:()=>ur,raw_block:()=>ir,raw_empty:()=>sr,raw_expression:()=>nr,raw_table:()=>or,type_check:()=>_r});var f={};t.r(f),t.d(f,{educore_mqtt_connect:()=>Oa,educore_mqtt_connect_success:()=>ga,educore_mqtt_subscribe_message:()=>Ea,educore_mqtt_topic_publish:()=>Ra,educore_mqtt_topic_subscribe:()=>ca,educore_wifi_connect:()=>ma,network_ap_connect:()=>jr,network_connect:()=>Wr,network_get_connect:()=>Jr,network_get_wifi:()=>qr,network_init:()=>wr,network_is_active:()=>xr,network_open:()=>kr,network_scan:()=>Hr,network_server:()=>zr,network_socket_accept:()=>ia,network_socket_bind:()=>$r,network_socket_close:()=>ua,network_socket_connect:()=>ta,network_socket_init:()=>Zr,network_socket_listen:()=>ea,network_socket_receive:()=>na,network_socket_receive_from:()=>oa,network_socket_send:()=>sa,network_socket_send_to:()=>_a,network_stop:()=>Qr,network_wifi_connect:()=>Kr,ntptime_address:()=>Ia,ntptime_time:()=>la,requests_attribute:()=>ra,requests_attribute2:()=>ha,requests_get:()=>pa,requests_get2:()=>Ta,requests_method:()=>aa,requests_post:()=>Ma});var D={};t.r(D),t.d(D,{CI130X_BROADCAST_SANT:()=>AI,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>CI,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>gI,CI130X_IDENTIFY_AND_SAVE_SANT:()=>RI,CI130X_SET_SYSTEM_CMD_SANT:()=>LI,HCSR04:()=>Wa,RTC_set_date:()=>Ha,RTC_set_time:()=>xa,bitbot_als_num:()=>tI,dht11:()=>uI,educore_button_sensor:()=>hI,educore_button_was_pressed:()=>mI,educore_gyroscope_sensor:()=>dI,educore_gyroscope_sensor_read:()=>TI,educore_gyroscope_sensor_shake:()=>MI,educore_light_sensor:()=>II,educore_rfid_sensor:()=>OI,educore_rfid_sensor_scan:()=>EI,educore_rfid_sensor_scan_data:()=>cI,educore_voice_sensor:()=>aI,number1:()=>Ja,number2:()=>Qa,number3:()=>qa,number4:()=>ja,number5:()=>za,number6:()=>Za,number7:()=>$a,onboard_RTC_get_time:()=>ul,onboard_RTC_get_time_str:()=>dl,onboard_RTC_get_timestamp:()=>pl,onboard_RTC_get_timetuple_to_str:()=>Tl,onboard_RTC_set_datetime:()=>ll,onboard_RTC_settime_string:()=>al,onboard_RTC_timestamp_totuple:()=>rl,rfid_readcontent:()=>Rl,rfid_readid:()=>cl,rfid_status:()=>Al,rfid_write:()=>gl,rfid_write_return:()=>Cl,sensor_LTR308:()=>Ml,sensor_aht11:()=>ml,sensor_bitbot_ALS:()=>$l,sensor_button_get_presses:()=>nI,sensor_button_is_pressed:()=>eI,sensor_button_was_pressed:()=>iI,sensor_distance_hrsc04:()=>ka,sensor_eulerangles:()=>Sl,sensor_field_strength:()=>pI,sensor_get_acceleration:()=>Ll,sensor_get_temperature:()=>Ol,sensor_get_the_coprocessor_version:()=>SI,sensor_hp203:()=>El,sensor_light:()=>_I,sensor_mixbot_get_gyro:()=>Zl,sensor_mixbot_patrol_calibrate:()=>ql,sensor_mixbot_patrol_value:()=>jl,sensor_mixbot_temperature:()=>zl,sensor_mixgo_LTR308:()=>ol,sensor_mixgo_button_attachInterrupt:()=>va,sensor_mixgo_button_get_presses:()=>Ya,sensor_mixgo_button_is_pressed:()=>Pa,sensor_mixgo_button_was_pressed:()=>Fa,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Vl,sensor_mixgo_cc_mmc5603_get_angle:()=>yl,sensor_mixgo_cc_mmc5603_get_magnetic:()=>bl,sensor_mixgo_light:()=>Ka,sensor_mixgo_nova_LTR308:()=>sl,sensor_mixgo_nova_pin_near:()=>nl,sensor_mixgo_pin_near:()=>il,sensor_mixgo_pin_near_double:()=>el,sensor_mixgo_pin_near_single:()=>tl,sensor_mixgo_pin_pressed:()=>Ba,sensor_mixgo_sant_color:()=>_l,sensor_mixgo_touch_slide:()=>wa,sensor_mixgocar42_button_attachInterrupt:()=>Va,sensor_mixgocar42_button_get_presses:()=>ya,sensor_mixgocar42_button_is_pressed:()=>Xa,sensor_mixgocar42_button_was_pressed:()=>ba,sensor_mixgocar_battery_left:()=>Ql,sensor_mixgocar_pin_near:()=>Kl,sensor_mixgocar_pin_near_line:()=>Wl,sensor_mixgocar_pin_near_state_change:()=>Jl,sensor_mixgoce_pin_pressed:()=>Ga,sensor_mixgoce_temperature:()=>Gl,sensor_mixgome_temperature:()=>Bl,sensor_mpython_pin_pressed:()=>Ua,sensor_mpython_qmi8658_get_gyro:()=>Ul,sensor_mpython_qmi8658_temperature:()=>wl,sensor_onboard_compass_reset:()=>Xl,sensor_onboard_mpu9250_calibrate_compass:()=>Fl,sensor_onboard_mpu9250_field_strength:()=>vl,sensor_onboard_mpu9250_gesture:()=>fl,sensor_onboard_mpu9250_get_acceleration:()=>Dl,sensor_onboard_mpu9250_get_gyro:()=>Pl,sensor_onboard_mpu9250_get_magnetic:()=>Nl,sensor_onboard_mpu9250_temperature:()=>Yl,sensor_pin_near:()=>oI,sensor_pin_pressed:()=>sI,sensor_read:()=>lI,sensor_rm_acc:()=>Hl,sensor_rm_battery_left:()=>xl,sensor_rm_pin_near_double:()=>kl,sensor_rtc_init:()=>Il,sensor_sound:()=>hl,sensor_temperature:()=>rI});var N={};t.r(N),t.d(N,{educore_mqtt_connect:()=>od,educore_mqtt_connect_success:()=>rd,educore_mqtt_subscribe_message:()=>_d,educore_mqtt_topic_publish:()=>pd,educore_mqtt_topic_subscribe:()=>ud,educore_wifi_connect:()=>sd,network_ap_connect:()=>VI,network_connect:()=>PI,network_get_connect:()=>YI,network_get_wifi:()=>yI,network_init:()=>NI,network_is_active:()=>bI,network_open:()=>XI,network_scan:()=>BI,network_server:()=>GI,network_socket_accept:()=>HI,network_socket_bind:()=>wI,network_socket_close:()=>qI,network_socket_connect:()=>kI,network_socket_init:()=>UI,network_socket_listen:()=>xI,network_socket_receive:()=>WI,network_socket_receive_from:()=>JI,network_socket_send:()=>KI,network_socket_send_to:()=>QI,network_stop:()=>vI,network_wifi_connect:()=>FI,ntptime_address:()=>td,ntptime_time:()=>$I,requests_attribute:()=>zI,requests_attribute2:()=>id,requests_get:()=>jI,requests_get2:()=>ed,requests_method:()=>ZI,requests_post:()=>nd});var P={};t.r(P),t.d(P,{CI130X_BROADCAST_SANT:()=>rM,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>pM,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>uM,CI130X_IDENTIFY_AND_SAVE_SANT:()=>_M,CI130X_SET_SYSTEM_CMD_SANT:()=>aM,HCSR04:()=>Od,bitbot_als_num:()=>UT,dht11:()=>QT,educore_button_sensor:()=>eM,educore_button_was_pressed:()=>iM,educore_gyroscope_sensor:()=>ZT,educore_gyroscope_sensor_read:()=>$T,educore_gyroscope_sensor_shake:()=>tM,educore_light_sensor:()=>zT,educore_rfid_sensor:()=>nM,educore_rfid_sensor_scan:()=>sM,educore_rfid_sensor_scan_data:()=>oM,educore_voice_sensor:()=>qT,number1:()=>Ed,number2:()=>cd,number3:()=>Rd,number4:()=>gd,number5:()=>Cd,number6:()=>Ad,number7:()=>Ld,onboard_RTC_get_time:()=>hT,onboard_RTC_get_time_str:()=>ET,onboard_RTC_get_timestamp:()=>mT,onboard_RTC_get_timetuple_to_str:()=>cT,onboard_RTC_set_datetime:()=>TT,onboard_RTC_settime_string:()=>MT,onboard_RTC_timestamp_totuple:()=>OT,rfid_readcontent:()=>wd,rfid_readid:()=>Ud,rfid_status:()=>Hd,rfid_write:()=>kd,rfid_write_return:()=>xd,sensor_LTR308:()=>bd,sensor_adxl345_get_acceleration:()=>$d,sensor_aht11:()=>Bd,sensor_bitbot_ALS:()=>GT,sensor_button_get_presses:()=>xT,sensor_button_is_pressed:()=>wT,sensor_button_was_pressed:()=>kT,sensor_compass_reset:()=>oT,sensor_ds18x20:()=>vd,sensor_eulerangles:()=>Kd,sensor_get_acceleration:()=>Wd,sensor_get_temperature:()=>Gd,sensor_get_the_coprocessor_version:()=>lM,sensor_hp203:()=>Vd,sensor_light:()=>JT,sensor_lm35:()=>Xd,sensor_mixbot_get_gyro:()=>BT,sensor_mixbot_patrol_calibrate:()=>bT,sensor_mixbot_patrol_value:()=>yT,sensor_mixbot_temperature:()=>VT,sensor_mixgo_LTR308:()=>Pd,sensor_mixgo_button_attachInterrupt:()=>dd,sensor_mixgo_button_get_presses:()=>Id,sensor_mixgo_button_is_pressed:()=>ad,sensor_mixgo_button_was_pressed:()=>ld,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>CT,sensor_mixgo_cc_mmc5603_get_angle:()=>gT,sensor_mixgo_cc_mmc5603_get_magnetic:()=>RT,sensor_mixgo_light:()=>KT,sensor_mixgo_nova_LTR308:()=>Yd,sensor_mixgo_nova_pin_near:()=>Nd,sensor_mixgo_pin_near:()=>Dd,sensor_mixgo_pin_near_double:()=>fd,sensor_mixgo_pin_near_single:()=>Sd,sensor_mixgo_pin_pressed:()=>zd,sensor_mixgo_sant_color:()=>Fd,sensor_mixgo_touch_slide:()=>jd,sensor_mixgocar42_button_attachInterrupt:()=>md,sensor_mixgocar42_button_get_presses:()=>hd,sensor_mixgocar42_button_is_pressed:()=>Td,sensor_mixgocar42_button_was_pressed:()=>Md,sensor_mixgocar_battery_left:()=>XT,sensor_mixgocar_pin_near:()=>YT,sensor_mixgocar_pin_near_line:()=>FT,sensor_mixgocar_pin_near_state_change:()=>vT,sensor_mixgoce_pin_pressed:()=>qd,sensor_mixgoce_temperature:()=>LT,sensor_mixgome_temperature:()=>AT,sensor_mpu9250_calibrate_compass:()=>iT,sensor_mpu9250_field_strength:()=>sT,sensor_mpu9250_gesture:()=>Jd,sensor_mpu9250_get_acceleration:()=>Qd,sensor_mpu9250_get_gyro:()=>eT,sensor_mpu9250_get_magnetic:()=>tT,sensor_mpu9250_temperature:()=>nT,sensor_mpython_pin_pressed:()=>Zd,sensor_mpython_qmi8658_get_gyro:()=>ST,sensor_mpython_qmi8658_temperature:()=>fT,sensor_onboard_compass_reset:()=>dT,sensor_onboard_mpu9250_calibrate_compass:()=>aT,sensor_onboard_mpu9250_field_strength:()=>IT,sensor_onboard_mpu9250_gesture:()=>_T,sensor_onboard_mpu9250_get_acceleration:()=>uT,sensor_onboard_mpu9250_get_gyro:()=>rT,sensor_onboard_mpu9250_get_magnetic:()=>pT,sensor_onboard_mpu9250_temperature:()=>lT,sensor_pin_near:()=>WT,sensor_pin_pressed:()=>HT,sensor_read:()=>jT,sensor_rm_acc:()=>PT,sensor_rm_battery_left:()=>NT,sensor_rm_pin_near_double:()=>DT,sensor_sound:()=>yd});var F={};t.r(F),t.d(F,{MP3_CONTROL:()=>BM,MP3_EQ_MODE:()=>kM,MP3_INIT:()=>yM,MP3_LOOP_MODE:()=>UM,MP3_PLAY_FOLDER:()=>WM,MP3_PLAY_NUM:()=>HM,MP3_VOL:()=>xM,bit_motor_control:()=>FM,display_rgb:()=>vM,display_rgb2:()=>XM,display_rgb_init:()=>YM,display_rgb_show:()=>bM,microbit_music_get_tempo:()=>CM,microbit_music_pitch:()=>OM,microbit_music_pitch_delay:()=>mM,microbit_music_play_built_in:()=>MM,microbit_music_play_built_in_easy:()=>hM,microbit_music_play_list_of_notes:()=>EM,microbit_music_play_list_of_notes_easy:()=>cM,microbit_music_reset:()=>RM,microbit_music_stop:()=>gM,servo_move:()=>PM,speech_pronounce_easy:()=>DM,speech_say:()=>LM,speech_say_easy:()=>SM,speech_sing_easy:()=>fM,speech_translate:()=>NM,tone_set_tempo:()=>AM});var Y={};t.r(Y),t.d(Y,{i2c_init:()=>ih,i2c_read:()=>nh,i2c_write:()=>sh,microbit_radio_config:()=>jM,microbit_radio_off:()=>qM,microbit_radio_on:()=>QM,microbit_radio_receive:()=>th,microbit_radio_reset:()=>zM,microbit_radio_send_string:()=>ZM,radio_ons:()=>JM,radio_receive_string:()=>eh,radio_send_string:()=>$M,spi_init:()=>oh,spi_write:()=>_h});var v={};t.r(v),t.d(v,{display_fill:()=>Xh,display_image_size:()=>vh,group_lcd_init:()=>Nh,group_lcd_power:()=>Fh,group_lcd_print:()=>Dh,group_lcd_print2:()=>Ph,image_arithmetic:()=>fh,image_shift:()=>Sh,lp2i_u8g_draw_4strings:()=>Yh,microbit_display_clear:()=>ph,microbit_display_is_on:()=>Rh,microbit_display_off:()=>ch,microbit_display_on:()=>Eh,microbit_display_scroll:()=>Oh,microbit_display_scroll_string_animation:()=>mh,microbit_display_show_animation:()=>hh,microbit_display_show_default_image:()=>Mh,microbit_display_show_image:()=>Th,microbit_image_builtins:()=>gh,microbit_image_copy:()=>Ch,microbit_image_create:()=>Lh,microbit_image_invert:()=>Ah,monitor_bright_point:()=>ah,monitor_get_pixel:()=>rh,monitor_scroll_string:()=>Ih,monitor_scroll_string_with_delay:()=>dh,monitor_show_image_or_string:()=>lh});var X={};t.r(X),t.d(X,{factory_block:()=>Wh,factory_block_return:()=>Kh,factory_block_return_with_textarea:()=>Qh,factory_block_with_textarea:()=>Jh,factory_callMethod_noreturn:()=>xh,factory_callMethod_return:()=>Hh,factory_create_with_container:()=>Gh,factory_create_with_item:()=>Uh,factory_declare:()=>kh,factory_from_import:()=>yh,factory_function_noreturn:()=>Bh,factory_function_return:()=>wh,factory_import:()=>Vh});var b={};t.r(b),t.d(b,{inout_analog_read:()=>tm,inout_analog_write:()=>Zh,inout_analog_write_set:()=>$h,inout_digital_read:()=>zh,inout_digital_write:()=>im,inout_highlow:()=>jh,sensor_pin_pressed:()=>em});var y={};t.r(y),t.d(y,{pins_analog:()=>om,pins_axis:()=>Im,pins_brightness:()=>dm,pins_builtinimg:()=>am,pins_button:()=>_m,pins_digital:()=>sm,pins_imglist:()=>lm,pins_interrupt:()=>pm,pins_pwm:()=>um,pins_radio_datarate:()=>hm,pins_radio_power:()=>Mm,pins_serial:()=>rm,pins_tone_notes:()=>Tm});var V={};t.r(V),t.d(V,{DS1307_init:()=>Um,NTC_TEMP:()=>jm,RTC_get_time:()=>km,RTC_set_date:()=>Hm,RTC_set_time:()=>xm,TCS34725_Get_RGB:()=>qm,controls_GestureLists:()=>Am,controls_attachGestureInterrupt:()=>Cm,controls_attachGestureInterrupt2:()=>Lm,sensor_button_get_presses:()=>cm,sensor_button_is_pressed:()=>Om,sensor_button_was_pressed:()=>Em,sensor_calibrate_compass:()=>Fm,sensor_compass_heading:()=>vm,sensor_compass_reset:()=>Wm,sensor_current_gesture:()=>Nm,sensor_current_gesture1:()=>Rm,sensor_current_gesture2:()=>gm,sensor_distance_hrsc04:()=>Bm,sensor_distance_hrsc04_:()=>Gm,sensor_field_strength:()=>bm,sensor_get_acceleration:()=>Sm,sensor_get_gestures:()=>Dm,sensor_hrsc04_init:()=>Jm,sensor_is_compass_calibrated:()=>Ym,sensor_light:()=>Km,sensor_light_level:()=>Pm,sensor_magnetic:()=>Vm,sensor_rotation:()=>ym,sensor_set_acceleration:()=>fm,sensor_temperature:()=>Xm});var B={};t.r(B),t.d(B,{IO_input:()=>pO,IO_print:()=>rO,IO_print_inline:()=>aO,serial_any:()=>nO,serial_begin:()=>uO,serial_print:()=>Zm,serial_print_hex:()=>tO,serial_println:()=>$m,serial_readline:()=>sO,serial_readstr:()=>iO,serial_readstr_until:()=>oO,serial_receive_data_event:()=>eO,serial_softserial:()=>_O});var G={};t.r(G),t.d(G,{Panic_with_status_code:()=>TO,base_delay:()=>IO,controls_millis:()=>dO,controls_uname:()=>hO,reset:()=>MO});var U={};t.r(U),t.d(U,{MP3_CONTROL:()=>BO,MP3_EQ_MODE:()=>UO,MP3_INIT:()=>VO,MP3_LOOP_MODE:()=>GO,MP3_PLAY_FOLDER:()=>xO,MP3_PLAY_NUM:()=>kO,MP3_VOL:()=>wO,bit_motor_control:()=>YO,display_rgb:()=>XO,display_rgb2:()=>bO,display_rgb_init:()=>vO,display_rgb_show:()=>yO,microbit_music_get_tempo:()=>AO,microbit_music_pitch:()=>cO,microbit_music_pitch_delay:()=>EO,microbit_music_play_built_in:()=>mO,microbit_music_play_built_in_easy:()=>OO,microbit_music_play_list_of_notes:()=>RO,microbit_music_reset:()=>gO,microbit_music_stop:()=>CO,servo_move:()=>FO,speech_pronounce_easy:()=>PO,speech_say:()=>fO,speech_say_easy:()=>DO,speech_sing_easy:()=>NO,speech_translate:()=>SO,tone_set_tempo:()=>LO});var w={};t.r(w),t.d(w,{i2c_init:()=>ZO,i2c_read:()=>$O,i2c_write:()=>tE,microbit_radio_config:()=>JO,microbit_radio_off:()=>KO,microbit_radio_on:()=>WO,microbit_radio_receive:()=>zO,microbit_radio_reset:()=>QO,radio_ons:()=>HO,radio_receive_string:()=>jO,radio_send_string:()=>qO,spi_init:()=>eE,spi_write:()=>iE});var k={};t.r(k),t.d(k,{display_fill:()=>NE,display_image_size:()=>DE,group_lcd_init:()=>AE,group_lcd_power:()=>SE,group_lcd_print:()=>CE,group_lcd_print2:()=>LE,image_arithmetic:()=>RE,image_shift:()=>cE,lp2i_u8g_draw_4strings:()=>fE,microbit_display_clear:()=>nE,microbit_display_is_on:()=>ME,microbit_display_on:()=>TE,microbit_display_scroll:()=>dE,microbit_display_scroll_string_animation:()=>gE,microbit_display_set_pixel:()=>oE,microbit_display_show_animation:()=>IE,microbit_display_show_default_image:()=>lE,microbit_display_show_image:()=>aE,microbit_image_builtins:()=>hE,microbit_image_copy:()=>mE,microbit_image_create:()=>EE,microbit_image_invert:()=>OE,monitor_bright_point:()=>_E,monitor_get_pixel:()=>sE,monitor_scroll_string:()=>pE,monitor_scroll_string_with_delay:()=>rE,monitor_show_image_or_string:()=>uE});var x={};t.r(x),t.d(x,{factory_block:()=>VE,factory_block_return:()=>BE,factory_block_return_with_textarea:()=>UE,factory_block_with_textarea:()=>GE,factory_callMethod_noreturn:()=>bE,factory_callMethod_return:()=>yE,factory_declare:()=>XE,factory_from_import:()=>PE,factory_function_noreturn:()=>YE,factory_function_return:()=>vE,factory_import:()=>FE});var H={};t.r(H),t.d(H,{inout_analog_read:()=>KE,inout_analog_write:()=>HE,inout_analog_write_set:()=>WE,inout_digital_read:()=>xE,inout_digital_write:()=>kE,inout_highlow:()=>wE,sensor_pin_pressed:()=>JE});var W={};t.r(W),t.d(W,{pins_analog:()=>qE,pins_axis:()=>ic,pins_brightness:()=>nc,pins_builtinimg:()=>tc,pins_button:()=>jE,pins_digital:()=>QE,pins_imglist:()=>ec,pins_interrupt:()=>ZE,pins_pwm:()=>zE,pins_radio_datarate:()=>_c,pins_radio_power:()=>oc,pins_serial:()=>$E,pins_tone_notes:()=>sc});var K={};t.r(K),t.d(K,{DS1307_init:()=>Nc,NTC_TEMP:()=>Vc,RTC_get_time:()=>Pc,RTC_set_date:()=>Yc,RTC_set_time:()=>Fc,TCS34725_Get_RGB:()=>yc,controls_GestureLists:()=>ac,controls_attachGestureInterrupt:()=>lc,controls_attachGestureInterrupt2:()=>Tc,sensor_button_get_presses:()=>rc,sensor_button_is_pressed:()=>uc,sensor_button_was_pressed:()=>pc,sensor_calibrate_compass:()=>cc,sensor_compass_heading:()=>gc,sensor_compass_reset:()=>vc,sensor_current_gesture:()=>hc,sensor_current_gesture1:()=>Ic,sensor_current_gesture2:()=>dc,sensor_distance_hrsc04:()=>fc,sensor_distance_hrsc04_:()=>Dc,sensor_field_strength:()=>Ac,sensor_get_acceleration:()=>mc,sensor_get_gestures:()=>Mc,sensor_hrsc04_init:()=>bc,sensor_is_compass_calibrated:()=>Rc,sensor_light:()=>Xc,sensor_light_level:()=>Ec,sensor_magnetic:()=>Sc,sensor_rotation:()=>Lc,sensor_set_acceleration:()=>Oc,sensor_temperature:()=>Cc});var J={};t.r(J),t.d(J,{IO_input:()=>Qc,IO_print:()=>qc,IO_print_inline:()=>jc,serial_any:()=>kc,serial_begin:()=>Jc,serial_print:()=>Bc,serial_print_hex:()=>Uc,serial_println:()=>Gc,serial_readline:()=>Hc,serial_readstr:()=>xc,serial_readstr_until:()=>Wc,serial_receive_data_event:()=>wc,serial_softserial:()=>Kc});var Q={};t.r(Q),t.d(Q,{Panic_with_status_code:()=>rR,base_delay:()=>pR,controls_end_program:()=>lR,controls_millis:()=>aR,controls_uname:()=>dR,reset:()=>IR,system_device_name:()=>_R,system_device_serial_number:()=>uR,system_event_bus_source:()=>sR,system_event_bus_value:()=>oR,system_on_event:()=>eR,system_raise_event:()=>tR,system_reset:()=>Zc,system_run_in_background:()=>zc,system_timestamp:()=>iR,system_value:()=>nR,system_wait:()=>$c});const q=Blockly,j=Mixly,z={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},Z=z; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ${constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ot={init:function(){this.setColour(It),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Et={init:function(){this.setColour(It),this.appendValueInput("LIST").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(q.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ct={init:function(){this.setColour(It),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Rt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},gt={init:function(){this.setColour(It);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ct={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},At={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};ct.OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],gt.OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Lt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},St={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Dt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},ft={init:function(){this.setColour(It),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Nt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Pt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Ft={init:function(){this.jsonInit({message0:q.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:It,tooltip:q.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:q.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Yt={init:function(){this.setColour(It),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_STAT),this.setOutput(!0)}},vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Xt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},bt={init:function(){this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT+q.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(q.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new q.FieldDropdown([[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(It),this.setTooltip("do-while loop"),this.setHelpUrl("")}},yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Bt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Gt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_GET_UNIQUE_IDEN)}},Ut={init:function(){this.setColour(It),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},wt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},kt=230;q.FieldTextInput.math_number_validator=function(t){return String(t)},q.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const xt={init:function(){this.setColour(kt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},Ht={init:function(){this.setColour(kt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Wt={init:function(){this.setColour(kt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Kt={init:function(){this.setColour(kt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Jt={init:function(){this.setColour(kt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Qt={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new q.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},qt={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:q.Msg.MATH_TRIG_TOOLTIP_SIN,COS:q.Msg.MATH_TRIG_TOOLTIP_COS,TAN:q.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:q.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:q.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:q.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:q.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},jt={init:function(){var t=[[q.Msg.MATH_BIN,"bin"],[q.Msg.MATH_OCT,"oct"],[q.Msg.MATH_HEX,"hex"]];this.setColour(kt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:q.Msg.MATH_DEC_TOOLTIP_BIN,oct:q.Msg.MATH_DEC_TOOLTIP_OCT,hex:q.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},zt={init:function(){var t=[[q.Msg.LANG_MATH_TO_ROUND,"round"],[q.Msg.LANG_MATH_TO_CEIL,"ceil"],[q.Msg.LANG_MATH_TO_FLOOR,"floor"],[q.Msg.MATH_ABS,"fabs"],[q.Msg.MATH_SQRT,"sqrt"]];this.setColour(kt),this.appendValueInput("A").setCheck(Number).appendField(new q.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:q.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:q.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:q.Msg.MATH_SINGLE_TOOLTIP_SQ,round:q.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:q.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:q.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Zt={init:function(){var t=[[q.Msg.MIXLY_MAX,"max"],[q.Msg.MIXLY_MIN,"min"]];this.setColour(kt),this.appendValueInput("A").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:q.Msg.MIXLY_TOOLTIP_MATH_MAX,min:q.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},$t={init:function(){var t=[[q.Msg.MATH_TWO,"two"],[q.Msg.MATH_EIGHT,"eight"],[q.Msg.MATH_TEN,"ten"],[q.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(kt),this.appendDummyInput("").appendField(q.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new q.FieldDropdown(t),"OP").appendField(q.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MATH_ZHW).appendField(new q.FieldDropdown(t),"OP2").appendField(q.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:q.Msg.MATH_Before_two,eight:q.Msg.MATH_Before_eight,ten:q.Msg.MATH_Before_ten,sixteen:q.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:q.Msg.MATH_Behind_two,eight:q.Msg.MATH_Behind_eight,ten:q.Msg.MATH_Behind_ten,sixteen:q.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},te={init:function(){var t=[[q.Msg.LANG_MATH_INT,"int"],[q.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(kt),this.setOutput(!0,Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RANDOM).appendField(new q.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:q.Msg.LANG_MATH_INT,float:q.Msg.LANG_MATH_FLOAT_RANDOM};return q.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ee={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_CONSTRAIN_TOOLTIP)}},ie={init:function(){this.setColour(kt),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(q.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(q.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_MAP)}},ne={init:function(){this.setColour(kt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(kt),this.appendValueInput("NUM").setCheck(Number).appendField(q.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},oe={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MATH_ROUND).appendField(q.Msg.TEXT_KEEP),this.appendDummyInput().appendField(q.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_ROUND_NEW_TOOLTIP)}},_e={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"],[q.Msg.MIXLY_TO_BITES,"b"],[q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_INT,"bti"]];this.setColour(kt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:q.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:q.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ue={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(kt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:q.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},pe=ie,re={init:function(){this.setColour(kt),this.appendValueInput("VAR").appendField(q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ae={init:function(){this.setColour(kt),this.itemCount_=1,this.setMutator(new q.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(q.Msg.MIXLY_PRODUCT+q.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(q.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(q.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const he={init:function(){this.setColour(de),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new q.FieldTextInput("",q.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(q.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new q.FieldImage(e,7,12,'"')}},me={init:function(){this.setColour(de),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(q.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Oe={init:function(){this.setColour(de),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ee={init:function(){this.setColour(de),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},ce={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Re={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ge={init:function(){this.WHERE_OPTIONS=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.TEXT_GET_INDEX_RANDOM+1+q.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(q.Msg.LISTS_GET_INDEX_GET,"MODE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(q.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+q.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",q.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:q.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:q.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:q.Msg.TEXT_GET_INDEX_RANDOM};return q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+q.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==q.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new q.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ce={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.LISTS_GET_INDEX_FROM_START+"n"+q.Msg.TEXT_CHARAT2)}},Ae={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(q.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(q.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Le={init:function(){this.WHERE_OPTIONS_1=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[q.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==q.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new q.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Se={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(q.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},De={init:function(){var t=[[q.Msg.MIXLY_EQUALS,"==="],[q.Msg.MIXLY_STARTSWITH,"startswith"],[q.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(de),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new q.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},fe={init:function(){this.setColour(de),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_COMPARETO_HELP)}},Ne={init:function(){var t=[[q.Msg.TEXT_UPPER,"upper"],[q.Msg.TEXT_TITLE,"title"],[q.Msg.TEXT_CAPITALIZE,"capitalize"],[q.Msg.TEXT_SWAPCASE,"swapcase"],[q.Msg.TEXT_LOWER,"lower"]];this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:q.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:q.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:q.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:q.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:q.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Pe={init:function(){var t=[[q.Msg.TEXT_LJUST,"ljust"],[q.Msg.TEXT_CENTER,"center"],[q.Msg.TEXT_RJUST,"rjust"]];this.setColour(de),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(q.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(q.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Fe={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(q.Msg.MIXLY_MID+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(q.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ye={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ve={init:function(){this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(q.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Xe={init:function(){this.setColour(de),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(q.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(q.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},be={init:function(){var t=[[q.Msg.TEXT_TRIM_BOTH,"strip"],[q.Msg.TEXT_TRIM_LEFT,"lstrip"],[q.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(de),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(q.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:q.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:q.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:q.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ye={init:function(){this.setColour(de),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new q.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new q.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Yi={init:function(){this.setColour(Pi),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},vi={init:function(){this.setColour(Pi),this.appendDummyInput().appendField(q.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Xi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_KEYS),this.setTooltip(q.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},bi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_TOOLTIP)}},yi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Vi={init:function(){this.setColour(Pi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(q.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Bi={init:function(){this.setColour(Pi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_DELETE_TOOLTIP)}},Gi={init:function(){this.setColour(Pi),this.appendValueInput("DICT2").setCheck("Dict").appendField(q.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(q.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(q.Msg.MIXLY_MID),this.setTooltip(q.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ui={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_CLEAR),this.setTooltip(q.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_ITEMS),this.setTooltip(q.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ki={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_VALUES),this.setTooltip(q.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},xi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_LENGTH),this.setTooltip(q.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Hi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_DELDICT),this.setTooltip(q.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wi={init:function(){this.MODE=[[q.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[q.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(q.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=q.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=q.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new q.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Ki={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setTooltip(q.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Ji={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Qi={init:function(){this.setColour(Pi),this.appendDummyInput("").appendField(new q.FieldLabel(q.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new q.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(q.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qi={init:function(){this.setColour(Pi),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ji={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},zi={init:function(){this.setColour(Pi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Zi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},$i={init:function(){this.setColour(Pi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},tn=210,en={init:function(){var t=q.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:q.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:q.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:q.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:q.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:q.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:q.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},nn={init:function(){var t=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new q.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},sn={init:function(){var t=[[q.Msg.LOGIC_OPERATION_AND,"AND"],[q.Msg.LOGIC_OPERATION_OR,"OR"],[q.Msg.LOGIC_OPERATION_NOR,"NOR"],[q.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:q.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:q.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:q.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:q.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},on={init:function(){this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(q.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(q.Msg.LOGIC_NEGATE_TOOLTIP)}},_n={init:function(){var t=[[q.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[q.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new q.FieldDropdown(t),"BOOL"),this.setTooltip(q.Msg.LOGIC_BOOLEAN_TOOLTIP)}},un={init:function(){this.setColour(tn),this.setOutput(!0),this.appendDummyInput().appendField(q.Msg.LOGIC_NULL),this.setTooltip(q.Msg.LOGIC_NULL_TOOLTIP)}},pn={init:function(){this.setColour(tn),this.appendValueInput("A"),this.appendValueInput("B").appendField(q.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(q.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},rn={init:function(){var t=[[q.Msg.TEXT_APPEND_TO,"in"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(tn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new q.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(q.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.IN)}},an={init:function(){var t=[[q.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(tn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},ln={init:function(){this.setColour(tn),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},In={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(q.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXPY_TEXT_ENCODE).appendField(new q.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},hn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MICROBIT_PYTHON_TYPE)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.HTML_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Cn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const An={init:function(){this.setColour(0),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},fn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Nn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+q.Msg.MIXLY_ESP32_SET+{mkdir:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(q.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.HTML_FILE,"isfile"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},vn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(q.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+q.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(q.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Xn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(q.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},bn={init:function(){var t=q.Procedures.findLegalName("",this),e=new q.FieldTextInput(t,q.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new q.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&q.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(q.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(q.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(q.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(q.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=q.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),q.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{q.Events.enable()}},mutationToDom:function(t){var e=q.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ns={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ps={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_FORM_CONTENT).appendField(new q.FieldDropdown([[q.Msg.HTML_TEXT,"text"],[q.Msg.HTML_EMAIL,"email"],[q.Msg.HTML_NUMBER,"number"],[q.Msg.HTML_PASSWORD,"password"],[q.Msg.HTML_CHECKBOX,"checkbox"],[q.Msg.HTML_RADIOBUTTON,"radiobutton"],[q.Msg.HTML_BUTTON,"button"],[q.Msg.HTML_COLOUR,"colour"],[q.Msg.HTML_DATE,"date"],[q.Msg.HTML_LOCALTIME,"local time"],[q.Msg.HTML_FILE,"file"],[q.Msg.HTML_HIDDEN,"hidden"],[q.Msg.HTML_IMAGE,"image"],[q.Msg.HTML_MONTH,"month"],[q.Msg.HTML_RANGE,"range"],[q.Msg.HTML_RESET,"reset"],[q.Msg.HTML_SEARCH,"search"],[q.Msg.HTML_SUBMIT,"submit"],[q.Msg.HTML_TELEPHONENUMBER,"telephone number"],[q.Msg.HTML_TIME,"time"],[q.Msg.HTML_URL,"url"],[q.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(q.Msg.HTML_NAME).appendField(new q.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(q.Msg.HTML_VALUE).appendField(new q.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_TEXT).appendField(new q.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs=160,bs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new q.FieldTable(""),"TEXT")}},ys={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT")}},Vs={init:function(){this.setColour(Xs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Bs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Gs={init:function(){this.setColour(Xs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new q.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Us={init:function(){this.setColour(Xs),this.appendValueInput("VALUE").appendField(q.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ws={init:function(){this.setColour(Xs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(q.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=q.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+p()+"("+t+", "+e+", "+i+") or "+r()+"("+t+", "+e+", "+i+")"},q.isNumber(n)&&q.isNumber(s)&&q.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const yu=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Vu=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Bu=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Gu=function(t,e){return["None",e.ORDER_ATOMIC]},Uu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},wu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ku=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},xu=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Hu=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Wu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ku=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ju=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Qu=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},qu=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ju=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Zu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},$u=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},tp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ep=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ip=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},np=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},op=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},_p=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},up=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},pp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},rp=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ap=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},lp=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ip=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},dp=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),q.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Qp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},qp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},jp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},zp=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Zp=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},$p=function(t,e){return'"},tr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},er=function(){return this.getFieldValue("TEXT")+"\n"},ir=function(t){return t.getFieldValue("TEXT")+"\n"},nr=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},sr=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},or=function(){return""},_r=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},ur=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+"while True:\n"+p.join("")+r.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+r.join("\n")},lr.scrubNakedValue=function(t){return t+"\n"},lr.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},lr.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},lr.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=q.utils.string.wrap(o,lr.COMMENT_WRAP-3),n+=lr.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const Ir=120,dr={init:function(){this.setColour(Ir),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new q.FieldDropdown(dr.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))},OPERATORS:[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]]},Tr={init:function(){this.setColour(Ir);var t=new q.FieldDropdown(Tr.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}},OPERATORS:[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]]},Mr="5BA5A5",hr={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(Mr),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(hr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"shift_up"],[q.Msg.MIXLY_DOWN,"shift_down"],[q.Msg.MIXLY_LEFT,"shift_left"],[q.Msg.MIXLY_RIGHT,"shift_right"]]},mr={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(Mr),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(mr.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[q.Msg.MICROBIT_DISPLAY_UNION,"add"],[q.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Or={init:function(){this.setColour(Mr),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(Or.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]]},Er={init:function(){this.setColour(Mr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_RECT).appendField(new q.FieldDropdown(Er.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_OLED_RECT)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},cr={init:function(){this.setColour(Mr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new q.FieldDropdown(cr.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Rr={init:function(){this.setColour(Mr),this.appendValueInput("SUB").setCheck("var").appendField(q.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(Rr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"shift_up"],[q.Msg.MIXLY_DOWN,"shift_down"],[q.Msg.MIXLY_LEFT,"shift_left"],[q.Msg.MIXLY_RIGHT,"shift_right"]]},gr="#569A98",Cr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Cr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(32).fill(0)))},Ar={init:function(){this.setColour(gr),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(Ar.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[q.Msg.MICROBIT_DISPLAY_UNION,"add"],[q.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Lr={init:function(){this.setColour(gr),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(Lr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:q.Msg.MIXLY_UP,shift_down:q.Msg.MIXLY_DOWN,shift_left:q.Msg.MIXLY_LEFT,shift_right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"shift_up"],[q.Msg.MIXLY_DOWN,"shift_down"],[q.Msg.MIXLY_LEFT,"shift_left"],[q.Msg.MIXLY_RIGHT,"shift_right"]]},Sr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Sr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Dr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Dr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},fr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(fr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Nr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(q.Msg.OLED_SET_FONT).appendField(new q.FieldDropdown(Nr.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+q.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+q.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+q.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Pr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Pr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Fr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new q.FieldDropdown(Fr.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[q.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[q.Msg.CLOCKWISE+"90"+q.Msg.blockpy_setheading_degree,"1"],[q.Msg.CLOCKWISE+"180"+q.Msg.blockpy_setheading_degree,"2"],[q.Msg.CLOCKWISE+"270"+q.Msg.blockpy_setheading_degree,"3"]]},Yr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Yr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},vr=180,Xr={init:function(){this.setColour(vr),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(Xr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]]},br={init:function(){this.setColour(vr),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(br.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},yr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(yr.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]]},Vr={init:function(){this.setColour(vr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_RECT).appendField(new q.FieldDropdown(Vr.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_OLED_RECT)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Br={init:function(){this.setColour(vr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new q.FieldDropdown(Br.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Gr={init:function(){this.setColour(vr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_DISPLAY_DRAW+q.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new q.FieldDropdown(Gr.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_DISPLAY_DRAW+q.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Ur=225,wr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(q.Msg.MIXLY_NETWORK_MODE).appendField(new q.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},kr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[q.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=q.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:q.Msg.MIXLY_NETWORK_WIFI_OPEN,False:q.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},xr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Hr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:q.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Wr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Kr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_CONNECT+q.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Jr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[q.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:q.Msg.MIXLY_ESP32_NETWORK_IP,1:q.Msg.MIXLY_ESP32_NETWORK_MASK,2:q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Qr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},qr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[q.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},jr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(q.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(q.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},zr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Zr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new q.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},$r={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},ta={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},ea={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},ia={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},na={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},sa={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},oa={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},_a={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},ua={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},pa={init:function(){this.setColour(Ur),this.appendValueInput("DOMAIN").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS_GET).appendField(new q.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ra={init:function(){this.appendValueInput("VAL"),this.setColour(Ur),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(ra.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:q.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:q.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:q.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},aa={init:function(){this.appendValueInput("VAR").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(Ur),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown(aa.METHOD),"DIR"),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:q.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:q.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},la={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(q.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ia={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new q.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},da="#3288dd",Ta={init:function(){this.setColour(da),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS).appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Ma={init:function(){this.setColour(da),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(q.Msg.blockpy_REQUESTS+q.Msg.OLED_STRING),this.appendDummyInput("").appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},ha={init:function(){this.appendValueInput("VAL"),this.setColour(da),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(ha.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[q.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},ma={init:function(){this.setColour(da),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(q.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},Oa={init:function(){this.setColour(da),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(q.Msg.MIXLY_EMQX_SERVER).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(q.Msg.MIXLY_EMQX_PORT).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(q.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(q.Msg.MIXLY_WIFI_USERNAME).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.MIXLY_IOT_PASSWORD).setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ea={init:function(){this.setColour(da),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(q.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},ca={init:function(){this.setColour(da),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(q.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ra={init:function(){this.setColour(da),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(q.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ga={init:function(){this.setColour(da),this.appendDummyInput().appendField("mqtt"+q.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},Ca="#A58C5B",Aa={init:function(){this.setColour(Ca),this.appendValueInput("PIN",Number).appendField(new q.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new q.FieldDropdown(Aa.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]]},La={init:function(){this.setColour(Ca),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},Sa={init:function(){this.setColour(Ca),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Da=(q.Msg.PS2_TRIANGLE,q.Msg.PS2_CIRCLE,q.Msg.PS2_CROSS,q.Msg.PS2_SQUARE,q.Msg.PS2_L1,q.Msg.PS2_L2,q.Msg.PS2_R1,q.Msg.PS2_R2,q.Msg.PS2_UP,q.Msg.PS2_RIGHT,q.Msg.PS2_DOWN,q.Msg.PS2_LEFT,q.Msg.PS2_SELECT,q.Msg.PS2_START,{init:function(){this.setColour(Ca),this.appendDummyInput("").appendField(q.Msg.PS2_stick).appendField(new q.FieldDropdown(Da.PSSTK),"psstk"),this.setOutput(!0,Number),this.setTooltip("")},PSSTK:[[q.Msg.PS2_RX,"0"],[q.Msg.PS2_RY,"1"],[q.Msg.PS2_LX,"2"],[q.Msg.PS2_LY,"3"]]}),fa={init:function(){this.setColour(Ca),this.appendValueInput("SUB").appendField(q.Msg.PS2),this.appendDummyInput("").appendField(q.Msg.MIXLY_JOYSTICK).appendField(new q.FieldDropdown(fa.PSSTK),"psstk"),this.setOutput(!0,Number),this.setTooltip("")},PSSTK:[[q.Msg.PS2_RX,"RX"],[q.Msg.PS2_RY,"RY"],[q.Msg.PS2_LX,"LX"],[q.Msg.PS2_LY,"LY"]]},Na="#947C54",Pa={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},Fa={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},Ya={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},va={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},Xa={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},ba={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},ya={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},Va={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},Ba={init:function(){this.setColour(Na),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},Ga={init:function(){this.setColour(Na),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},Ua={init:function(){this.setColour(Na),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},wa={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_TOUCH_SLIDE),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOUCH_SLIDE_TOOLTIP)}},ka={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_CHAOSHENGBO),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CHAOSHENGBO)}},xa={init:function(){this.setColour(Na),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETTIME).appendField("myRTC"),this.appendValueInput("hour").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!1),this.setTooltip(q.Msg.MIXLY_RTCSETTIME+q.Msg.MIXLY_MIX2)}},Ha={init:function(){this.setColour(Na),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETDATE).appendField("myRTC"),this.appendValueInput("year").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_DAY),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RTCSETDATE+q.Msg.MIXLY_MIX1)}},Wa={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_CHAOSHENGBO),this.appendValueInput("PIN1",Number).appendField("Trig #").setCheck(Number),this.appendValueInput("PIN2",Number).appendField("Echo #").setCheck(Number),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},Ka={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Ja={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["1","touch1"],["2","touch2"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Qa={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},qa={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_UP,"12"],[q.Msg.MIXLY_DOWN,"14"],[q.Msg.MIXLY_LEFT,"13"],[q.Msg.MIXLY_RIGHT,"15"],["A","32"],["B","33"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ja={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},za={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Za={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},$a={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},tl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_NEAR),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR)}},el={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"left"],[q.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},il={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0)}},nl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},sl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_EXTERN_LIGHT;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},ol={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},_l={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_COLOR_SENSOR+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},ul={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RTC"),this.appendDummyInput().setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCGETTIME),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP+" (year, month, mday, hour, minute, second, weekday, yearday)")}},pl={init:function(){this.setColour(Na),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_RTCGETTIMESTAMP),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIMESTAMP_TOOLTIP)}},rl={init:function(){this.setColour(Na),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.LISTS_TO_TUPLE),this.setInputsInline(!0),this.setOutput(!0,Number)}},al={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RTC"),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_USE_STRING_TUPLE),this.appendDummyInput().appendField(q.Msg.MIXLY_RTCSETTIME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ll={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RTC"),this.appendValueInput("year").setCheck(Number).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).appendField(" "+q.Msg.MIXLY_DAY),this.appendValueInput("hour").setCheck(Number).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).appendField(" "+q.Msg.MIXLY_SECOND),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP)}},Il={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("RTC"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_SETUP).setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP)}},dl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_RTC_GET_TIME_STR),this.setOutput(!0,String),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP)}},Tl={init:function(){this.setColour(Na),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_GPS_TIME+q.Msg.MIXLY_MICROBIT_TYPE_TUPLE).setCheck(),this.appendDummyInput().appendField(q.Msg.A_TO_B+q.Msg.MIXLY_GPS_TIME+q.Msg.LANG_MATH_STRING),this.setOutput(!0,String),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},hl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SOUND),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},ml={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_TEM_HUM+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:q.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:q.Msg.MIXLY_ESP32C3_SENSOR_AHT_HUM_TOOLTIP}[e]}))}},Ol={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0)}},El={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_Altitude+q.Msg.MSG.catSensor+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETPRESSURE,"pressure()"],[q.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[q.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(q.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},gl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Cl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(q.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Al={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("RFID").appendField(new q.FieldDropdown([[q.Msg.MIXLY_RFID_SCAN_OK,"True"],[q.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[q.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_STRENGTH,"strength"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Sl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_GESTURE_ALL).appendField(new q.FieldDropdown([[q.Msg.ME_GO_PITCH,"[0]"],[q.Msg.ME_GO_ROLL,"[1]"],[q.Msg.ME_GO_PITCH+", "+q.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_shake,"shake"],[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"],[q.Msg.MIXLY_MICROBIT_face_up,"face up"],[q.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=q.Msg.MIXLY_MICROBIT_JS_CURRENT,n=q.Msg.MSG.catSensor,s=q.Msg.MIXLY_MICROBIT_JS_STATE,o=q.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:q.Msg.MIXLY_MICROBIT_shake,up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT,"face up":q.Msg.MIXLY_MICROBIT_face_up,"face down":q.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},fl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Nl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Pl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Fl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Yl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},vl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Xl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},bl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH_ALL,"all"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Vl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Bl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Gl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ul={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},wl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},kl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"1"],[q.Msg.TEXT_TRIM_RIGHT,"2"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},xl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},Hl={init:function(){this.setColour(Na),this.appendDummyInput().appendField("acc"+q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_ADXL345_XA,"[0]"],[q.Msg.MIXLY_ADXL345_YA,"[1]"],[q.Msg.MIXLY_ACC_SHAKE,"[2]"],[q.Msg.MIXLY_ADXL345_XA+","+q.Msg.MIXLY_ADXL345_YA+","+q.Msg.MIXLY_ACC_SHAKE,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION)}},Wl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"[0]"],[q.Msg.MIXGO_LEFT_MID,"[1]"],[q.Msg.MIXGO_RIGHT_MID,"[2]"],[q.Msg.TEXT_TRIM_RIGHT,"[3]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},Kl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},Jl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[q.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[q.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ql={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},ql={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXGO_LINE_SENSOR).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_WHITE,"WHITE"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_BLACK,"BLACK"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_RESET,"RESET_TO_FAB"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},zl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_Board_temperature),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},$l={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.ANALOG+q.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("mode").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_LIGHT_INTENSITY+"(%)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown(j.Profile.default.als_num),"PIN"),this.setOutput(!0,Number)}},eI=Pa,iI=Fa,nI=Ya,sI=Ba,oI=il,_I=Ka,uI=Aa,pI=Sa,rI=La,aI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_EXTERN_SOUND),this.setInputsInline(!0),this.setOutput(!0)}},lI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.blockpy_set_of+q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setInputsInline(!0),this.setOutput(!0)}},II={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_LIGHT_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},dI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GYROSCOPE_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},TI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_Horizontal_inclination,"X"],["y","[1]"],["z","[2]"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},MI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_BE_SHAKED),this.setInputsInline(!0),this.setOutput(!0)}},hI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_BUTTON).appendField(new q.FieldDropdown([["a","a"],["b","b"],["c","c"]]),"btn"),this.setOutput(!0),this.setInputsInline(!0)}},mI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},OI={init:function(){this.setColour(Na),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_INITIAL),this.setOutput(!0),this.setInputsInline(!0)}},EI={init:function(){this.setColour(Na),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ),this.setOutput(!0),this.setInputsInline(!0)}},cI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ+q.Msg.MIXLY_COMMUNICATION_DATA_FROM),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_SERIAL_NUMBER,"serial_number"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},RI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_HELLO_XIAOZHI,"1"],[q.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[q.Msg.MIXLY_THE_FIRST,"3"],[q.Msg.MIXLY_THE_SECOND,"4"],[q.Msg.MIXLY_THE_THIRD,"5"],[q.Msg.MIXLY_THE_FOURTH,"6"],[q.Msg.MIXLY_THE_FIFTH,"7"],[q.Msg.MIXLY_THE_SIXTH,"8"],[q.Msg.MIXLY_THE_SEVENTH,"9"],[q.Msg.MIXLY_THE_EIGHTH,"10"],[q.Msg.MIXLY_THE_NINTH,"11"],[q.Msg.MIXLY_THE_TENTH,"12"],[q.Msg.MIXLY_THE_ELEVENTH,"13"],[q.Msg.MIXLY_THE_TWELFTH,"14"],[q.Msg.MIXLY_THE_13TH,"15"],[q.Msg.MIXLY_THE_14TH,"16"],[q.Msg.MIXLY_THE_15TH,"17"],[q.Msg.MIXLY_THE_16TH,"18"],[q.Msg.MIXLY_THE_17TH,"19"],[q.Msg.MIXLY_THE_18TH,"20"],[q.Msg.MIXLY_THE_19TH,"21"],[q.Msg.MIXLY_THE_20TH,"22"],[q.Msg.MIXLY_Turn_on_the_lights,"23"],[q.Msg.MIXLY_Turn_off_the_lights,"24"],[q.Msg.MIXLY_Turn_up_the_brightness,"25"],[q.Msg.MIXLY_Turn_down_the_brightness,"26"],[q.Msg.MIXLY_Set_it_to_red,"27"],[q.Msg.MIXLY_Set_it_to_orange,"28"],[q.Msg.MIXLY_Set_it_to_yellow,"29"],[q.Msg.MIXLY_Set_it_to_green,"30"],[q.Msg.MIXLY_Set_it_to_cyan,"31"],[q.Msg.MIXLY_Set_it_to_blue,"32"],[q.Msg.MIXLY_Set_it_to_purple,"33"],[q.Msg.MIXLY_Set_it_to_white,"34"],[q.Msg.MIXLY_Turn_on_the_fan,"35"],[q.Msg.MIXLY_Turn_off_the_fan,"36"],[q.Msg.MIXLY_First_gear,"37"],[q.Msg.MIXLY_Wind_speed_second,"38"],[q.Msg.MIXLY_Third_gear,"39"],[q.Msg.MIXLY_Previous,"40"],[q.Msg.MIXLY_Next_page,"41"],[q.Msg.MIXLY_Show_smiley_face,"42"],[q.Msg.MIXLY_Show_crying_face,"43"],[q.Msg.MIXLY_Show_love,"44"],[q.Msg.MIXLY_Close_display,"45"],[q.Msg.MIXLY_Start_execution,"46"],[q.Msg.MIXLY_FORWARD,"47"],[q.Msg.MIXLY_BACKWARD,"48"],[q.Msg.MIXLY_TURNLEFT,"49"],[q.Msg.MIXLY_TURNRIGHT,"50"],[q.Msg.MIXLY_STOP,"51"],[q.Msg.MIXLY_Accelerate,"52"],[q.Msg.MIXLY_retard,"53"],[q.Msg.ROTATION_FORWARD,"54"],[q.Msg.ROTATION_BACKWARD,"55"],[q.Msg.MIXLY_Query_temperature,"56"],[q.Msg.MIXLY_Query_humidity,"57"],[q.Msg.MIXLY_Query_brightness,"58"],[q.Msg.MIXLY_Query_sound,"59"],[q.Msg.MIXLY_Query_time,"60"],[q.Msg.MIXLY_Query_distance,"61"],[q.Msg.MIXLY_Query_pressure,"62"],[q.Msg.MIXLY_Query_key,"63"],[q.Msg.MIXLY_Query_touch,"64"],[q.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(q.Msg.MIXLY_WHETHER+q.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},CI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[q.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[q.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},AI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_MP3_PLAY).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_WIND_SPEED,"154"],[q.Msg.MIXLY_HYETAL,"155"],[q.Msg.MIXLY_TEMPERATURE,"156"],[q.Msg.MIXLY_Humidity,"157"],[q.Msg.MIXLY_Altitude,"158"],[q.Msg.MIXLY_SOUND,"159"],[q.Msg.MIXLY_BRIGHTNESS,"160"],[q.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[q.Msg.MIXLY_SERVO,"162"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[q.Msg.MIXLY_BUTTON2,"164"],[q.Msg.MIXLY_ESP32_TOUCH,"165"],[q.Msg.MIXLY_PAY,"166"],[q.Msg.MIXLY_CARSH_CHANGE,"167"],[q.Msg.MIXLY_COUNTDOWN,"168"],[q.Msg.MIXLY_TIMING,"169"],[q.Msg.MIXLY_AT_THE_MOMENT,"170"],[q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[q.Msg.MIXLY_FORWARD,"172"],[q.Msg.MIXLY_BACKWARD,"173"],[q.Msg.MIXLY_TURNLEFT,"174"],[q.Msg.MIXLY_TURNRIGHT,"175"],[q.Msg.MIXLY_STOP,"176"],[q.Msg.MIXLY_Accelerate,"177"],[q.Msg.MIXLY_retard,"178"],[q.Msg.ROTATION_FORWARD,"179"],[q.Msg.ROTATION_BACKWARD,"180"],[q.Msg.TUPLE_JOIN,"181"],[q.Msg.MIXLY_SHOW,"182"],[q.Msg.MIXLY_LAMPLIGHT,"183"],[q.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(q.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(q.Msg.MIXLY_UNIT).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_YEAR,"117"],[q.Msg.MIXLY_MONTH,"118"],[q.Msg.MIXLY_DAY,"119"],[q.Msg.MIXLY_HOUR,"120"],[q.Msg.MIXLY_MINUTE,"121"],[q.Msg.MIXLY_SECOND,"122"],[q.Msg.MIXLY_WEEK2,"123"],[q.Msg.MIXLY_RMB_UNIT,"124"],[q.Msg.blockpy_setheading_degree,"125"],[q.Msg.MIXLY_GEAR,"126"],[q.Msg.MIXLY_LAYER,"127"],[q.Msg.MIXLY_GRAM,"128"],[q.Msg.MIXLY_METER,"129"],[q.Msg.MIXLY_CENTIMETER,"130"],[q.Msg.MIXLY_MILLIMETER,"131"],[q.Msg.MIXLY_LUMEN,"132"],[q.Msg.MIXLY_DECIBEL,"133"],[q.Msg.MIXLY_hectopascal,"134"],[q.Msg.MIXLY_PERCENT,"135"],[q.Msg.MIXLY_CELSIUS,"136"],[q.Msg.MIXLY_METER_PER_SEC,"137"],[q.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[q.Msg.MIXLY_SUCCESS,"140"],[q.Msg.MIXLY_FAILED,"141"],[q.Msg.MIXLY_WRONG,"142"],[q.Msg.MIXLY_GOOD,"143"],[q.Msg.MIXLY_blockpy_set_add,"144"],[q.Msg.MIXLY_DECREASE,"145"],[q.Msg.COLOUR_RGB_RED,"146"],[q.Msg.COLOUR_RGB_ORANGE,"147"],[q.Msg.COLOUR_YELLOW,"148"],[q.Msg.COLOUR_RGB_GREEN,"149"],[q.Msg.COLOUR_CYAN,"150"],[q.Msg.COLOUR_RGB_BLUE,"151"],[q.Msg.COLOUR_RGB_PURPLE,"152"],[q.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},LI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_SYSTEM+q.Msg.MIXLY_CMD).appendField(new q.FieldDropdown([[q.Msg.MILXY_ENTER_WAKE_UP,"1"],[q.Msg.MIXLY_INCREASE_VOLUME,"202"],[q.Msg.MIXLY_REDUCE_VOLUME,"203"],[q.Msg.MIXLY_MAX_VOLUME,"204"],[q.Msg.MIXLY_MINIMUM,"205"],[q.Msg.MIXLY_OPEN_RESPONSE,"206"],[q.Msg.MIXLY_CLOSE_RESPONSE,"207"],[q.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SI={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_THE_COPROCESSOR_VERSION),this.setOutput(!0),this.setInputsInline(!0)}},DI=40,fI={init:function(){this.setColour(DI),this.appendValueInput("PIN",Number).appendField(new q.FieldDropdown([["DHT11","dht11"],["DHT22","dht22"]]),"TYPE").appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new q.FieldDropdown(fI.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"relative_humidity"],[q.Msg.MIXLY_DHT11_T_H,"tempandhum"]]};const NI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = network.WLAN(network."+this.getFieldValue("mode")+"_IF);\n"},PI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect("+e.valueToCode(this,"id",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"password",e.ORDER_ATOMIC)+")\n"},FI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".isconnected()",e.ORDER_ATOMIC]},YI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".ifconfig()["+this.getFieldValue("mode")+"]",e.ORDER_ATOMIC]},vI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".disconnect()\n"},XI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active("+this.getFieldValue("op")+")\n"},bI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active()",e.ORDER_ATOMIC]},yI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config('"+this.getFieldValue("op")+"')",e.ORDER_ATOMIC]},VI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config(essid = "+e.valueToCode(this,"essid",e.ORDER_ATOMIC)+", channel="+e.valueToCode(this,"channel",e.ORDER_ATOMIC)+")\n"},BI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".scan()",e.ORDER_ATOMIC]},GI=function(t,e){e.definitions_["import_server_*"]="from server import *";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return"if not "+i+".isconnected():\n connectWifi(SSID, PASSWORD)\nip="+i+".ifconfig()[0]\nprint(ip)\ntime.sleep(1)\nDATA=listenData()\n"},UI=function(t,e){e.definitions_.import_network="import network",e.definitions_.import_socket="import socket";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"UDP"==n?n="socket.SOCK_DGRAM":"TCP"==n&&(n="socket.SOCK_STREAM"),i+" = socket.socket(socket.AF_INET, "+n+")\n"},wI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".bind("+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},kI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect(socket.getaddrinfo"+e.valueToCode(this,"address",e.ORDER_ATOMIC)+"[0][-1])\n"},xI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".listen("+e.valueToCode(this,"queue",e.ORDER_ATOMIC)+")\n"},HI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".accept()",e.ORDER_ASSIGNMENT]},WI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recv("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},KI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".send("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+")\n"},JI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recvfrom("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},QI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".sendto("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},qI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".close()\n"},jI=function(t,e){return e.definitions_.import_requests="import requests",e.variableDB_.getName(this.getFieldValue("VAR"),q.Variables.NAME_TYPE)+"= requests.get("+e.valueToCode(this,"DOMAIN",e.ORDER_ATOMIC)+")\n"},zI=function(t,e){return e.definitions_.import_requests="import requests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},ZI=function(t,e){return e.definitions_.import_requests="import requests","requests."+this.getFieldValue("DIR")+"("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")\n"},$I=function(t,e){return e.definitions_.import_ntptime="import ntptime",["ntptime.time(host="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},td=function(t,e){return["'"+this.getFieldValue("op")+"'",e.ORDER_ATOMIC]},ed=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},id=function(t,e){return e.definitions_.import_urequests="import urequests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},nd=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+", data="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sd=function(t,e){return e.definitions_.import_educore_wifi="from educore import wifi","wifi.connect(ssid="+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", timeout="+e.valueToCode(this,"TIMEOUT",e.ORDER_ATOMIC)+")\n"},od=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.connect(server="+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", port="+e.valueToCode(this,"PORT",e.ORDER_ATOMIC)+", client_id="+e.valueToCode(this,"CLIENT_ID",e.ORDER_ATOMIC)+", user="+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},_d=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC);return["mqttclient."+e.valueToCode(this,"MESSAGE",e.ORDER_ATOMIC)+"("+i+")",e.ORDER_ATOMIC]},ud=function(t,e){var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC),n=e.valueToCode(this,"METHOD",e.ORDER_ATOMIC);return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.received(topic="+i+", callback="+n+")\n"},pd=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqtt_client.publish(topic="+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+", content="+e.valueToCode(this,"MSG",e.ORDER_ATOMIC)+")\n"},rd=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";return["mqtt_client.connescted()",e.ORDER_ATOMIC]},ad=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".is_pressed()",e.ORDER_ATOMIC]},ld=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".was_pressed()",e.ORDER_ATOMIC]},Id=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},dd=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=e.valueToCode(this,"btn",e.ORDER_ATOMIC),s=this.getFieldValue("mode");return i+"."+n+".irq(handler="+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger="+s+")\n"},Td=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.is_pressed()",e.ORDER_ATOMIC]},Md=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.was_pressed()",e.ORDER_ATOMIC]},hd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},md=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=this.getFieldValue("mode");return i+".button.irq(handler="+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger="+n+")\n"},Od=function(t,e){return e.definitions_.import_sonar="import sonar",["sonar.Sonar("+e.valueToCode(this,"PIN1",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN2",e.ORDER_ASSIGNMENT)+").checkdist()",e.ORDER_ATOMIC]},Ed=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},cd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Rd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},gd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Cd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Ad=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Ld=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Sd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps_nl()",e.ORDER_ATOMIC]},Dd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".infrared_"+this.getFieldValue("direction")+"()",e.ORDER_ATOMIC]},fd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps()",e.ORDER_ATOMIC]},Nd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".ps_nl()",e.ORDER_ATOMIC]},Pd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als()",e.ORDER_ATOMIC]},Fd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.color()",e.ORDER_ATOMIC]},Yd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".als_vis()",e.ORDER_ATOMIC]},vd=function(t,e){return e.definitions_.import_ds18x20x="import ds18x20x",["ds18x20x.get_ds18x20_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Xd=function(t,e){return e.definitions_.import_lm35="import lm35",["lm35.get_LM35_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},bd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_brightness()",e.ORDER_ATOMIC];if("mixgo_ce"==i)return e.definitions_.import_mixgo_ce="import mixgo_ce",["mixgo_ce.get_brightness()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_light="from mpython import onboard_light",["onboard_light.brightness()",e.ORDER_ATOMIC];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als_vis()",e.ORDER_ATOMIC]},yd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixbot"==i){e.definitions_["import_"+i+"_sound"]="from "+i+" import sound";var n="sound.loudness()"}else if("mixgo_zero"==i){e.definitions_.import_mixgo_zero_voice_sound_level="from mixgo_zero_voice import sound_level";n="sound_level()"}else if("mixgo_nova"==i){e.definitions_.import_mixgo_nova_voice_sound_level="from mixgo_nova_voice import sound_level";n="sound_level()"}else{if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_soundlevel()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_sound="from mpython import onboard_sound",["onboard_sound.soundlevel()",e.ORDER_ATOMIC];if("mixgo_mini"==i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";n="onboard_bot.soundlevel()"}else{e.definitions_["import_"+i+"_onboard_sound"]="from "+i+" import onboard_sound";n="onboard_sound.read()"}}return[n,e.ORDER_ATOMIC]},Vd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_spl06_001="import spl06_001",e.definitions_.import_onboard_bps="onboard_bps = spl06_001.SPL06(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_bps"]="from "+i+" import onboard_bps",["onboard_bps."+n,e.ORDER_ATOMIC]},Bd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_nova"==i||"mixgo_zero"==i?e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths":"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_shtc3="import shtc3",e.definitions_.import_onboard_ths="onboard_ths = shtc3.SHTC3(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths",["onboard_ths."+n+"()",e.ORDER_ATOMIC]},Gd=function(t,e){return e.definitions_.import_feiyi_onboard_acc="from feiyi import onboard_acc",["onboard_acc.temperature()",e.ORDER_ATOMIC]},Ud=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=i,s="onboard_rfid";return"mixgo_mini"===i?(n="mini_g2",s="ext_rfid"):"mixgo_me"===i&&(n="me_g1",s="ext_rc522"),e.definitions_[`import_${n}_${s}`]=`from ${n} import ${s}`,[`${s}.read_card(0, x="id")`,e.ORDER_ATOMIC]},wd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=i,o="onboard_rfid";return"mixgo_mini"===i?(s="mini_g2",o="ext_rfid"):"mixgo_me"===i&&(s="me_g1",o="ext_rc522"),e.definitions_[`import_${s}_${o}`]=`from ${s} import ${o}`,[`${o}.read_card(${n}, x="content")`,e.ORDER_ATOMIC]},kd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC),o=i,_="onboard_rfid";return"mixgo_mini"===i?(o="mini_g2",_="ext_rfid"):"mixgo_me"===i&&(o="me_g1",_="ext_rc522"),e.definitions_[`import_${o}_${_}`]=`from ${o} import ${_}`,`${_}.write_card(${s}, ${n})`},xd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC),o=i,_="onboard_rfid";return"mixgo_mini"===i?(o="mini_g2",_="ext_rfid"):"mixgo_me"===i&&(o="me_g1",_="ext_rc522"),e.definitions_[`import_${o}_${_}`]=`from ${o} import ${_}`,[`${_}.write_card(${s}, ${n})`,e.ORDER_ATOMIC]},Hd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key"),s=i,o="onboard_rfid";return"mixgo_mini"===i?(s="mini_g2",o="ext_rfid"):"mixgo_me"===i&&(s="me_g1",o="ext_rc522"),e.definitions_[`import_${s}_${o}`]=`from ${s} import ${o}`,[`${o}.scan_card() == ${n}`,e.ORDER_ATOMIC]},Wd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("strength"==n){if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";var s="acc_gyr.strength()"}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.strength()"}return[s,e.ORDER_ATOMIC]}if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";s="acc_gyr.accelerometer()"+n}else if("mpython"==i){e.definitions_.import_mpython_motion="from mpython import motion";s="motion.accelerometer()"+n}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.acceleration()"+n}return[s,e.ORDER_ATOMIC]},Kd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc",["onboard_acc.eulerangles()"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},Jd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+'.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},Qd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},qd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"button",e.ORDER_ATOMIC);if("mixgo_mini"===i||"mixgo_sant"===i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var s="onboard_bot.touched("+n+")"}else{e.definitions_["import_"+i]="import "+i;s=i+".touched("+n+")"}return[s,e.ORDER_ATOMIC]},jd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"===i||"mixgo_sant"===i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var n="onboard_bot.touch_slide()"}else{e.definitions_["import_"+i]="import "+i;n=i+".touch_slide(3, 4)"}return[n,e.ORDER_ATOMIC]},zd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},Zd=function(t,e){return e.definitions_.import_mpython="import mpython",["mpython.touch_"+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},$d=function(t,e){e.definitions_.import_adxl345="import adxl345";var i,n=this.getFieldValue("key"),s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"x"==n?i=s+".readX()":"y"==n?i=s+".readY()":"z"==n?i=s+".readZ()":"values"==n&&(i=s+".readXYZ()"),[i,e.ORDER_ATOMIC]},tT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},eT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},iT=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".calibrate()\n"},nT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==i&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[i+".mpu9250_get_temperature()",e.ORDER_ATOMIC]},sT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);"compass"==i&&(e.definitions_.import_mixgo_compass="from mixgo import compass");var n,s=this.getFieldValue("compass");return"strength"==s?n=i+".get_field_strength()":"heading"==s&&(n=i+".heading()"),[n,e.ORDER_ATOMIC]},oT=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".reset_calibrate()\n"},_T=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",['onboard_mpu.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},uT=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},pT=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},rT=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},aT=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.calibrate()\n"},lT=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_temperature()",e.ORDER_ATOMIC]},IT=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass";var i,n=this.getFieldValue("compass");return"strength"==n?i="onboard_compass.get_field_strength()":"heading"==n&&(i="onboard_compass.heading()"),[i,e.ORDER_ATOMIC]},dT=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.reset_calibrate()\n"},TT=function(t,e){return e.definitions_.import_rtctime="import rtctime","rtctime.settime(("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+", 0, 0))\n"},MT=function(t,e){var i=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_rtctime="import rtctime","rtctime.settime("+i+")\n"},hT=function(t,e){e.definitions_.import_time="import time";return["time.localtime()",e.ORDER_ATOMIC]},mT=function(t,e){return e.definitions_.import_time="import time",["time.mktime("+e.valueToCode(this,"LIST",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OT=function(t,e){return e.definitions_.import_time="import time",["time.localtime("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ET=function(t,e){e.definitions_.import_rtctime="import rtctime";return["rtctime.strtime()",e.ORDER_ATOMIC]},cT=function(t,e){return e.definitions_.import_rtctime="import rtctime",["rtctime.strtime("+e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},RT=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==n)if(e.definitions_.import_mpython_magnetic="from mpython import magnetic","all"==i)var s="magnetic.getstrength()";else s="magnetic.getdata()"+i;else if("mixgo_mini"==n)if(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;else if(e.definitions_["import_"+n+"_onboard_mgs"]="from "+n+" import onboard_mgs","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;return[s,e.ORDER_ATOMIC]},gT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_.import_mpython_magnetic="from mpython import magnetic"}else"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return["onboard_mgs.getangle()",e.ORDER_ATOMIC]},CT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return"onboard_mgs.calibrate()\n"},AT=function(t,e){if("mixgo_mini"==j.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mixgo_mini_onboard_temperature="from mixgo_mini import onboard_temperature";var i="onboard_temperature()"}else{e.definitions_.import_mixgo_me_onboard_acc="from mixgo_me import onboard_acc";i="onboard_acc.temperature()"}return[i,e.ORDER_ATOMIC]},LT=function(t,e){e.definitions_.import_mixgo_ce="import mixgo_ce";return["mixgo_ce.get_temperature()",e.ORDER_ATOMIC]},ST=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mpython_motion="from mpython import motion",["motion.gyroscope()"+i,e.ORDER_ATOMIC]},DT=function(t,e){return e.definitions_.import_mpython_motion="from mpython import motion",["motion.temperature()",e.ORDER_ATOMIC]},fT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_adc"+n]="from "+i+" import adc"+n,["adc"+n+".read()",e.ORDER_ATOMIC]},NT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return"feiyi"==i?(e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_bat()",e.ORDER_ATOMIC]):(e.definitions_["import_"+i+"_battery"]="from "+i+" import battery",["battery.voltage()",e.ORDER_ATOMIC])},PT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_rm_e1_gyro="from rm_e1 import gyro",["gyro.acceleration()"+i,e.ORDER_ATOMIC]},FT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.patrol()"+i,e.ORDER_ATOMIC]},YT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.obstacle()"+i,e.ORDER_ATOMIC]},vT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info","onboard_info.ir_mode(onboard_info."+i+")\n"},XT=function(t,e){e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info";return["onboard_info.read_bat()",e.ORDER_ATOMIC]},bT=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol","patrol.correct(patrol.CORRECTING_"+i+")\n"},yT=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol",["patrol.getdata()"+i,e.ORDER_ATOMIC]},VT=function(t,e){e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr";return["acc_gyr.temperature()",e.ORDER_ATOMIC]},BT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr",["acc_gyr.gyroscope()"+i,e.ORDER_ATOMIC]},GT=function(t,e){return e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_als("+e.valueToCode(this,"mode",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},UT=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},wT=ad,kT=ld,xT=Id,HT=zd,WT=fd,KT=bd,JT=KT,QT=function(t,e){return e.definitions_.import_dhtx="import dhtx",["dhtx."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")."+this.getFieldValue("WHAT")+"()",e.ORDER_ATOMIC]},qT=function(t,e){e.definitions_.import_educore_sound="from educore import sound";return["sound()",e.ORDER_ATOMIC]},jT=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},zT=function(t,e){e.definitions_.import_educore_light="from educore import light";return["light()",e.ORDER_ATOMIC]},ZT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer";return["accelerometer()",e.ORDER_ATOMIC]},$T=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},tM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shake()",e.ORDER_ATOMIC]},eM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",["button(button."+this.getFieldValue("btn")+")",e.ORDER_ATOMIC]},iM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".status()",e.ORDER_ATOMIC]},nM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",["rfid("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scanning()",e.ORDER_ATOMIC]},oM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},_M=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";return"onboard_asr.cmd_id()\n"},uM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr",["onboard_asr.result("+this.getFieldValue("cmd")+")",e.ORDER_ATOMIC]},pM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=this.getFieldValue("key");if("status1"==n)var s="onboard_asr.status()[0]";else if("status2"==n)s="onboard_asr.status()[1]";else s="onboard_asr."+n+"()";return[s,e.ORDER_ATOMIC]},rM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return"onboard_asr.play("+this.getFieldValue("star")+", "+n+", "+this.getFieldValue("end")+")\n"},aM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr","onboard_asr.sys_cmd("+this.getFieldValue("cmd")+")\n"},lM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";return["onboard_bot.version()",e.ORDER_ATOMIC]},IM={microbit:{description:"microbit_python",digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],pwm:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],analog:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P10","10"]],interrupt:[["P0","0"],["P1","1"],["P2","2"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","Image.HEART"],["HEART_SMALL","Image.HEART_SMALL"],["HAPPY","Image.HAPPY"],["SMILE","Image.SMILE"],["SAD","Image.SAD"],["CONFUSED","Image.CONFUSED"],["ANGRY","Image.ANGRY"],["ASLEEP","Image.ASLEEP"],["SURPRISED","Image.SURPRISED"],["SILLY","Image.SILLY"],["FABULOUS","Image.FABULOUS"],["MEH","Image.MEH"],["YES","Image.YES"],["NO","Image.NO"],["CLOCK12","Image.CLOCK12"],["CLOCK11","Image.CLOCK11"],["CLOCK10","Image.CLOCK10"],["CLOCK9","Image.CLOCK9"],["CLOCK8","Image.CLOCK8"],["CLOCK7","Image.CLOCK7"],["CLOCK6","Image.CLOCK6"],["CLOCK5","Image.CLOCK5"],["CLOCK4","Image.CLOCK4"],["CLOCK3","Image.CLOCK3"],["CLOCK2","Image.CLOCK2"],["CLOCK1","Image.CLOCK1"],["ARROW_N","Image.ARROW_N"],["ARROW_NE","Image.ARROW_NE"],["ARROW_E","Image.ARROW_E"],["ARROW_SE","Image.ARROW_SE"],["ARROW_S","Image.ARROW_S"],["ARROW_SW","Image.ARROW_SW"],["ARROW_W","Image.ARROW_W"],["ARROW_NW","Image.ARROW_NW"],["TRIANGLE","Image.TRIANGLE"],["TRIANGLE_LEFT","Image.TRIANGLE_LEFT"],["CHESSBOARD","Image.CHESSBOARD"],["DIAMOND","Image.DIAMOND"],["DIAMOND_SMALL","Image.DIAMOND_SMALL"],["SQUARE","Image.SQUARE"],["SQUARE_SMALL","Image.SQUARE_SMALL"],["RABBIT","Image.RABBIT"],["COW","Image.COW"],["MUSIC_CROTCHET","Image.MUSIC_CROTCHET"],["MUSIC_QUAVER","Image.MUSIC_QUAVER"],["MUSIC_QUAVERS","Image.MUSIC_QUAVERS"],["PITCHFORK","Image.PITCHFORK"],["XMAS","Image.XMAS"],["PACMAN","Image.PACMAN"],["TARGET","Image.TARGET"],["TSHIRT","Image.TSHIRT"],["ROLLERSKATE","Image.ROLLERSKATE"],["DUCK","Image.DUCK"],["HOUSE","Image.HOUSE"],["TORTOISE","Image.TORTOISE"],["BUTTERFLY","Image.BUTTERFLY"],["STICKFIGURE","Image.STICKFIGURE"],["GHOST","Image.GHOST"],["SWORD","Image.SWORD"],["GIRAFFE","Image.GIRAFFE"],["SKULL","Image.SKULL"],["UMBRELLA","Image.UMBRELLA"],["SNAKE","Image.SNAKE"],["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],imglist:[["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["P0","0"],["P1","1"],["P2","2"],["P8","8"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]]}};IM["BBC micro:bit"]=IM.microbit;const dM=IM,TM=100,MM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_built_in_melody1)}},hM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",tooltip:"Play one of the built-in melodies. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody_easy,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"}]})}},mM={init:function(){this.setColour(TM),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.appendValueInput("duration").setCheck(Number).appendField(q.Msg.MIXLY_DURATION),this.appendDummyInput("").appendField(q.Msg.MIXLY_MILLIS).appendField(q.Msg.MIXLY_MICROBIT_WAIT),this.appendDummyInput("").appendField(new q.FieldCheckbox(!0),"wait"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},OM={init:function(){this.setColour(TM),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},EM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_notes1)}},cM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",tooltip:"Play a list of notes expressed in the special music language. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{type:"input_dummy"},{type:"input_dummy"}]})}},RM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",message0:q.Msg.MIXLY_MICROBIT_Reset_music}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_music)}},gM={init:function(){this.setColour(TM),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_NOTONE).appendField(q.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_NOTONE)}},CM={init:function(){this.jsonInit({colour:TM,output:"Array",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",message0:q.Msg.MIXLY_MICROBIT_Get_current_tempo}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Get_current_tempo)}},AM={init:function(){this.setColour(TM),this.appendValueInput("TICKS").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(q.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO1)}},LM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,"say"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,"sing"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE,"pronounce"]]),"MODE"),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_pitch),this.appendValueInput("speed").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.appendValueInput("mouth").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_mouth),this.appendValueInput("throat").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_throat),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH,n=q.Msg.MIXLY_MICROBIT_TYPE_STRING;return i+{say:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,sing:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,pronounce:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE}[e]+n}))}},SM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},DM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},NM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MICROBIT_SPEECH_translation),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MICROBIT_SPEECH_translation)}},PM={init:function(){this.setColour(TM),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_SERVO).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERVO_MOVE)}},FM={init:function(){this.appendValueInput("speed").setCheck(null).appendField(q.Msg.MIXLY_MOTOR).appendField(new q.FieldDropdown([["M1","1"],["M2","2"],["M3","3"],["M4","4"]]),"Motor").appendField(q.Msg.MIXLY_SPEED),this.appendDummyInput().appendField(new q.FieldDropdown([["Forward","1*"],["Reverse","-1*"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(TM),this.setTooltip(""),this.setHelpUrl("")}},YM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RGB_PIN_COUNT)}},vM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_RGB_NUM_R_G_B)}},XM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},bM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_ESP32_MUSIC_WRI)}},yM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+" "+q.Msg.QJ00X_MP3),this.appendValueInput("RX").setAlign(q.inputs.Align.RIGHT).appendField("TX#"),this.appendValueInput("TX").setAlign(q.inputs.Align.RIGHT).appendField("RX#"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var VM=[[q.Msg.MIXLY_MP3_PLAY,"play"],[q.Msg.MIXLY_MP3_PAUSE,"pause"],[q.Msg.MIXLY_MP3_NEXT,"next_track"],[q.Msg.MIXLY_MP3_PREV,"prev_track"],[q.Msg.MIXLY_MP3_VOL_UP,"inc_vol"],[q.Msg.MIXLY_MP3_VOL_DOWN,"dec_vol"]];const BM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(VM),"CONTROL_TYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var GM=[[q.Msg.MIXLY_MP3_LOOP_ALL,"0"],[q.Msg.MIXLY_MP3_LOOP_FOLDER,"1"],[q.Msg.MIXLY_MP3_LOOP_ONE,"2"],[q.Msg.MIXLY_MP3_LOOP_RAM,"3"]];const UM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_LOOP_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(GM),"LOOP_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var wM=[[q.Msg.MIXLY_MP3_EQ_NORMAL,"0"],[q.Msg.MIXLY_MP3_EQ_POP,"1"],[q.Msg.MIXLY_MP3_EQ_ROCK,"2"],[q.Msg.MIXLY_MP3_EQ_JAZZ,"3"],[q.Msg.MIXLY_MP3_EQ_CLASSIC,"4"],[q.Msg.MIXLY_MP3_EQ_BASS,"5"]];const kM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_EQ_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(wM),"EQ_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},xM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_VOL),this.appendValueInput("vol",Number).appendField(q.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},HM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},WM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("FOLDER",Number).appendField(q.Msg.DFPLAYER_MINI_FOLDER).setCheck(Number),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},KM=140,JM={init:function(){this.setColour(225),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"on"],[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"off"],[q.Msg.HTML_RESET,"reset"]]),"type").appendField(q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type"),i=q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI;return{on:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,off:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,reset:q.Blockly.Msg.HTML_RESET}[e]+i}))}},QM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",tooltip:"Turn on the radio. This needs to be explicitly called since the radio draws power and takes up memory that you may otherwise need.",message0:q.Msg.MIXLY_MICROBIT_Switch_on_radio})}},qM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",tooltip:"Turn off the radio, thus saving power and memory.",message0:q.Msg.MIXLY_MICROBIT_Switch_off_radio})}},jM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",tooltip:q.Msg.MIXLY_MICROBIT_Configure_radio1,message0:q.Msg.MIXLY_MICROBIT_Configure_radio,args0:[{min:4,value:32,type:"input_value",max:251,name:"length"},{type:"input_dummy"},{min:1,value:3,type:"input_value",max:32,name:"queue"},{type:"input_dummy"},{min:0,value:7,type:"input_value",max:100,name:"channel"},{type:"input_dummy"},{name:"power",type:"input_value"},{type:"input_dummy"},{name:"address",type:"input_value"},{type:"input_dummy"},{name:"group",type:"input_value"},{type:"input_dummy"},{name:"data_rate",type:"input_value"}]})}},zM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",tooltip:"Reset the radio to default settings.",message0:q.Msg.MIXLY_MICROBIT_Reset_radio})}},ZM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",tooltip:"Broadcast a text message.",message0:q.Msg.MIXLY_MICROBIT_Send_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},$M={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RADIO_SEND),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"send"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"send_bytes"]]),"type"),this.appendValueInput("data"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Send_message1)}},th={init:function(){this.jsonInit({colour:225,output:"String",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",tooltip:q.Msg.MIXLY_MICROBIT_Receive_message,message0:q.Msg.MIXLY_MICROBIT_Receive_message})}},eh={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Receive_message),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"receive"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"receive_bytes"],[q.Msg.MIXLY_MICROBIT_MSG_FULL,"receive_full"]]),"type"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Receive_message)}},ih={init:function(){this.setColour(KM),this.appendValueInput("RX",Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_SETUP).appendField("sda").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("scl").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField("频率").setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nh={init:function(){this.setColour(KM),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_READ_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.LANG_MATH_BYTE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},sh={init:function(){this.setColour(KM),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},oh={init:function(){this.jsonInit({colour:KM,nextStatement:null,previousStatement:null,message0:q.Msg.MIXLY_MICROBIT_SPI_INIT,args0:[{value:1e6,type:"field_number",name:"freq"},{type:"input_dummy"},{value:8,type:"field_number",name:"bits"},{type:"input_dummy"},{value:0,type:"field_number",name:"mode"},{type:"input_dummy"},{name:"mosi",options:j.Profile.default.digital,type:"field_dropdown"},{name:"miso",options:j.Profile.default.digital,type:"field_dropdown"},{name:"sck",options:j.Profile.default.digital,type:"field_dropdown"}]}),this.setFieldValue("15","mosi"),this.setFieldValue("14","miso"),this.setFieldValue("13","sck")}},_h={init:function(){this.setColour(KM),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE)}},uh=180,ph={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:q.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Clear_display)}},rh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(q.Msg.MIXLY_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS1)}},ah={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("brightness").setCheck(Number).appendField(q.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS2)}},lh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck([String,"microbit_image"]).appendField(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING)}},Ih={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("delay").setCheck(null).appendField(q.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Th={init:function(){this.setColour(uh),this.appendValueInput("PIN",String).setCheck("microbit_image").appendField(q.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.OLED_BITMAP)}},Mh={init:function(){this.jsonInit({colour:uh,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:q.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}]})}},hh={init:function(){this.jsonInit({colour:uh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:q.Msg.MIXLY_MICROBIT_Animate_images_or_string,args0:[{check:[String,"List"],type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+q.Msg.MIXLY_MICROBIT_Animate_images1)}},mh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.jsonInit({colour:uh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:q.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING)}},Oh={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:q.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Eh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(q.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=q.Msg.MIXLY_MICROBIT_monitor;return{on:q.Msg.MIXLY_MICROBIT_Turn_on_display,off:q.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},ch={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:q.Msg.MIXLY_MICROBIT_Turn_off_display})}},Rh={init:function(){this.jsonInit({colour:uh,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:q.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Display_is_on1)}},gh={init:function(){this.jsonInit({colour:uh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}],output:["microbit_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:q.Msg.MIXLY_MICROBIT_Built_in_image1,message0:q.Msg.MIXLY_MICROBIT_Built_in_image})}},Ch={init:function(){this.jsonInit({colour:uh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.copy",message0:q.Msg.MIXLY_MICROBIT_Copy_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Copy_image1)}},Ah={init:function(){this.jsonInit({colour:uh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.invert",message0:q.Msg.MIXLY_MICROBIT_Invert_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Invert_image1)}},Lh={init:function(){this.jsonInit({colour:uh,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:q.Msg.MIXLY_MICROBIT_Create_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)}},Sh={init:function(){var t=[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]];this.setColour(uh),this.setOutput(!0,"microbit_image"),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["microbit_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[t]+s}))}},Dh={init:function(){var t=[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(uh),this.setOutput(!0,"microbit_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},fh={init:function(){this.setColour(uh),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},Nh={init:function(){this.setColour(uh),this.appendValueInput("device").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_SETUP).appendField(q.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SETUP+q.Msg.MIXLY_DF_LCD+q.Msg.MIXLY_LCD_ADDRESS)}},Ph={init:function(){this.setColour(uh),this.appendValueInput("row",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},Fh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ON,"on()"],[q.Msg.MIXLY_OFF,"off()"],[q.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(False)"],[q.Msg.MIXLY_LCD_BACKLIGHT,"backlight(True)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_DF_LCD+{"on()":q.Msg.MIXLY_ON,"off()":q.Msg.MIXLY_OFF,"clear()":q.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":q.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Yh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD+" OLED "+q.Msg.OLEDDISPLAY),this.appendValueInput("Text_line1","String").setAlign(q.inputs.Align.RIGHT).appendField("(128*64) "+q.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(uh),this.setTooltip(q.Msg.MIXLY_DF_LCD+q.Msg.OLEDDISPLAY+q.Msg.MIXLY_MICROBIT_TYPE_STRING)}},vh={init:function(){var t=[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]];this.setColour(uh),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("microbit_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[t]}))}},Xh={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:q.Msg.MIXLY_LCD_STAT_CLEAR,1:q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return q.Msg.MIXLY_DF_LCD+i[e]}))}},bh="#777777",yh={init:function(){this.setColour(bh),this.appendDummyInput("").appendField("from ").appendField(new q.FieldTextInput("microbit"),"path").appendField(" import ").appendField(new q.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vh={init:function(){this.setColour(bh),this.appendDummyInput("").appendField("import ").appendField(new q.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bh={init:function(){this.setColour(bh),this.appendDummyInput("").appendField(new q.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;e 0:\n pre = bin(value).count("1")\n # find first non full high value afterwards\n try:\n k, value = next((ind, v)\n for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n post = bin(value).count("1") if k else 0\n k = k + i\n except StopIteration:\n i = -1\n dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n return dist\n\n def distance_cm(self):\n return self.distance_mm() / 10.0\n\nsonar=HCSR04()\n\n',["sonar.distance_cm()",e.ORDER_ATOMIC]},Nc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *"},Pc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *";var i=this.getFieldValue("TIME_TYPE");switch(i){case"Year":case"Month":case"Day":case"Hour":case"Minute":case"Second":case"Week":return["ds."+i+"()",e.ORDER_ASSIGNMENT];case"Mix1":return["ds.get_date()",e.ORDER_ASSIGNMENT];case"Mix2":return["ds.get_time()",e.ORDER_ASSIGNMENT]}},Fc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_time("+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+")\n"},Yc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_date("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+")\n"},vc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.clear_calibration()\n"},Xc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["display.read_light_level()",e.ORDER_ATOMIC]},bc=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="from ultrasonic import *","sonar = HCSR04(tpin=pin"+i+", epin=pin"+n+")\n"},yc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_TCS="from TCS import *",["tcs.getRawRGBData("+this.getFieldValue("TCS34725_COLOR")+")",e.ORDER_ATOMIC]},Vc=function(t,e){var i=this.getFieldValue("PIN"),n=e.valueToCode(this,"NominalResistance",e.ORDER_ATOMIC),s=e.valueToCode(this,"betaCoefficient",e.ORDER_ATOMIC),o=e.valueToCode(this,"seriesResistor",e.ORDER_ATOMIC);return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ntc="import ntc",["ntc.read(pin"+i+", "+n+", "+s+", "+o+")",e.ORDER_ATOMIC]},Bc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+"))\n"},Gc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+")+'\\r\\n')\n"},Uc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str(hex("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||"0")+")) + '\\r\\n')\n"},wc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"char_marker",e.ORDER_ATOMIC)||";",n=e.statementToCode(this,"DO");e.definitions_["func_serial_receive_data_event_"+i.charCodeAt(1)]="serial.onDataReceived("+i+", () => {\n"+n+"}\n"},kc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.any()",e.ORDER_ATOMIC]},xc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.read()",e.ORDER_ATOMIC]},Hc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.readline()",e.ORDER_ATOMIC]},Wc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["serial.readUntil("+this.getFieldValue("char_marker")+")",e.ORDER_ATOMIC]},Kc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"RX",e.ORDER_ATOMIC),n=e.valueToCode(this,"TX",e.ORDER_ATOMIC);return isNaN(parseInt(i))||(i="pin"+i),isNaN(parseInt(n))||(n="pin"+n),"uart.init(rx="+i+", tx="+n+", baudrate="+this.getFieldValue("baudrate")+")\n"},Jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.init(baudrate="+this.getFieldValue("baudrate")+")\n"},Qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["input("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")",e.ORDER_ATOMIC]},qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")\n"},jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+',end ="")\n'},zc=function(t,e){return"control.inBackground(() => {\n"+e.statementToCode(this,"do")+"})\n"},Zc=function(){return"control.reset()\n"},$c=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},tR=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},eR=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},iR=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},nR=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},sR=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},oR=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},_R=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},uR=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},pR=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","sleep("+(e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000")+")\n"},rR=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},aR=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["running_time()",e.ORDER_ATOMIC]},lR=function(){return"while True:\n pass\n"},IR=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","reset()\n"},dR=function(t,e){return e.definitions_.import_os="import os",["os.uname()",e.ORDER_ATOMIC]};Object.assign(q.Variables,Z),Object.assign(q.Procedures,ar),q.Python=lr,q.generator=lr,j.Profile.default={},Object.assign(j.Profile,dM),Object.assign(j.Profile.default,dM.microbit),Object.assign(q.Blocks,e,i,n,s,o,_,u,p,r,a,l,I,d,D,f,F,Y,v,X,b,y,V,B,G),Object.assign(q.Python.forBlock,T,M,h,m,O,E,c,R,g,C,A,L,S,N,P,U,w,k,x,H,W,K,J,Q)})(); \ No newline at end of file +class ${constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ot={init:function(){this.setColour(It),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Et={init:function(){this.setColour(It),this.appendValueInput("LIST").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(q.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ct={init:function(){this.setColour(It),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Rt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},gt={init:function(){this.setColour(It);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ct={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},At={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};ct.OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],gt.OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Lt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},St={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Dt={init:function(){this.setColour(It),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Nt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Pt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Ft={init:function(){this.jsonInit({message0:q.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:It,tooltip:q.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:q.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Yt={init:function(){this.setColour(It),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_STAT),this.setOutput(!0)}},vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Xt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},bt={init:function(){this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT+q.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(q.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new q.FieldDropdown([[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(It),this.setTooltip("do-while loop"),this.setHelpUrl("")}},yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Bt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Gt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_GET_UNIQUE_IDEN)}},Ut={init:function(){this.setColour(It),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},wt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},kt=230;q.FieldTextInput.math_number_validator=function(t){return String(t)},q.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const xt={init:function(){this.setColour(kt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},Ht={init:function(){this.setColour(kt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Wt={init:function(){this.setColour(kt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Kt={init:function(){this.setColour(kt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Jt={init:function(){this.setColour(kt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Qt={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new q.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},qt={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:q.Msg.MATH_TRIG_TOOLTIP_SIN,COS:q.Msg.MATH_TRIG_TOOLTIP_COS,TAN:q.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:q.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:q.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:q.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:q.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},jt={init:function(){var t=[[q.Msg.MATH_BIN,"bin"],[q.Msg.MATH_OCT,"oct"],[q.Msg.MATH_HEX,"hex"]];this.setColour(kt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:q.Msg.MATH_DEC_TOOLTIP_BIN,oct:q.Msg.MATH_DEC_TOOLTIP_OCT,hex:q.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},zt={init:function(){var t=[[q.Msg.LANG_MATH_TO_ROUND,"round"],[q.Msg.LANG_MATH_TO_CEIL,"ceil"],[q.Msg.LANG_MATH_TO_FLOOR,"floor"],[q.Msg.MATH_ABS,"fabs"],[q.Msg.MATH_SQRT,"sqrt"]];this.setColour(kt),this.appendValueInput("A").setCheck(Number).appendField(new q.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:q.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:q.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:q.Msg.MATH_SINGLE_TOOLTIP_SQ,round:q.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:q.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:q.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Zt={init:function(){var t=[[q.Msg.MIXLY_MAX,"max"],[q.Msg.MIXLY_MIN,"min"]];this.setColour(kt),this.appendValueInput("A").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:q.Msg.MIXLY_TOOLTIP_MATH_MAX,min:q.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},$t={init:function(){var t=[[q.Msg.MATH_TWO,"two"],[q.Msg.MATH_EIGHT,"eight"],[q.Msg.MATH_TEN,"ten"],[q.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(kt),this.appendDummyInput("").appendField(q.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new q.FieldDropdown(t),"OP").appendField(q.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MATH_ZHW).appendField(new q.FieldDropdown(t),"OP2").appendField(q.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:q.Msg.MATH_Before_two,eight:q.Msg.MATH_Before_eight,ten:q.Msg.MATH_Before_ten,sixteen:q.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:q.Msg.MATH_Behind_two,eight:q.Msg.MATH_Behind_eight,ten:q.Msg.MATH_Behind_ten,sixteen:q.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},te={init:function(){var t=[[q.Msg.LANG_MATH_INT,"int"],[q.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(kt),this.setOutput(!0,Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RANDOM).appendField(new q.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:q.Msg.LANG_MATH_INT,float:q.Msg.LANG_MATH_FLOAT_RANDOM};return q.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ee={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_CONSTRAIN_TOOLTIP)}},ie={init:function(){this.setColour(kt),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(q.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(q.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_MAP)}},ne={init:function(){this.setColour(kt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(kt),this.appendValueInput("NUM").setCheck(Number).appendField(q.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},oe={init:function(){this.setColour(kt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MATH_ROUND).appendField(q.Msg.TEXT_KEEP),this.appendDummyInput().appendField(q.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_ROUND_NEW_TOOLTIP)}},_e={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"],[q.Msg.MIXLY_TO_BITES,"b"],[q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_INT,"bti"]];this.setColour(kt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:q.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:q.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ue={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(kt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:q.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},pe=ie,re={init:function(){this.setColour(kt),this.appendValueInput("VAR").appendField(q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ae={init:function(){this.setColour(kt),this.itemCount_=1,this.setMutator(new q.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(q.Msg.MIXLY_PRODUCT+q.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(q.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(q.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const he={init:function(){this.setColour(de),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new q.FieldTextInput("",q.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(q.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new q.FieldImage(e,7,12,'"')}},me={init:function(){this.setColour(de),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(q.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Oe={init:function(){this.setColour(de),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ee={init:function(){this.setColour(de),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},ce={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Re={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ge={init:function(){this.WHERE_OPTIONS=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.TEXT_GET_INDEX_RANDOM+1+q.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(q.Msg.LISTS_GET_INDEX_GET,"MODE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(q.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+q.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",q.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:q.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:q.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:q.Msg.TEXT_GET_INDEX_RANDOM};return q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+q.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==q.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new q.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ce={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.LISTS_GET_INDEX_FROM_START+"n"+q.Msg.TEXT_CHARAT2)}},Ae={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(q.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(q.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Le={init:function(){this.WHERE_OPTIONS_1=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[q.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==q.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new q.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Se={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(q.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},fe={init:function(){var t=[[q.Msg.MIXLY_EQUALS,"==="],[q.Msg.MIXLY_STARTSWITH,"startswith"],[q.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(de),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new q.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},De={init:function(){this.setColour(de),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_COMPARETO_HELP)}},Ne={init:function(){var t=[[q.Msg.TEXT_UPPER,"upper"],[q.Msg.TEXT_TITLE,"title"],[q.Msg.TEXT_CAPITALIZE,"capitalize"],[q.Msg.TEXT_SWAPCASE,"swapcase"],[q.Msg.TEXT_LOWER,"lower"]];this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:q.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:q.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:q.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:q.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:q.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Pe={init:function(){var t=[[q.Msg.TEXT_LJUST,"ljust"],[q.Msg.TEXT_CENTER,"center"],[q.Msg.TEXT_RJUST,"rjust"]];this.setColour(de),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(q.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(q.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Fe={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(q.Msg.MIXLY_MID+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(q.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ye={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ve={init:function(){this.setColour(de),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(q.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Xe={init:function(){this.setColour(de),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(q.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(q.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},be={init:function(){var t=[[q.Msg.TEXT_TRIM_BOTH,"strip"],[q.Msg.TEXT_TRIM_LEFT,"lstrip"],[q.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(de),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(q.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:q.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:q.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:q.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ye={init:function(){this.setColour(de),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new q.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new q.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Yi={init:function(){this.setColour(Pi),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},vi={init:function(){this.setColour(Pi),this.appendDummyInput().appendField(q.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Xi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_KEYS),this.setTooltip(q.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},bi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_TOOLTIP)}},yi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Vi={init:function(){this.setColour(Pi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(q.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Bi={init:function(){this.setColour(Pi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_DELETE_TOOLTIP)}},Gi={init:function(){this.setColour(Pi),this.appendValueInput("DICT2").setCheck("Dict").appendField(q.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(q.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(q.Msg.MIXLY_MID),this.setTooltip(q.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ui={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_CLEAR),this.setTooltip(q.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_ITEMS),this.setTooltip(q.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ki={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_VALUES),this.setTooltip(q.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},xi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_LENGTH),this.setTooltip(q.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Hi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_DELDICT),this.setTooltip(q.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wi={init:function(){this.MODE=[[q.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[q.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(q.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=q.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=q.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new q.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Ki={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setTooltip(q.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Ji={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Qi={init:function(){this.setColour(Pi),this.appendDummyInput("").appendField(new q.FieldLabel(q.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new q.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(q.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qi={init:function(){this.setColour(Pi),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ji={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},zi={init:function(){this.setColour(Pi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Zi={init:function(){this.setColour(Pi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},$i={init:function(){this.setColour(Pi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},tn=210,en={init:function(){var t=q.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:q.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:q.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:q.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:q.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:q.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:q.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},nn={init:function(){var t=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new q.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},sn={init:function(){var t=[[q.Msg.LOGIC_OPERATION_AND,"AND"],[q.Msg.LOGIC_OPERATION_OR,"OR"],[q.Msg.LOGIC_OPERATION_NOR,"NOR"],[q.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:q.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:q.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:q.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:q.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},on={init:function(){this.setColour(tn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(q.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(q.Msg.LOGIC_NEGATE_TOOLTIP)}},_n={init:function(){var t=[[q.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[q.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(tn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new q.FieldDropdown(t),"BOOL"),this.setTooltip(q.Msg.LOGIC_BOOLEAN_TOOLTIP)}},un={init:function(){this.setColour(tn),this.setOutput(!0),this.appendDummyInput().appendField(q.Msg.LOGIC_NULL),this.setTooltip(q.Msg.LOGIC_NULL_TOOLTIP)}},pn={init:function(){this.setColour(tn),this.appendValueInput("A"),this.appendValueInput("B").appendField(q.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(q.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},rn={init:function(){var t=[[q.Msg.TEXT_APPEND_TO,"in"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(tn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new q.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(q.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.IN)}},an={init:function(){var t=[[q.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(tn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},ln={init:function(){this.setColour(tn),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},In={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(q.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXPY_TEXT_ENCODE).appendField(new q.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},hn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MICROBIT_PYTHON_TYPE)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.HTML_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Cn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const An={init:function(){this.setColour(0),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Sn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Dn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Nn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+q.Msg.MIXLY_ESP32_SET+{mkdir:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(q.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.HTML_FILE,"isfile"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},vn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(q.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+q.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(q.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Xn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(q.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},bn={init:function(){var t=q.Procedures.findLegalName("",this),e=new q.FieldTextInput(t,q.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new q.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&q.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(q.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(q.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(q.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(q.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=q.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),q.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{q.Events.enable()}},mutationToDom:function(t){var e=q.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ns={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ps={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_FORM_CONTENT).appendField(new q.FieldDropdown([[q.Msg.HTML_TEXT,"text"],[q.Msg.HTML_EMAIL,"email"],[q.Msg.HTML_NUMBER,"number"],[q.Msg.HTML_PASSWORD,"password"],[q.Msg.HTML_CHECKBOX,"checkbox"],[q.Msg.HTML_RADIOBUTTON,"radiobutton"],[q.Msg.HTML_BUTTON,"button"],[q.Msg.HTML_COLOUR,"colour"],[q.Msg.HTML_DATE,"date"],[q.Msg.HTML_LOCALTIME,"local time"],[q.Msg.HTML_FILE,"file"],[q.Msg.HTML_HIDDEN,"hidden"],[q.Msg.HTML_IMAGE,"image"],[q.Msg.HTML_MONTH,"month"],[q.Msg.HTML_RANGE,"range"],[q.Msg.HTML_RESET,"reset"],[q.Msg.HTML_SEARCH,"search"],[q.Msg.HTML_SUBMIT,"submit"],[q.Msg.HTML_TELEPHONENUMBER,"telephone number"],[q.Msg.HTML_TIME,"time"],[q.Msg.HTML_URL,"url"],[q.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(q.Msg.HTML_NAME).appendField(new q.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(q.Msg.HTML_VALUE).appendField(new q.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_TEXT).appendField(new q.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs=160,bs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new q.FieldTable(""),"TEXT")}},ys={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT")}},Vs={init:function(){this.setColour(Xs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Bs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Gs={init:function(){this.setColour(Xs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new q.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Us={init:function(){this.setColour(Xs),this.appendValueInput("VALUE").appendField(q.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ws={init:function(){this.setColour(Xs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(q.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=q.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+p()+"("+t+", "+e+", "+i+") or "+r()+"("+t+", "+e+", "+i+")"},q.isNumber(n)&&q.isNumber(s)&&q.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const yu=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Vu=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Bu=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Gu=function(t,e){return["None",e.ORDER_ATOMIC]},Uu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},wu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ku=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},xu=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Hu=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Wu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ku=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ju=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Qu=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},qu=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ju=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Zu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},$u=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},tp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ep=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ip=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},np=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},op=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},_p=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},up=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},pp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},rp=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ap=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},lp=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ip=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},dp=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),q.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Qp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},qp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},jp=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},zp=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Zp=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},$p=function(t,e){return'"},tr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},er=function(){return this.getFieldValue("TEXT")+"\n"},ir=function(t){return t.getFieldValue("TEXT")+"\n"},nr=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},sr=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},or=function(){return""},_r=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},ur=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+"while True:\n"+p.join("")+r.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+r.join("\n")},lr.scrubNakedValue=function(t){return t+"\n"},lr.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},lr.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},lr.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=q.utils.string.wrap(o,lr.COMMENT_WRAP-3),n+=lr.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const Ir=120,dr={init:function(){this.setColour(Ir),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new q.FieldDropdown(dr.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))},OPERATORS:[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]]},Tr={init:function(){this.setColour(Ir);var t=new q.FieldDropdown(Tr.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}},OPERATORS:[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]]},Mr="5BA5A5",hr={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(Mr),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(hr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"shift_up"],[q.Msg.MIXLY_DOWN,"shift_down"],[q.Msg.MIXLY_LEFT,"shift_left"],[q.Msg.MIXLY_RIGHT,"shift_right"]]},mr={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(Mr),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(mr.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[q.Msg.MICROBIT_DISPLAY_UNION,"add"],[q.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Or={init:function(){this.setColour(Mr),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(Or.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]]},Er={init:function(){this.setColour(Mr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_RECT).appendField(new q.FieldDropdown(Er.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_OLED_RECT)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},cr={init:function(){this.setColour(Mr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new q.FieldDropdown(cr.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Rr={init:function(){this.setColour(Mr),this.appendValueInput("SUB").setCheck("var").appendField(q.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(Rr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"shift_up"],[q.Msg.MIXLY_DOWN,"shift_down"],[q.Msg.MIXLY_LEFT,"shift_left"],[q.Msg.MIXLY_RIGHT,"shift_right"]]},gr="#569A98",Cr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Cr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(32).fill(0)))},Ar={init:function(){this.setColour(gr),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(Ar.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[q.Msg.MICROBIT_DISPLAY_UNION,"add"],[q.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Lr={init:function(){this.setColour(gr),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(Lr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:q.Msg.MIXLY_UP,shift_down:q.Msg.MIXLY_DOWN,shift_left:q.Msg.MIXLY_LEFT,shift_right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"shift_up"],[q.Msg.MIXLY_DOWN,"shift_down"],[q.Msg.MIXLY_LEFT,"shift_left"],[q.Msg.MIXLY_RIGHT,"shift_right"]]},Sr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Sr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},fr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(fr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},Dr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Dr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Nr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(q.Msg.OLED_SET_FONT).appendField(new q.FieldDropdown(Nr.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+q.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+q.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+q.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},Pr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Pr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},Fr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new q.FieldDropdown(Fr.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[q.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[q.Msg.CLOCKWISE+"90"+q.Msg.blockpy_setheading_degree,"1"],[q.Msg.CLOCKWISE+"180"+q.Msg.blockpy_setheading_degree,"2"],[q.Msg.CLOCKWISE+"270"+q.Msg.blockpy_setheading_degree,"3"]]},Yr={init:function(){this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(q.inputs.Align.CENTRE).appendField(new q.FieldBitmap(Yr.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(gr),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},vr=180,Xr={init:function(){this.setColour(vr),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(Xr.OPERATORS),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]]},br={init:function(){this.setColour(vr),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(br.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},yr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(yr.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]]},Vr={init:function(){this.setColour(vr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_RECT).appendField(new q.FieldDropdown(Vr.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_OLED_RECT)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Br={init:function(){this.setColour(vr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new q.FieldDropdown(Br.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Gr={init:function(){this.setColour(vr),this.appendValueInput("VAR").appendField(q.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_DISPLAY_DRAW+q.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new q.FieldDropdown(Gr.STATUS),"OP"),this.jsonInit({message0:q.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_DISPLAY_DRAW+q.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[q.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[q.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Ur=225,wr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(q.Msg.MIXLY_NETWORK_MODE).appendField(new q.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},kr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[q.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=q.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:q.Msg.MIXLY_NETWORK_WIFI_OPEN,False:q.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},xr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Hr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:q.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Wr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Kr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_CONNECT+q.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Jr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[q.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:q.Msg.MIXLY_ESP32_NETWORK_IP,1:q.Msg.MIXLY_ESP32_NETWORK_MASK,2:q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Qr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},qr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[q.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},jr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(q.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(q.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},zr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Zr={init:function(){this.setColour(Ur),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new q.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},$r={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},ta={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},ea={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},ia={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},na={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},sa={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},oa={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},_a={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},ua={init:function(){this.setColour(Ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},pa={init:function(){this.setColour(Ur),this.appendValueInput("DOMAIN").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS_GET).appendField(new q.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ra={init:function(){this.appendValueInput("VAL"),this.setColour(Ur),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(ra.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:q.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:q.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:q.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},aa={init:function(){this.appendValueInput("VAR").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(Ur),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown(aa.METHOD),"DIR"),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:q.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:q.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},la={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(q.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Ia={init:function(){this.setColour(Ur),this.appendDummyInput("").appendField(new q.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},da="#3288dd",Ta={init:function(){this.setColour(da),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS).appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Ma={init:function(){this.setColour(da),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(q.Msg.blockpy_REQUESTS+q.Msg.OLED_STRING),this.appendDummyInput("").appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},ha={init:function(){this.appendValueInput("VAL"),this.setColour(da),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(ha.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[q.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},ma={init:function(){this.setColour(da),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(q.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},Oa={init:function(){this.setColour(da),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(q.Msg.MIXLY_EMQX_SERVER).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(q.Msg.MIXLY_EMQX_PORT).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(q.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(q.Msg.MIXLY_WIFI_USERNAME).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.MIXLY_IOT_PASSWORD).setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ea={init:function(){this.setColour(da),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(q.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},ca={init:function(){this.setColour(da),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(q.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ra={init:function(){this.setColour(da),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(q.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ga={init:function(){this.setColour(da),this.appendDummyInput().appendField("mqtt"+q.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},Ca="#A58C5B",Aa={init:function(){this.setColour(Ca),this.appendValueInput("PIN",Number).appendField(new q.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new q.FieldDropdown(Aa.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]]},La={init:function(){this.setColour(Ca),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},Sa={init:function(){this.setColour(Ca),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},fa=(q.Msg.PS2_TRIANGLE,q.Msg.PS2_CIRCLE,q.Msg.PS2_CROSS,q.Msg.PS2_SQUARE,q.Msg.PS2_L1,q.Msg.PS2_L2,q.Msg.PS2_R1,q.Msg.PS2_R2,q.Msg.PS2_UP,q.Msg.PS2_RIGHT,q.Msg.PS2_DOWN,q.Msg.PS2_LEFT,q.Msg.PS2_SELECT,q.Msg.PS2_START,{init:function(){this.setColour(Ca),this.appendDummyInput("").appendField(q.Msg.PS2_stick).appendField(new q.FieldDropdown(fa.PSSTK),"psstk"),this.setOutput(!0,Number),this.setTooltip("")},PSSTK:[[q.Msg.PS2_RX,"0"],[q.Msg.PS2_RY,"1"],[q.Msg.PS2_LX,"2"],[q.Msg.PS2_LY,"3"]]}),Da={init:function(){this.setColour(Ca),this.appendValueInput("SUB").appendField(q.Msg.PS2),this.appendDummyInput("").appendField(q.Msg.MIXLY_JOYSTICK).appendField(new q.FieldDropdown(Da.PSSTK),"psstk"),this.setOutput(!0,Number),this.setTooltip("")},PSSTK:[[q.Msg.PS2_RX,"RX"],[q.Msg.PS2_RY,"RY"],[q.Msg.PS2_LX,"LX"],[q.Msg.PS2_LY,"LY"]]},Na="#947C54",Pa={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},Fa={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},Ya={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},va={init:function(){this.setColour(Na),this.appendValueInput("btn").appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},Xa={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},ba={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},ya={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},Va={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},Ba={init:function(){this.setColour(Na),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},Ga={init:function(){this.setColour(Na),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},Ua={init:function(){this.setColour(Na),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},wa={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_TOUCH_SLIDE),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOUCH_SLIDE_TOOLTIP)}},ka={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_CHAOSHENGBO),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CHAOSHENGBO)}},xa={init:function(){this.setColour(Na),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETTIME).appendField("myRTC"),this.appendValueInput("hour").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!1),this.setTooltip(q.Msg.MIXLY_RTCSETTIME+q.Msg.MIXLY_MIX2)}},Ha={init:function(){this.setColour(Na),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETDATE).appendField("myRTC"),this.appendValueInput("year").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_DAY),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RTCSETDATE+q.Msg.MIXLY_MIX1)}},Wa={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_CHAOSHENGBO),this.appendValueInput("PIN1",Number).appendField("Trig #").setCheck(Number),this.appendValueInput("PIN2",Number).appendField("Echo #").setCheck(Number),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},Ka={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Ja={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["1","touch1"],["2","touch2"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Qa={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},qa={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_UP,"12"],[q.Msg.MIXLY_DOWN,"14"],[q.Msg.MIXLY_LEFT,"13"],[q.Msg.MIXLY_RIGHT,"15"],["A","32"],["B","33"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ja={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},za={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Za={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},$a={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},tl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_NEAR),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR)}},el={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"left"],[q.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},il={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0)}},nl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},sl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_EXTERN_LIGHT;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},ol={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},_l={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_COLOR_SENSOR+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},ul={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RTC"),this.appendDummyInput().setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCGETTIME),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP+" (year, month, mday, hour, minute, second, weekday, yearday)")}},pl={init:function(){this.setColour(Na),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_RTCGETTIMESTAMP),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIMESTAMP_TOOLTIP)}},rl={init:function(){this.setColour(Na),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.LISTS_TO_TUPLE),this.setInputsInline(!0),this.setOutput(!0,Number)}},al={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RTC"),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_USE_STRING_TUPLE),this.appendDummyInput().appendField(q.Msg.MIXLY_RTCSETTIME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ll={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RTC"),this.appendValueInput("year").setCheck(Number).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).appendField(" "+q.Msg.MIXLY_DAY),this.appendValueInput("hour").setCheck(Number).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).appendField(" "+q.Msg.MIXLY_SECOND),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP)}},Il={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("RTC"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_SETUP).setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP)}},dl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_RTC_GET_TIME_STR),this.setOutput(!0,String),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP)}},Tl={init:function(){this.setColour(Na),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_GPS_TIME+q.Msg.MIXLY_MICROBIT_TYPE_TUPLE).setCheck(),this.appendDummyInput().appendField(q.Msg.A_TO_B+q.Msg.MIXLY_GPS_TIME+q.Msg.LANG_MATH_STRING),this.setOutput(!0,String),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},hl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SOUND),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},ml={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_TEM_HUM+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:q.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:q.Msg.MIXLY_ESP32C3_SENSOR_AHT_HUM_TOOLTIP}[e]}))}},Ol={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0)}},El={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_Altitude+q.Msg.MSG.catSensor+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETPRESSURE,"pressure()"],[q.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[q.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cl={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(q.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(Na),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},gl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Cl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(q.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Al={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("RFID").appendField(new q.FieldDropdown([[q.Msg.MIXLY_RFID_SCAN_OK,"True"],[q.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[q.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_STRENGTH,"strength"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Sl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_GESTURE_ALL).appendField(new q.FieldDropdown([[q.Msg.ME_GO_PITCH,"[0]"],[q.Msg.ME_GO_ROLL,"[1]"],[q.Msg.ME_GO_PITCH+", "+q.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},fl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_shake,"shake"],[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"],[q.Msg.MIXLY_MICROBIT_face_up,"face up"],[q.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=q.Msg.MIXLY_MICROBIT_JS_CURRENT,n=q.Msg.MSG.catSensor,s=q.Msg.MIXLY_MICROBIT_JS_STATE,o=q.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:q.Msg.MIXLY_MICROBIT_shake,up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT,"face up":q.Msg.MIXLY_MICROBIT_face_up,"face down":q.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},Dl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Nl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Pl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Fl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Yl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},vl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},Xl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},bl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH_ALL,"all"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Vl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Bl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Gl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ul={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},wl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},kl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"1"],[q.Msg.TEXT_TRIM_RIGHT,"2"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},xl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},Hl={init:function(){this.setColour(Na),this.appendDummyInput().appendField("acc"+q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_ADXL345_XA,"[0]"],[q.Msg.MIXLY_ADXL345_YA,"[1]"],[q.Msg.MIXLY_ACC_SHAKE,"[2]"],[q.Msg.MIXLY_ADXL345_XA+","+q.Msg.MIXLY_ADXL345_YA+","+q.Msg.MIXLY_ACC_SHAKE,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION)}},Wl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"[0]"],[q.Msg.MIXGO_LEFT_MID,"[1]"],[q.Msg.MIXGO_RIGHT_MID,"[2]"],[q.Msg.TEXT_TRIM_RIGHT,"[3]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},Kl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},Jl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[q.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[q.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ql={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},ql={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXGO_LINE_SENSOR).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_WHITE,"WHITE"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_BLACK,"BLACK"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_RESET,"RESET_TO_FAB"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},zl={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_Board_temperature),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zl={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},$l={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.ANALOG+q.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("mode").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_LIGHT_INTENSITY+"(%)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(new q.FieldDropdown(j.Profile.default.als_num),"PIN"),this.setOutput(!0,Number)}},eI=Pa,iI=Fa,nI=Ya,sI=Ba,oI=il,_I=Ka,uI=Aa,pI=Sa,rI=La,aI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_EXTERN_SOUND),this.setInputsInline(!0),this.setOutput(!0)}},lI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.blockpy_set_of+q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setInputsInline(!0),this.setOutput(!0)}},II={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_LIGHT_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},dI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_GYROSCOPE_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},TI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_Horizontal_inclination,"X"],["y","[1]"],["z","[2]"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},MI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_BE_SHAKED),this.setInputsInline(!0),this.setOutput(!0)}},hI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_BUTTON).appendField(new q.FieldDropdown([["a","a"],["b","b"],["c","c"]]),"btn"),this.setOutput(!0),this.setInputsInline(!0)}},mI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},OI={init:function(){this.setColour(Na),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_INITIAL),this.setOutput(!0),this.setInputsInline(!0)}},EI={init:function(){this.setColour(Na),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ),this.setOutput(!0),this.setInputsInline(!0)}},cI={init:function(){this.setColour(Na),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ+q.Msg.MIXLY_COMMUNICATION_DATA_FROM),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_SERIAL_NUMBER,"serial_number"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},RI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_HELLO_XIAOZHI,"1"],[q.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[q.Msg.MIXLY_THE_FIRST,"3"],[q.Msg.MIXLY_THE_SECOND,"4"],[q.Msg.MIXLY_THE_THIRD,"5"],[q.Msg.MIXLY_THE_FOURTH,"6"],[q.Msg.MIXLY_THE_FIFTH,"7"],[q.Msg.MIXLY_THE_SIXTH,"8"],[q.Msg.MIXLY_THE_SEVENTH,"9"],[q.Msg.MIXLY_THE_EIGHTH,"10"],[q.Msg.MIXLY_THE_NINTH,"11"],[q.Msg.MIXLY_THE_TENTH,"12"],[q.Msg.MIXLY_THE_ELEVENTH,"13"],[q.Msg.MIXLY_THE_TWELFTH,"14"],[q.Msg.MIXLY_THE_13TH,"15"],[q.Msg.MIXLY_THE_14TH,"16"],[q.Msg.MIXLY_THE_15TH,"17"],[q.Msg.MIXLY_THE_16TH,"18"],[q.Msg.MIXLY_THE_17TH,"19"],[q.Msg.MIXLY_THE_18TH,"20"],[q.Msg.MIXLY_THE_19TH,"21"],[q.Msg.MIXLY_THE_20TH,"22"],[q.Msg.MIXLY_Turn_on_the_lights,"23"],[q.Msg.MIXLY_Turn_off_the_lights,"24"],[q.Msg.MIXLY_Turn_up_the_brightness,"25"],[q.Msg.MIXLY_Turn_down_the_brightness,"26"],[q.Msg.MIXLY_Set_it_to_red,"27"],[q.Msg.MIXLY_Set_it_to_orange,"28"],[q.Msg.MIXLY_Set_it_to_yellow,"29"],[q.Msg.MIXLY_Set_it_to_green,"30"],[q.Msg.MIXLY_Set_it_to_cyan,"31"],[q.Msg.MIXLY_Set_it_to_blue,"32"],[q.Msg.MIXLY_Set_it_to_purple,"33"],[q.Msg.MIXLY_Set_it_to_white,"34"],[q.Msg.MIXLY_Turn_on_the_fan,"35"],[q.Msg.MIXLY_Turn_off_the_fan,"36"],[q.Msg.MIXLY_First_gear,"37"],[q.Msg.MIXLY_Wind_speed_second,"38"],[q.Msg.MIXLY_Third_gear,"39"],[q.Msg.MIXLY_Previous,"40"],[q.Msg.MIXLY_Next_page,"41"],[q.Msg.MIXLY_Show_smiley_face,"42"],[q.Msg.MIXLY_Show_crying_face,"43"],[q.Msg.MIXLY_Show_love,"44"],[q.Msg.MIXLY_Close_display,"45"],[q.Msg.MIXLY_Start_execution,"46"],[q.Msg.MIXLY_FORWARD,"47"],[q.Msg.MIXLY_BACKWARD,"48"],[q.Msg.MIXLY_TURNLEFT,"49"],[q.Msg.MIXLY_TURNRIGHT,"50"],[q.Msg.MIXLY_STOP,"51"],[q.Msg.MIXLY_Accelerate,"52"],[q.Msg.MIXLY_retard,"53"],[q.Msg.ROTATION_FORWARD,"54"],[q.Msg.ROTATION_BACKWARD,"55"],[q.Msg.MIXLY_Query_temperature,"56"],[q.Msg.MIXLY_Query_humidity,"57"],[q.Msg.MIXLY_Query_brightness,"58"],[q.Msg.MIXLY_Query_sound,"59"],[q.Msg.MIXLY_Query_time,"60"],[q.Msg.MIXLY_Query_distance,"61"],[q.Msg.MIXLY_Query_pressure,"62"],[q.Msg.MIXLY_Query_key,"63"],[q.Msg.MIXLY_Query_touch,"64"],[q.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(q.Msg.MIXLY_WHETHER+q.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},CI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[q.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[q.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},AI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_MP3_PLAY).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_WIND_SPEED,"154"],[q.Msg.MIXLY_HYETAL,"155"],[q.Msg.MIXLY_TEMPERATURE,"156"],[q.Msg.MIXLY_Humidity,"157"],[q.Msg.MIXLY_Altitude,"158"],[q.Msg.MIXLY_SOUND,"159"],[q.Msg.MIXLY_BRIGHTNESS,"160"],[q.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[q.Msg.MIXLY_SERVO,"162"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[q.Msg.MIXLY_BUTTON2,"164"],[q.Msg.MIXLY_ESP32_TOUCH,"165"],[q.Msg.MIXLY_PAY,"166"],[q.Msg.MIXLY_CARSH_CHANGE,"167"],[q.Msg.MIXLY_COUNTDOWN,"168"],[q.Msg.MIXLY_TIMING,"169"],[q.Msg.MIXLY_AT_THE_MOMENT,"170"],[q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[q.Msg.MIXLY_FORWARD,"172"],[q.Msg.MIXLY_BACKWARD,"173"],[q.Msg.MIXLY_TURNLEFT,"174"],[q.Msg.MIXLY_TURNRIGHT,"175"],[q.Msg.MIXLY_STOP,"176"],[q.Msg.MIXLY_Accelerate,"177"],[q.Msg.MIXLY_retard,"178"],[q.Msg.ROTATION_FORWARD,"179"],[q.Msg.ROTATION_BACKWARD,"180"],[q.Msg.TUPLE_JOIN,"181"],[q.Msg.MIXLY_SHOW,"182"],[q.Msg.MIXLY_LAMPLIGHT,"183"],[q.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(q.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(q.Msg.MIXLY_UNIT).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_YEAR,"117"],[q.Msg.MIXLY_MONTH,"118"],[q.Msg.MIXLY_DAY,"119"],[q.Msg.MIXLY_HOUR,"120"],[q.Msg.MIXLY_MINUTE,"121"],[q.Msg.MIXLY_SECOND,"122"],[q.Msg.MIXLY_WEEK2,"123"],[q.Msg.MIXLY_RMB_UNIT,"124"],[q.Msg.blockpy_setheading_degree,"125"],[q.Msg.MIXLY_GEAR,"126"],[q.Msg.MIXLY_LAYER,"127"],[q.Msg.MIXLY_GRAM,"128"],[q.Msg.MIXLY_METER,"129"],[q.Msg.MIXLY_CENTIMETER,"130"],[q.Msg.MIXLY_MILLIMETER,"131"],[q.Msg.MIXLY_LUMEN,"132"],[q.Msg.MIXLY_DECIBEL,"133"],[q.Msg.MIXLY_hectopascal,"134"],[q.Msg.MIXLY_PERCENT,"135"],[q.Msg.MIXLY_CELSIUS,"136"],[q.Msg.MIXLY_METER_PER_SEC,"137"],[q.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[q.Msg.MIXLY_SUCCESS,"140"],[q.Msg.MIXLY_FAILED,"141"],[q.Msg.MIXLY_WRONG,"142"],[q.Msg.MIXLY_GOOD,"143"],[q.Msg.MIXLY_blockpy_set_add,"144"],[q.Msg.MIXLY_DECREASE,"145"],[q.Msg.COLOUR_RGB_RED,"146"],[q.Msg.COLOUR_RGB_ORANGE,"147"],[q.Msg.COLOUR_YELLOW,"148"],[q.Msg.COLOUR_RGB_GREEN,"149"],[q.Msg.COLOUR_CYAN,"150"],[q.Msg.COLOUR_RGB_BLUE,"151"],[q.Msg.COLOUR_RGB_PURPLE,"152"],[q.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},LI={init:function(){this.setColour(Na),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_SYSTEM+q.Msg.MIXLY_CMD).appendField(new q.FieldDropdown([[q.Msg.MILXY_ENTER_WAKE_UP,"1"],[q.Msg.MIXLY_INCREASE_VOLUME,"202"],[q.Msg.MIXLY_REDUCE_VOLUME,"203"],[q.Msg.MIXLY_MAX_VOLUME,"204"],[q.Msg.MIXLY_MINIMUM,"205"],[q.Msg.MIXLY_OPEN_RESPONSE,"206"],[q.Msg.MIXLY_CLOSE_RESPONSE,"207"],[q.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SI={init:function(){this.setColour(Na),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_THE_COPROCESSOR_VERSION),this.setOutput(!0),this.setInputsInline(!0)}},fI=40,DI={init:function(){this.setColour(fI),this.appendValueInput("PIN",Number).appendField(new q.FieldDropdown([["DHT11","dht11"],["DHT22","dht22"]]),"TYPE").appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new q.FieldDropdown(DI.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"relative_humidity"],[q.Msg.MIXLY_DHT11_T_H,"tempandhum"]]};const NI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = network.WLAN(network."+this.getFieldValue("mode")+"_IF);\n"},PI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect("+e.valueToCode(this,"id",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"password",e.ORDER_ATOMIC)+")\n"},FI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".isconnected()",e.ORDER_ATOMIC]},YI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".ifconfig()["+this.getFieldValue("mode")+"]",e.ORDER_ATOMIC]},vI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".disconnect()\n"},XI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active("+this.getFieldValue("op")+")\n"},bI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active()",e.ORDER_ATOMIC]},yI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config('"+this.getFieldValue("op")+"')",e.ORDER_ATOMIC]},VI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config(essid = "+e.valueToCode(this,"essid",e.ORDER_ATOMIC)+", channel="+e.valueToCode(this,"channel",e.ORDER_ATOMIC)+")\n"},BI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".scan()",e.ORDER_ATOMIC]},GI=function(t,e){e.definitions_["import_server_*"]="from server import *";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return"if not "+i+".isconnected():\n connectWifi(SSID, PASSWORD)\nip="+i+".ifconfig()[0]\nprint(ip)\ntime.sleep(1)\nDATA=listenData()\n"},UI=function(t,e){e.definitions_.import_network="import network",e.definitions_.import_socket="import socket";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"UDP"==n?n="socket.SOCK_DGRAM":"TCP"==n&&(n="socket.SOCK_STREAM"),i+" = socket.socket(socket.AF_INET, "+n+")\n"},wI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".bind("+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},kI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect(socket.getaddrinfo"+e.valueToCode(this,"address",e.ORDER_ATOMIC)+"[0][-1])\n"},xI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".listen("+e.valueToCode(this,"queue",e.ORDER_ATOMIC)+")\n"},HI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".accept()",e.ORDER_ASSIGNMENT]},WI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recv("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},KI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".send("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+")\n"},JI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recvfrom("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},QI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".sendto("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},qI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".close()\n"},jI=function(t,e){return e.definitions_.import_requests="import requests",e.variableDB_.getName(this.getFieldValue("VAR"),q.Variables.NAME_TYPE)+"= requests.get("+e.valueToCode(this,"DOMAIN",e.ORDER_ATOMIC)+")\n"},zI=function(t,e){return e.definitions_.import_requests="import requests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},ZI=function(t,e){return e.definitions_.import_requests="import requests","requests."+this.getFieldValue("DIR")+"("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")\n"},$I=function(t,e){return e.definitions_.import_ntptime="import ntptime",["ntptime.time(host="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},td=function(t,e){return["'"+this.getFieldValue("op")+"'",e.ORDER_ATOMIC]},ed=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},id=function(t,e){return e.definitions_.import_urequests="import urequests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},nd=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+", data="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sd=function(t,e){return e.definitions_.import_educore_wifi="from educore import wifi","wifi.connect(ssid="+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", timeout="+e.valueToCode(this,"TIMEOUT",e.ORDER_ATOMIC)+")\n"},od=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.connect(server="+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", port="+e.valueToCode(this,"PORT",e.ORDER_ATOMIC)+", client_id="+e.valueToCode(this,"CLIENT_ID",e.ORDER_ATOMIC)+", user="+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},_d=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC);return["mqttclient."+e.valueToCode(this,"MESSAGE",e.ORDER_ATOMIC)+"("+i+")",e.ORDER_ATOMIC]},ud=function(t,e){var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC),n=e.valueToCode(this,"METHOD",e.ORDER_ATOMIC);return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.received(topic="+i+", callback="+n+")\n"},pd=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqtt_client.publish(topic="+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+", content="+e.valueToCode(this,"MSG",e.ORDER_ATOMIC)+")\n"},rd=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";return["mqtt_client.connescted()",e.ORDER_ATOMIC]},ad=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".is_pressed()",e.ORDER_ATOMIC]},ld=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".was_pressed()",e.ORDER_ATOMIC]},Id=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},dd=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=e.valueToCode(this,"btn",e.ORDER_ATOMIC),s=this.getFieldValue("mode");return i+"."+n+".irq(handler="+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger="+s+")\n"},Td=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.is_pressed()",e.ORDER_ATOMIC]},Md=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.was_pressed()",e.ORDER_ATOMIC]},hd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},md=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=this.getFieldValue("mode");return i+".button.irq(handler="+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger="+n+")\n"},Od=function(t,e){return e.definitions_.import_sonar="import sonar",["sonar.Sonar("+e.valueToCode(this,"PIN1",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN2",e.ORDER_ASSIGNMENT)+").checkdist()",e.ORDER_ATOMIC]},Ed=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},cd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Rd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},gd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Cd=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Ad=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Ld=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Sd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps_nl()",e.ORDER_ATOMIC]},fd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".infrared_"+this.getFieldValue("direction")+"()",e.ORDER_ATOMIC]},Dd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps()",e.ORDER_ATOMIC]},Nd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".ps_nl()",e.ORDER_ATOMIC]},Pd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als()",e.ORDER_ATOMIC]},Fd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.color()",e.ORDER_ATOMIC]},Yd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".als_vis()",e.ORDER_ATOMIC]},vd=function(t,e){return e.definitions_.import_ds18x20x="import ds18x20x",["ds18x20x.get_ds18x20_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Xd=function(t,e){return e.definitions_.import_lm35="import lm35",["lm35.get_LM35_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},bd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_brightness()",e.ORDER_ATOMIC];if("mixgo_ce"==i)return e.definitions_.import_mixgo_ce="import mixgo_ce",["mixgo_ce.get_brightness()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_light="from mpython import onboard_light",["onboard_light.brightness()",e.ORDER_ATOMIC];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als_vis()",e.ORDER_ATOMIC]},yd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixbot"==i){e.definitions_["import_"+i+"_sound"]="from "+i+" import sound";var n="sound.loudness()"}else if("mixgo_zero"==i){e.definitions_.import_mixgo_zero_voice_sound_level="from mixgo_zero_voice import sound_level";n="sound_level()"}else if("mixgo_nova"==i){e.definitions_.import_mixgo_nova_voice_sound_level="from mixgo_nova_voice import sound_level";n="sound_level()"}else{if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_soundlevel()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_sound="from mpython import onboard_sound",["onboard_sound.soundlevel()",e.ORDER_ATOMIC];if("mixgo_mini"==i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";n="onboard_bot.soundlevel()"}else{e.definitions_["import_"+i+"_onboard_sound"]="from "+i+" import onboard_sound";n="onboard_sound.read()"}}return[n,e.ORDER_ATOMIC]},Vd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_spl06_001="import spl06_001",e.definitions_.import_onboard_bps="onboard_bps = spl06_001.SPL06(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_bps"]="from "+i+" import onboard_bps",["onboard_bps."+n,e.ORDER_ATOMIC]},Bd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_nova"==i||"mixgo_zero"==i?e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths":"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_shtc3="import shtc3",e.definitions_.import_onboard_ths="onboard_ths = shtc3.SHTC3(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths",["onboard_ths."+n+"()",e.ORDER_ATOMIC]},Gd=function(t,e){return e.definitions_.import_feiyi_onboard_acc="from feiyi import onboard_acc",["onboard_acc.temperature()",e.ORDER_ATOMIC]},Ud=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=i,s="onboard_rfid";return"mixgo_mini"===i?(n="mini_gx",s="ext_rfid"):"mixgo_me"===i&&(n="me_g1",s="ext_rc522"),e.definitions_[`import_${n}_${s}`]=`from ${n} import ${s}`,[`${s}.read_card(0, x="id")`,e.ORDER_ATOMIC]},wd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=i,o="onboard_rfid";return"mixgo_mini"===i?(s="mini_gx",o="ext_rfid"):"mixgo_me"===i&&(s="me_g1",o="ext_rc522"),e.definitions_[`import_${s}_${o}`]=`from ${s} import ${o}`,[`${o}.read_card(${n}, x="content")`,e.ORDER_ATOMIC]},kd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC),o=i,_="onboard_rfid";return"mixgo_mini"===i?(o="mini_gx",_="ext_rfid"):"mixgo_me"===i&&(o="me_g1",_="ext_rc522"),e.definitions_[`import_${o}_${_}`]=`from ${o} import ${_}`,`${_}.write_card(${s}, ${n})`},xd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC),o=i,_="onboard_rfid";return"mixgo_mini"===i?(o="mini_gx",_="ext_rfid"):"mixgo_me"===i&&(o="me_g1",_="ext_rc522"),e.definitions_[`import_${o}_${_}`]=`from ${o} import ${_}`,[`${_}.write_card(${s}, ${n})`,e.ORDER_ATOMIC]},Hd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key"),s=i,o="onboard_rfid";return"mixgo_mini"===i?(s="mini_gx",o="ext_rfid"):"mixgo_me"===i&&(s="me_g1",o="ext_rc522"),e.definitions_[`import_${s}_${o}`]=`from ${s} import ${o}`,[`${o}.scan_card() == ${n}`,e.ORDER_ATOMIC]},Wd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("strength"==n){if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";var s="acc_gyr.strength()"}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.strength()"}return[s,e.ORDER_ATOMIC]}if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";s="acc_gyr.accelerometer()"+n}else if("mpython"==i){e.definitions_.import_mpython_motion="from mpython import motion";s="motion.accelerometer()"+n}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.acceleration()"+n}return[s,e.ORDER_ATOMIC]},Kd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc",["onboard_acc.eulerangles()"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},Jd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+'.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},Qd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},qd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"button",e.ORDER_ATOMIC);if("mixgo_mini"===i||"mixgo_sant"===i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var s="onboard_bot.touched("+n+")"}else{e.definitions_["import_"+i]="import "+i;s=i+".touched("+n+")"}return[s,e.ORDER_ATOMIC]},jd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"===i||"mixgo_sant"===i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var n="onboard_bot.touch_slide()"}else{e.definitions_["import_"+i]="import "+i;n=i+".touch_slide(3, 4)"}return[n,e.ORDER_ATOMIC]},zd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},Zd=function(t,e){return e.definitions_.import_mpython="import mpython",["mpython.touch_"+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},$d=function(t,e){e.definitions_.import_adxl345="import adxl345";var i,n=this.getFieldValue("key"),s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"x"==n?i=s+".readX()":"y"==n?i=s+".readY()":"z"==n?i=s+".readZ()":"values"==n&&(i=s+".readXYZ()"),[i,e.ORDER_ATOMIC]},tT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},eT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},iT=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".calibrate()\n"},nT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==i&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[i+".mpu9250_get_temperature()",e.ORDER_ATOMIC]},sT=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);"compass"==i&&(e.definitions_.import_mixgo_compass="from mixgo import compass");var n,s=this.getFieldValue("compass");return"strength"==s?n=i+".get_field_strength()":"heading"==s&&(n=i+".heading()"),[n,e.ORDER_ATOMIC]},oT=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".reset_calibrate()\n"},_T=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",['onboard_mpu.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},uT=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},pT=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},rT=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},aT=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.calibrate()\n"},lT=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_temperature()",e.ORDER_ATOMIC]},IT=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass";var i,n=this.getFieldValue("compass");return"strength"==n?i="onboard_compass.get_field_strength()":"heading"==n&&(i="onboard_compass.heading()"),[i,e.ORDER_ATOMIC]},dT=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.reset_calibrate()\n"},TT=function(t,e){return e.definitions_.import_rtctime="import rtctime","rtctime.settime(("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+", 0, 0))\n"},MT=function(t,e){var i=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_rtctime="import rtctime","rtctime.settime("+i+")\n"},hT=function(t,e){e.definitions_.import_time="import time";return["time.localtime()",e.ORDER_ATOMIC]},mT=function(t,e){return e.definitions_.import_time="import time",["time.mktime("+e.valueToCode(this,"LIST",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OT=function(t,e){return e.definitions_.import_time="import time",["time.localtime("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ET=function(t,e){e.definitions_.import_rtctime="import rtctime";return["rtctime.strtime()",e.ORDER_ATOMIC]},cT=function(t,e){return e.definitions_.import_rtctime="import rtctime",["rtctime.strtime("+e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},RT=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==n)if(e.definitions_.import_mpython_magnetic="from mpython import magnetic","all"==i)var s="magnetic.getstrength()";else s="magnetic.getdata()"+i;else if("mixgo_mini"==n)if(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;else if(e.definitions_["import_"+n+"_onboard_mgs"]="from "+n+" import onboard_mgs","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;return[s,e.ORDER_ATOMIC]},gT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_.import_mpython_magnetic="from mpython import magnetic"}else"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return["onboard_mgs.getangle()",e.ORDER_ATOMIC]},CT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return"onboard_mgs.calibrate()\n"},AT=function(t,e){if("mixgo_mini"==j.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mixgo_mini_onboard_temperature="from mixgo_mini import onboard_temperature";var i="onboard_temperature()"}else{e.definitions_.import_mixgo_me_onboard_acc="from mixgo_me import onboard_acc";i="onboard_acc.temperature()"}return[i,e.ORDER_ATOMIC]},LT=function(t,e){e.definitions_.import_mixgo_ce="import mixgo_ce";return["mixgo_ce.get_temperature()",e.ORDER_ATOMIC]},ST=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mpython_motion="from mpython import motion",["motion.gyroscope()"+i,e.ORDER_ATOMIC]},fT=function(t,e){return e.definitions_.import_mpython_motion="from mpython import motion",["motion.temperature()",e.ORDER_ATOMIC]},DT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_adc"+n]="from "+i+" import adc"+n,["adc"+n+".read()",e.ORDER_ATOMIC]},NT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return"feiyi"==i?(e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_bat()",e.ORDER_ATOMIC]):(e.definitions_["import_"+i+"_battery"]="from "+i+" import battery",["battery.voltage()",e.ORDER_ATOMIC])},PT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_rm_e1_gyro="from rm_e1 import gyro",["gyro.acceleration()"+i,e.ORDER_ATOMIC]},FT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.patrol()"+i,e.ORDER_ATOMIC]},YT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.obstacle()"+i,e.ORDER_ATOMIC]},vT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info","onboard_info.ir_mode(onboard_info."+i+")\n"},XT=function(t,e){e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info";return["onboard_info.read_bat()",e.ORDER_ATOMIC]},bT=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol","patrol.correct(patrol.CORRECTING_"+i+")\n"},yT=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol",["patrol.getdata()"+i,e.ORDER_ATOMIC]},VT=function(t,e){e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr";return["acc_gyr.temperature()",e.ORDER_ATOMIC]},BT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr",["acc_gyr.gyroscope()"+i,e.ORDER_ATOMIC]},GT=function(t,e){return e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_als("+e.valueToCode(this,"mode",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},UT=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},wT=ad,kT=ld,xT=Id,HT=zd,WT=Dd,KT=bd,JT=KT,QT=function(t,e){return e.definitions_.import_dhtx="import dhtx",["dhtx."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")."+this.getFieldValue("WHAT")+"()",e.ORDER_ATOMIC]},qT=function(t,e){e.definitions_.import_educore_sound="from educore import sound";return["sound()",e.ORDER_ATOMIC]},jT=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},zT=function(t,e){e.definitions_.import_educore_light="from educore import light";return["light()",e.ORDER_ATOMIC]},ZT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer";return["accelerometer()",e.ORDER_ATOMIC]},$T=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},tM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shake()",e.ORDER_ATOMIC]},eM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",["button(button."+this.getFieldValue("btn")+")",e.ORDER_ATOMIC]},iM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".status()",e.ORDER_ATOMIC]},nM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",["rfid("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scanning()",e.ORDER_ATOMIC]},oM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},_M=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mini_sant"==i){e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n="onboard_asr.cmd_id()\n"}else if("mixgo_mini"==i){e.definitions_.import_mini_gx_ext_asr="from mini_gx import ext_asr";n="ext_asr.cmd_id()\n"}return n},uM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mini_sant"==i){e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n="onboard_asr.result("+this.getFieldValue("cmd")+")"}else if("mixgo_mini"==i){e.definitions_.import_mini_gx_ext_asr="from mini_gx import ext_asr";n="ext_asr.result("+this.getFieldValue("cmd")+")"}return[n,e.ORDER_ATOMIC]},pM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mini_sant"==i)if(e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr","status1"==(s=this.getFieldValue("key")))var n="onboard_asr.status()[0]";else if("status2"==s)n="onboard_asr.status()[1]";else n="onboard_asr."+s+"()";else if("mixgo_mini"==i){var s;if(e.definitions_.import_mini_gx_ext_asr="from mini_gx import ext_asr","status1"==(s=this.getFieldValue("key")))n="ext_asr.status()[0]";else if("status2"==s)n="ext_asr.status()[1]";else n="ext_asr."+s+"()"}return[n,e.ORDER_ATOMIC]},rM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mini_sant"==i){e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC),s="onboard_asr.play("+this.getFieldValue("star")+", "+n+", "+this.getFieldValue("end")+")\n"}else if("mixgo_mini"==i){e.definitions_.import_mini_gx_ext_asr="from mini_gx import ext_asr";n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC),s="ext_asr.play("+this.getFieldValue("star")+", "+n+", "+this.getFieldValue("end")+")\n"}return s},aM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mini_sant"==i){e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n="onboard_asr.sys_cmd("+this.getFieldValue("cmd")+")\n"}else if("mixgo_mini"==i){e.definitions_.import_mini_gx_ext_asr="from mini_gx import ext_asr";n="ext_asr.sys_cmd("+this.getFieldValue("cmd")+")\n"}return n},lM=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";return["onboard_bot.version()",e.ORDER_ATOMIC]},IM={microbit:{description:"microbit_python",digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],pwm:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],analog:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P10","10"]],interrupt:[["P0","0"],["P1","1"],["P2","2"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","Image.HEART"],["HEART_SMALL","Image.HEART_SMALL"],["HAPPY","Image.HAPPY"],["SMILE","Image.SMILE"],["SAD","Image.SAD"],["CONFUSED","Image.CONFUSED"],["ANGRY","Image.ANGRY"],["ASLEEP","Image.ASLEEP"],["SURPRISED","Image.SURPRISED"],["SILLY","Image.SILLY"],["FABULOUS","Image.FABULOUS"],["MEH","Image.MEH"],["YES","Image.YES"],["NO","Image.NO"],["CLOCK12","Image.CLOCK12"],["CLOCK11","Image.CLOCK11"],["CLOCK10","Image.CLOCK10"],["CLOCK9","Image.CLOCK9"],["CLOCK8","Image.CLOCK8"],["CLOCK7","Image.CLOCK7"],["CLOCK6","Image.CLOCK6"],["CLOCK5","Image.CLOCK5"],["CLOCK4","Image.CLOCK4"],["CLOCK3","Image.CLOCK3"],["CLOCK2","Image.CLOCK2"],["CLOCK1","Image.CLOCK1"],["ARROW_N","Image.ARROW_N"],["ARROW_NE","Image.ARROW_NE"],["ARROW_E","Image.ARROW_E"],["ARROW_SE","Image.ARROW_SE"],["ARROW_S","Image.ARROW_S"],["ARROW_SW","Image.ARROW_SW"],["ARROW_W","Image.ARROW_W"],["ARROW_NW","Image.ARROW_NW"],["TRIANGLE","Image.TRIANGLE"],["TRIANGLE_LEFT","Image.TRIANGLE_LEFT"],["CHESSBOARD","Image.CHESSBOARD"],["DIAMOND","Image.DIAMOND"],["DIAMOND_SMALL","Image.DIAMOND_SMALL"],["SQUARE","Image.SQUARE"],["SQUARE_SMALL","Image.SQUARE_SMALL"],["RABBIT","Image.RABBIT"],["COW","Image.COW"],["MUSIC_CROTCHET","Image.MUSIC_CROTCHET"],["MUSIC_QUAVER","Image.MUSIC_QUAVER"],["MUSIC_QUAVERS","Image.MUSIC_QUAVERS"],["PITCHFORK","Image.PITCHFORK"],["XMAS","Image.XMAS"],["PACMAN","Image.PACMAN"],["TARGET","Image.TARGET"],["TSHIRT","Image.TSHIRT"],["ROLLERSKATE","Image.ROLLERSKATE"],["DUCK","Image.DUCK"],["HOUSE","Image.HOUSE"],["TORTOISE","Image.TORTOISE"],["BUTTERFLY","Image.BUTTERFLY"],["STICKFIGURE","Image.STICKFIGURE"],["GHOST","Image.GHOST"],["SWORD","Image.SWORD"],["GIRAFFE","Image.GIRAFFE"],["SKULL","Image.SKULL"],["UMBRELLA","Image.UMBRELLA"],["SNAKE","Image.SNAKE"],["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],imglist:[["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["P0","0"],["P1","1"],["P2","2"],["P8","8"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]]}};IM["BBC micro:bit"]=IM.microbit;const dM=IM,TM=100,MM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_built_in_melody1)}},hM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",tooltip:"Play one of the built-in melodies. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody_easy,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"}]})}},mM={init:function(){this.setColour(TM),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.appendValueInput("duration").setCheck(Number).appendField(q.Msg.MIXLY_DURATION),this.appendDummyInput("").appendField(q.Msg.MIXLY_MILLIS).appendField(q.Msg.MIXLY_MICROBIT_WAIT),this.appendDummyInput("").appendField(new q.FieldCheckbox(!0),"wait"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},OM={init:function(){this.setColour(TM),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},EM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_notes1)}},cM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",tooltip:"Play a list of notes expressed in the special music language. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{type:"input_dummy"},{type:"input_dummy"}]})}},RM={init:function(){this.jsonInit({colour:TM,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",message0:q.Msg.MIXLY_MICROBIT_Reset_music}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_music)}},gM={init:function(){this.setColour(TM),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_NOTONE).appendField(q.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_NOTONE)}},CM={init:function(){this.jsonInit({colour:TM,output:"Array",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",message0:q.Msg.MIXLY_MICROBIT_Get_current_tempo}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Get_current_tempo)}},AM={init:function(){this.setColour(TM),this.appendValueInput("TICKS").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(q.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO1)}},LM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,"say"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,"sing"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE,"pronounce"]]),"MODE"),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_pitch),this.appendValueInput("speed").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.appendValueInput("mouth").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_mouth),this.appendValueInput("throat").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_throat),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH,n=q.Msg.MIXLY_MICROBIT_TYPE_STRING;return i+{say:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,sing:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,pronounce:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE}[e]+n}))}},SM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},DM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},NM={init:function(){this.setColour(TM),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MICROBIT_SPEECH_translation),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MICROBIT_SPEECH_translation)}},PM={init:function(){this.setColour(TM),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_SERVO).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERVO_MOVE)}},FM={init:function(){this.appendValueInput("speed").setCheck(null).appendField(q.Msg.MIXLY_MOTOR).appendField(new q.FieldDropdown([["M1","1"],["M2","2"],["M3","3"],["M4","4"]]),"Motor").appendField(q.Msg.MIXLY_SPEED),this.appendDummyInput().appendField(new q.FieldDropdown([["Forward","1*"],["Reverse","-1*"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(TM),this.setTooltip(""),this.setHelpUrl("")}},YM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RGB_PIN_COUNT)}},vM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_RGB_NUM_R_G_B)}},XM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},bM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_ESP32_MUSIC_WRI)}},yM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+" "+q.Msg.QJ00X_MP3),this.appendValueInput("RX").setAlign(q.inputs.Align.RIGHT).appendField("TX#"),this.appendValueInput("TX").setAlign(q.inputs.Align.RIGHT).appendField("RX#"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var VM=[[q.Msg.MIXLY_MP3_PLAY,"play"],[q.Msg.MIXLY_MP3_PAUSE,"pause"],[q.Msg.MIXLY_MP3_NEXT,"next_track"],[q.Msg.MIXLY_MP3_PREV,"prev_track"],[q.Msg.MIXLY_MP3_VOL_UP,"inc_vol"],[q.Msg.MIXLY_MP3_VOL_DOWN,"dec_vol"]];const BM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(VM),"CONTROL_TYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var GM=[[q.Msg.MIXLY_MP3_LOOP_ALL,"0"],[q.Msg.MIXLY_MP3_LOOP_FOLDER,"1"],[q.Msg.MIXLY_MP3_LOOP_ONE,"2"],[q.Msg.MIXLY_MP3_LOOP_RAM,"3"]];const UM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_LOOP_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(GM),"LOOP_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var wM=[[q.Msg.MIXLY_MP3_EQ_NORMAL,"0"],[q.Msg.MIXLY_MP3_EQ_POP,"1"],[q.Msg.MIXLY_MP3_EQ_ROCK,"2"],[q.Msg.MIXLY_MP3_EQ_JAZZ,"3"],[q.Msg.MIXLY_MP3_EQ_CLASSIC,"4"],[q.Msg.MIXLY_MP3_EQ_BASS,"5"]];const kM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_EQ_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(wM),"EQ_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},xM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_VOL),this.appendValueInput("vol",Number).appendField(q.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},HM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},WM={init:function(){this.setColour(TM),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("FOLDER",Number).appendField(q.Msg.DFPLAYER_MINI_FOLDER).setCheck(Number),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},KM=140,JM={init:function(){this.setColour(225),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"on"],[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"off"],[q.Msg.HTML_RESET,"reset"]]),"type").appendField(q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type"),i=q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI;return{on:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,off:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,reset:q.Blockly.Msg.HTML_RESET}[e]+i}))}},QM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",tooltip:"Turn on the radio. This needs to be explicitly called since the radio draws power and takes up memory that you may otherwise need.",message0:q.Msg.MIXLY_MICROBIT_Switch_on_radio})}},qM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",tooltip:"Turn off the radio, thus saving power and memory.",message0:q.Msg.MIXLY_MICROBIT_Switch_off_radio})}},jM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",tooltip:q.Msg.MIXLY_MICROBIT_Configure_radio1,message0:q.Msg.MIXLY_MICROBIT_Configure_radio,args0:[{min:4,value:32,type:"input_value",max:251,name:"length"},{type:"input_dummy"},{min:1,value:3,type:"input_value",max:32,name:"queue"},{type:"input_dummy"},{min:0,value:7,type:"input_value",max:100,name:"channel"},{type:"input_dummy"},{name:"power",type:"input_value"},{type:"input_dummy"},{name:"address",type:"input_value"},{type:"input_dummy"},{name:"group",type:"input_value"},{type:"input_dummy"},{name:"data_rate",type:"input_value"}]})}},zM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",tooltip:"Reset the radio to default settings.",message0:q.Msg.MIXLY_MICROBIT_Reset_radio})}},ZM={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",tooltip:"Broadcast a text message.",message0:q.Msg.MIXLY_MICROBIT_Send_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},$M={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RADIO_SEND),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"send"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"send_bytes"]]),"type"),this.appendValueInput("data"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Send_message1)}},th={init:function(){this.jsonInit({colour:225,output:"String",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",tooltip:q.Msg.MIXLY_MICROBIT_Receive_message,message0:q.Msg.MIXLY_MICROBIT_Receive_message})}},eh={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Receive_message),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"receive"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"receive_bytes"],[q.Msg.MIXLY_MICROBIT_MSG_FULL,"receive_full"]]),"type"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Receive_message)}},ih={init:function(){this.setColour(KM),this.appendValueInput("RX",Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_SETUP).appendField("sda").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("scl").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField("频率").setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nh={init:function(){this.setColour(KM),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_READ_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.LANG_MATH_BYTE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},sh={init:function(){this.setColour(KM),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},oh={init:function(){this.jsonInit({colour:KM,nextStatement:null,previousStatement:null,message0:q.Msg.MIXLY_MICROBIT_SPI_INIT,args0:[{value:1e6,type:"field_number",name:"freq"},{type:"input_dummy"},{value:8,type:"field_number",name:"bits"},{type:"input_dummy"},{value:0,type:"field_number",name:"mode"},{type:"input_dummy"},{name:"mosi",options:j.Profile.default.digital,type:"field_dropdown"},{name:"miso",options:j.Profile.default.digital,type:"field_dropdown"},{name:"sck",options:j.Profile.default.digital,type:"field_dropdown"}]}),this.setFieldValue("15","mosi"),this.setFieldValue("14","miso"),this.setFieldValue("13","sck")}},_h={init:function(){this.setColour(KM),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE)}},uh=180,ph={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:q.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Clear_display)}},rh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(q.Msg.MIXLY_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS1)}},ah={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("brightness").setCheck(Number).appendField(q.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS2)}},lh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck([String,"microbit_image"]).appendField(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING)}},Ih={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("delay").setCheck(null).appendField(q.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Th={init:function(){this.setColour(uh),this.appendValueInput("PIN",String).setCheck("microbit_image").appendField(q.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.OLED_BITMAP)}},Mh={init:function(){this.jsonInit({colour:uh,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:q.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}]})}},hh={init:function(){this.jsonInit({colour:uh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:q.Msg.MIXLY_MICROBIT_Animate_images_or_string,args0:[{check:[String,"List"],type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+q.Msg.MIXLY_MICROBIT_Animate_images1)}},mh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.jsonInit({colour:uh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:q.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING)}},Oh={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:q.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Eh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(q.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=q.Msg.MIXLY_MICROBIT_monitor;return{on:q.Msg.MIXLY_MICROBIT_Turn_on_display,off:q.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},ch={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:q.Msg.MIXLY_MICROBIT_Turn_off_display})}},Rh={init:function(){this.jsonInit({colour:uh,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:q.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Display_is_on1)}},gh={init:function(){this.jsonInit({colour:uh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}],output:["microbit_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:q.Msg.MIXLY_MICROBIT_Built_in_image1,message0:q.Msg.MIXLY_MICROBIT_Built_in_image})}},Ch={init:function(){this.jsonInit({colour:uh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.copy",message0:q.Msg.MIXLY_MICROBIT_Copy_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Copy_image1)}},Ah={init:function(){this.jsonInit({colour:uh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.invert",message0:q.Msg.MIXLY_MICROBIT_Invert_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Invert_image1)}},Lh={init:function(){this.jsonInit({colour:uh,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:q.Msg.MIXLY_MICROBIT_Create_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)}},Sh={init:function(){var t=[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]];this.setColour(uh),this.setOutput(!0,"microbit_image"),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["microbit_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[t]+s}))}},fh={init:function(){var t=[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(uh),this.setOutput(!0,"microbit_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Dh={init:function(){this.setColour(uh),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},Nh={init:function(){this.setColour(uh),this.appendValueInput("device").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_SETUP).appendField(q.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SETUP+q.Msg.MIXLY_DF_LCD+q.Msg.MIXLY_LCD_ADDRESS)}},Ph={init:function(){this.setColour(uh),this.appendValueInput("row",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},Fh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ON,"on()"],[q.Msg.MIXLY_OFF,"off()"],[q.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(False)"],[q.Msg.MIXLY_LCD_BACKLIGHT,"backlight(True)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_DF_LCD+{"on()":q.Msg.MIXLY_ON,"off()":q.Msg.MIXLY_OFF,"clear()":q.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":q.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Yh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD+" OLED "+q.Msg.OLEDDISPLAY),this.appendValueInput("Text_line1","String").setAlign(q.inputs.Align.RIGHT).appendField("(128*64) "+q.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(uh),this.setTooltip(q.Msg.MIXLY_DF_LCD+q.Msg.OLEDDISPLAY+q.Msg.MIXLY_MICROBIT_TYPE_STRING)}},vh={init:function(){var t=[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]];this.setColour(uh),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("microbit_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[t]}))}},Xh={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:q.Msg.MIXLY_LCD_STAT_CLEAR,1:q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return q.Msg.MIXLY_DF_LCD+i[e]}))}},bh="#777777",yh={init:function(){this.setColour(bh),this.appendDummyInput("").appendField("from ").appendField(new q.FieldTextInput("microbit"),"path").appendField(" import ").appendField(new q.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vh={init:function(){this.setColour(bh),this.appendDummyInput("").appendField("import ").appendField(new q.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bh={init:function(){this.setColour(bh),this.appendDummyInput("").appendField(new q.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;e 0:\n pre = bin(value).count("1")\n # find first non full high value afterwards\n try:\n k, value = next((ind, v)\n for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n post = bin(value).count("1") if k else 0\n k = k + i\n except StopIteration:\n i = -1\n dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n return dist\n\n def distance_cm(self):\n return self.distance_mm() / 10.0\n\nsonar=HCSR04()\n\n',["sonar.distance_cm()",e.ORDER_ATOMIC]},Nc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *"},Pc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *";var i=this.getFieldValue("TIME_TYPE");switch(i){case"Year":case"Month":case"Day":case"Hour":case"Minute":case"Second":case"Week":return["ds."+i+"()",e.ORDER_ASSIGNMENT];case"Mix1":return["ds.get_date()",e.ORDER_ASSIGNMENT];case"Mix2":return["ds.get_time()",e.ORDER_ASSIGNMENT]}},Fc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_time("+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+")\n"},Yc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_date("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+")\n"},vc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.clear_calibration()\n"},Xc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["display.read_light_level()",e.ORDER_ATOMIC]},bc=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="from ultrasonic import *","sonar = HCSR04(tpin=pin"+i+", epin=pin"+n+")\n"},yc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_TCS="from TCS import *",["tcs.getRawRGBData("+this.getFieldValue("TCS34725_COLOR")+")",e.ORDER_ATOMIC]},Vc=function(t,e){var i=this.getFieldValue("PIN"),n=e.valueToCode(this,"NominalResistance",e.ORDER_ATOMIC),s=e.valueToCode(this,"betaCoefficient",e.ORDER_ATOMIC),o=e.valueToCode(this,"seriesResistor",e.ORDER_ATOMIC);return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ntc="import ntc",["ntc.read(pin"+i+", "+n+", "+s+", "+o+")",e.ORDER_ATOMIC]},Bc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+"))\n"},Gc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+")+'\\r\\n')\n"},Uc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str(hex("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||"0")+")) + '\\r\\n')\n"},wc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"char_marker",e.ORDER_ATOMIC)||";",n=e.statementToCode(this,"DO");e.definitions_["func_serial_receive_data_event_"+i.charCodeAt(1)]="serial.onDataReceived("+i+", () => {\n"+n+"}\n"},kc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.any()",e.ORDER_ATOMIC]},xc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.read()",e.ORDER_ATOMIC]},Hc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.readline()",e.ORDER_ATOMIC]},Wc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["serial.readUntil("+this.getFieldValue("char_marker")+")",e.ORDER_ATOMIC]},Kc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"RX",e.ORDER_ATOMIC),n=e.valueToCode(this,"TX",e.ORDER_ATOMIC);return isNaN(parseInt(i))||(i="pin"+i),isNaN(parseInt(n))||(n="pin"+n),"uart.init(rx="+i+", tx="+n+", baudrate="+this.getFieldValue("baudrate")+")\n"},Jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.init(baudrate="+this.getFieldValue("baudrate")+")\n"},Qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["input("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")",e.ORDER_ATOMIC]},qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")\n"},jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+',end ="")\n'},zc=function(t,e){return"control.inBackground(() => {\n"+e.statementToCode(this,"do")+"})\n"},Zc=function(){return"control.reset()\n"},$c=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},tR=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},eR=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},iR=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},nR=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},sR=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},oR=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},_R=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},uR=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},pR=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","sleep("+(e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000")+")\n"},rR=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},aR=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["running_time()",e.ORDER_ATOMIC]},lR=function(){return"while True:\n pass\n"},IR=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","reset()\n"},dR=function(t,e){return e.definitions_.import_os="import os",["os.uname()",e.ORDER_ATOMIC]};Object.assign(q.Variables,Z),Object.assign(q.Procedures,ar),q.Python=lr,q.generator=lr,j.Profile.default={},Object.assign(j.Profile,dM),Object.assign(j.Profile.default,dM.microbit),Object.assign(q.Blocks,e,i,n,s,o,_,u,p,r,a,l,I,d,f,D,F,Y,v,X,b,y,V,B,G),Object.assign(q.Python.forBlock,T,M,h,m,O,E,c,R,g,C,A,L,S,N,P,U,w,k,x,H,W,K,J,Q)})(); \ No newline at end of file diff --git a/boards/default/micropython_robot/build/MixBot_lib-v1.23.0.bin b/boards/default/micropython_robot/build/MixBot_lib-v1.23.0.bin index eee8e858..2c1ad024 100644 Binary files a/boards/default/micropython_robot/build/MixBot_lib-v1.23.0.bin and b/boards/default/micropython_robot/build/MixBot_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_robot/build/Mixgo_FeiYi_lib-v1.23.0.bin b/boards/default/micropython_robot/build/Mixgo_FeiYi_lib-v1.23.0.bin index abbe9053..9c46bbc2 100644 Binary files a/boards/default/micropython_robot/build/Mixgo_FeiYi_lib-v1.23.0.bin and b/boards/default/micropython_robot/build/Mixgo_FeiYi_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_robot/build/RM_E1_lib-v1.23.0.bin b/boards/default/micropython_robot/build/RM_E1_lib-v1.23.0.bin index bb76995a..51a9e203 100644 Binary files a/boards/default/micropython_robot/build/RM_E1_lib-v1.23.0.bin and b/boards/default/micropython_robot/build/RM_E1_lib-v1.23.0.bin differ diff --git a/boards/default/micropython_robot/main.bundle.js b/boards/default/micropython_robot/main.bundle.js index 347dc24f..b7d833bc 100644 --- a/boards/default/micropython_robot/main.bundle.js +++ b/boards/default/micropython_robot/main.bundle.js @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class It{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Yt={init:function(){this.setColour(Lt),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},vt={init:function(){this.setColour(Lt),this.appendValueInput("LIST").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ut.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},xt={init:function(){this.setColour(Lt);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},yt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Gt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ut={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Ht={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},kt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Wt={init:function(){this.jsonInit({message0:ut.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Lt,tooltip:ut.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ut.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Kt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_STAT),this.setOutput(!0)}},Jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Qt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},qt={init:function(){this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ut.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ut.FieldDropdown([[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Lt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},$t={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_GET_UNIQUE_IDEN)}},te={init:function(){this.setColour(Lt),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ut.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ee={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},ie=230;ut.FieldTextInput.math_number_validator=function(t){return String(t)},ut.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const ne={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},oe={init:function(){this.setColour(ie),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ie),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ae={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ut.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ue={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ut.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ut.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ut.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ut.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ut.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ut.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ut.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},re={init:function(){var t=[[ut.Msg.MATH_BIN,"bin"],[ut.Msg.MATH_OCT,"oct"],[ut.Msg.MATH_HEX,"hex"]];this.setColour(ie),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ut.Msg.MATH_DEC_TOOLTIP_BIN,oct:ut.Msg.MATH_DEC_TOOLTIP_OCT,hex:ut.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[ut.Msg.LANG_MATH_TO_ROUND,"round"],[ut.Msg.LANG_MATH_TO_CEIL,"ceil"],[ut.Msg.LANG_MATH_TO_FLOOR,"floor"],[ut.Msg.MATH_ABS,"fabs"],[ut.Msg.MATH_SQRT,"sqrt"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ut.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ut.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ut.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ut.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ut.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ut.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ut.Msg.MIXLY_MAX,"max"],[ut.Msg.MIXLY_MIN,"min"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ut.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ut.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ie={init:function(){var t=[[ut.Msg.MATH_TWO,"two"],[ut.Msg.MATH_EIGHT,"eight"],[ut.Msg.MATH_TEN,"ten"],[ut.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ie),this.appendDummyInput("").appendField(ut.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ut.FieldDropdown(t),"OP").appendField(ut.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MATH_ZHW).appendField(new ut.FieldDropdown(t),"OP2").appendField(ut.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ut.Msg.MATH_Before_two,eight:ut.Msg.MATH_Before_eight,ten:ut.Msg.MATH_Before_ten,sixteen:ut.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ut.Msg.MATH_Behind_two,eight:ut.Msg.MATH_Behind_eight,ten:ut.Msg.MATH_Behind_ten,sixteen:ut.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Te={init:function(){var t=[[ut.Msg.LANG_MATH_INT,"int"],[ut.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ie),this.setOutput(!0,Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ut.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ut.Msg.LANG_MATH_INT,float:ut.Msg.LANG_MATH_FLOAT_RANDOM};return ut.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_CONSTRAIN_TOOLTIP)}},he={init:function(){this.setColour(ie),this.appendValueInput("NUM",Number).appendField(ut.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ut.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ut.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_MAP)}},me={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ie),this.appendValueInput("NUM").setCheck(Number).appendField(ut.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Oe={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MATH_ROUND).appendField(ut.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ut.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_ROUND_NEW_TOOLTIP)}},Re={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"],[ut.Msg.MIXLY_TO_BITES,"b"],[ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_INT,"bti"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ut.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ce={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ut.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ge=he,Ce={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Se={init:function(){this.setColour(ie),this.itemCount_=1,this.setMutator(new ut.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ut.Msg.MIXLY_PRODUCT+ut.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ut.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ut.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Fe={init:function(){this.setColour(Ne),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput("",ut.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ut.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ut.FieldImage(e,7,12,'"')}},Pe={init:function(){this.setColour(Ne),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ut.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ye={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ve={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String).appendField(ut.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Xe={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},be={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},xe={init:function(){this.WHERE_OPTIONS=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.TEXT_GET_INDEX_RANDOM+1+ut.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.LISTS_GET_INDEX_GET,"MODE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ut.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ut.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ut.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ut.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ut.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ut.Msg.TEXT_GET_INDEX_RANDOM};return ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ut.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ut.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ut.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ye={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.LISTS_GET_INDEX_FROM_START+"n"+ut.Msg.TEXT_CHARAT2)}},Ve={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ut.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ut.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Be={init:function(){this.WHERE_OPTIONS_1=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ut.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ut.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ut.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ge={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ut.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ue={init:function(){var t=[[ut.Msg.MIXLY_EQUALS,"==="],[ut.Msg.MIXLY_STARTSWITH,"startswith"],[ut.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ut.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},we={init:function(){this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_COMPARETO_HELP)}},He={init:function(){var t=[[ut.Msg.TEXT_UPPER,"upper"],[ut.Msg.TEXT_TITLE,"title"],[ut.Msg.TEXT_CAPITALIZE,"capitalize"],[ut.Msg.TEXT_SWAPCASE,"swapcase"],[ut.Msg.TEXT_LOWER,"lower"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ut.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ut.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ut.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ut.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ut.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ke={init:function(){var t=[[ut.Msg.TEXT_LJUST,"ljust"],[ut.Msg.TEXT_CENTER,"center"],[ut.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ut.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},We={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ut.Msg.MIXLY_MID+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ut.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ke={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Je={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ut.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Qe={init:function(){this.setColour(Ne),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ut.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ut.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},qe={init:function(){var t=[[ut.Msg.TEXT_TRIM_BOTH,"strip"],[ut.Msg.TEXT_TRIM_LEFT,"lstrip"],[ut.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ne),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ut.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ut.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ut.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ut.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ze={init:function(){this.setColour(Ne),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ut.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ki={init:function(){this.setColour(ki),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Ji={init:function(){this.setColour(ki),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_KEYS),this.setTooltip(ut.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_TOOLTIP)}},zi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},ji={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},$i={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_DELETE_TOOLTIP)}},Zi={init:function(){this.setColour(ki),this.appendValueInput("DICT2").setCheck("Dict").appendField(ut.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ut.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MID),this.setTooltip(ut.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_CLEAR),this.setTooltip(ut.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},en={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_ITEMS),this.setTooltip(ut.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},nn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_VALUES),this.setTooltip(ut.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LENGTH),this.setTooltip(ut.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},_n={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_DELDICT),this.setTooltip(ut.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},on={init:function(){this.MODE=[[ut.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ut.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ut.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ut.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ut.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ut.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},pn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setTooltip(ut.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},an={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_SETDEFAULT_TOOLTIP)}},un={init:function(){this.setColour(ki),this.appendDummyInput("").appendField(new ut.FieldLabel(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ut.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rn={init:function(){this.setColour(ki),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},ln={init:function(){this.setColour(ki),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},In={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Tn={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn=210,hn={init:function(){var t=ut.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ut.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ut.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},mn={init:function(){var t=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ut.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},En={init:function(){var t=[[ut.Msg.LOGIC_OPERATION_AND,"AND"],[ut.Msg.LOGIC_OPERATION_OR,"OR"],[ut.Msg.LOGIC_OPERATION_NOR,"NOR"],[ut.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ut.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ut.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},On={init:function(){this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ut.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ut.Msg.LOGIC_NEGATE_TOOLTIP)}},Rn={init:function(){var t=[[ut.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ut.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ut.FieldDropdown(t),"BOOL"),this.setTooltip(ut.Msg.LOGIC_BOOLEAN_TOOLTIP)}},cn={init:function(){this.setColour(Mn),this.setOutput(!0),this.appendDummyInput().appendField(ut.Msg.LOGIC_NULL),this.setTooltip(ut.Msg.LOGIC_NULL_TOOLTIP)}},gn={init:function(){this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(ut.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ut.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Cn={init:function(){var t=[[ut.Msg.TEXT_APPEND_TO,"in"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ut.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ut.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.IN)}},Sn={init:function(){var t=[[ut.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},An={init:function(){this.setColour(Mn),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ut.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXPY_TEXT_ENCODE).appendField(new ut.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Fn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MICROBIT_PYTHON_TYPE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.HTML_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Hn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ut.Msg.MIXLY_ESP32_SET+{mkdir:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ut.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.HTML_FILE,"isfile"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Jn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ut.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Qn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ut.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},qn={init:function(){var t=ut.Procedures.findLegalName("",this),e=new ut.FieldTextInput(t,ut.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new ut.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&ut.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(ut.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(ut.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(ut.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(ut.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=ut.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),ut.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{ut.Events.enable()}},mutationToDom:function(t){var e=ut.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ks={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_FORM_CONTENT).appendField(new ut.FieldDropdown([[ut.Msg.HTML_TEXT,"text"],[ut.Msg.HTML_EMAIL,"email"],[ut.Msg.HTML_NUMBER,"number"],[ut.Msg.HTML_PASSWORD,"password"],[ut.Msg.HTML_CHECKBOX,"checkbox"],[ut.Msg.HTML_RADIOBUTTON,"radiobutton"],[ut.Msg.HTML_BUTTON,"button"],[ut.Msg.HTML_COLOUR,"colour"],[ut.Msg.HTML_DATE,"date"],[ut.Msg.HTML_LOCALTIME,"local time"],[ut.Msg.HTML_FILE,"file"],[ut.Msg.HTML_HIDDEN,"hidden"],[ut.Msg.HTML_IMAGE,"image"],[ut.Msg.HTML_MONTH,"month"],[ut.Msg.HTML_RANGE,"range"],[ut.Msg.HTML_RESET,"reset"],[ut.Msg.HTML_SEARCH,"search"],[ut.Msg.HTML_SUBMIT,"submit"],[ut.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ut.Msg.HTML_TIME,"time"],[ut.Msg.HTML_URL,"url"],[ut.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ut.Msg.HTML_NAME).appendField(new ut.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ut.Msg.HTML_VALUE).appendField(new ut.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(ys),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ks={init:function(){this.setColour(ys),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_TEXT).appendField(new ut.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs=160,qs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ut.FieldTable(""),"TEXT")}},zs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT")}},js={init:function(){this.setColour(Qs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},$s={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Zs={init:function(){this.setColour(Qs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ut.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},t_={init:function(){this.setColour(Qs),this.appendValueInput("VALUE").appendField(ut.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},e_={init:function(){this.setColour(Qs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ut.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ut.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ut.isNumber(n)&&ut.isNumber(s)&&ut.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const zp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},jp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},$p=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Zp=function(t,e){return["None",e.ORDER_ATOMIC]},ta=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ea=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ia=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},na=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},sa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},_a=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},oa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},pa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ua=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},la=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ta=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ma=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ha=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ma=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Oa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Ra=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ca=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},La=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ut.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},au=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},uu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},du=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},lu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Iu=function(t,e){return'"},Tu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Mu=function(){return this.getFieldValue("TEXT")+"\n"},hu=function(t){return t.getFieldValue("TEXT")+"\n"},mu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Ou=function(){return""},Ru=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},cu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Au.scrubNakedValue=function(t){return t+"\n"},Au.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Au.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Au.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=ut.utils.string.wrap(_,Au.COMMENT_WRAP-3),n+=Au.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Lu="#74A55B",Nu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},Du={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},fu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Fu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Pu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Yu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},vu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},Xu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},xu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},yu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Vu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Bu={init:function(){this.setColour(Lu),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Uu={init:function(){this.setColour(Lu),this.appendValueInput("VAR").appendField("360°"+ut.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},wu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Hu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},ku={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ut.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ut.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Ju={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ut.Msg.MOTOR_N,"ms32006.MOT_N"],[ut.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Qu={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ut.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},qu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},zu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},ju={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},$u={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Zu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["SYN6288"+ut.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+ut.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},tr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_WHETHER).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_STOPPED,"0"],[ut.Msg.MIXLY_PLAYING,"1"],[ut.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},er={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_PLAY,"1"],[ut.Msg.MIXLY_MP3_PAUSE,"2"],[ut.Msg.MIXLY_STOP,"3"],[ut.Msg.MIXLY_MP3_PREV,"4"],[ut.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ir={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(ut.Msg.MIXLY_MP3_VOL+ut.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},nr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE+ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_LOOP_ALL,"0"],[ut.Msg.MIXLY_MP3_LOOP_ONE,"1"],[ut.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[ut.Msg.MIXLY_MP3_LOOP_RAM,"3"],[ut.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[ut.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[ut.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},_r={},or={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},pr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ar={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},ur={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},rr={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},dr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},lr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ir={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ut.Msg.MIXLY_SPEED,"[1]"],[ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ut.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ut.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ut.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Rr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Lr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SERVO+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fr={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MOTOR+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr="#6C9858",Yr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},vr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"1"],[ut.Msg.MIXLY_ESP32_OFF,"0"],[ut.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Xr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},br={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},xr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},yr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Vr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LIGHT_RED,"1"],[ut.Msg.MIXLY_LIGHT_GREEN,"2"],[ut.Msg.MIXLY_LIGHT_BLUE,"3"],[ut.Msg.MIXLY_LIGHT_YELLOW,"4"],[ut.Msg.MIXLY_LIGHT_CYAN,"5"],[ut.Msg.MIXLY_LIGHT_PURPLE,"6"],[ut.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Br={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Gr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},wr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Hr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},kr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Wr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Kr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Jr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Qr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},qr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},zr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},jr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},$r={init:function(){this.setColour(Pr),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Zr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},td={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},ed={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},id={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},nd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sd={init:function(){this.setColour(Pr),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},_d={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},od={init:function(){this.setColour(Pr),this.appendDummyInput().appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pd={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ad={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},dd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},ld={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"1"],[ut.Msg.TEXT_TRIM_RIGHT,"2"],[ut.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Td={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Md={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},md={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"0"],[ut.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(Pr),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Od={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Rd={init:function(){this.setColour(Pr),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},cd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},gd={init:function(){this.setColour(Pr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_RECORD_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(Pr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(Pr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ld={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Dd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},fd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.MIXLY_ALL+ut.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ut.ALIGN_RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Fd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(ut.Msg.MIXLY_RELEASE).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT)}},Pd={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SPECIAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[ut.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[ut.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[ut.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[ut.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[ut.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[ut.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Yd={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GENERAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},vd={init:function(){this.setColour(Pr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new ut.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(ut.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},Oh={init:function(){this.jsonInit({colour:uh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ut.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ut.Msg.MIXLY_MICROBIT_Built_in_image})}},Rh={init:function(){this.setColour(uh),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},ch={init:function(){this.setColour(uh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(ch.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[ut.Msg.MICROBIT_DISPLAY_UNION,"add"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},gh={init:function(){this.setColour(uh),this.appendValueInput("A").setCheck("esp32_image").appendField(ut.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Ch={init:function(){this.setColour(uh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(Ch.OPERATORS),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:ut.Msg.MIXLY_UP,shift_down:ut.Msg.MIXLY_DOWN,shift_left:ut.Msg.MIXLY_LEFT,shift_right:ut.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]]},Sh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Ah={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Lh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Nh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Dh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},fh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Fh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Fh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Ph={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Yh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Yh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},vh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Xh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Xh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},bh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.OLED_SET_FONT).appendField(new ut.FieldDropdown(bh.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+ut.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},xh={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},yh={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Vh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Uh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Hh={init:function(){this.jsonInit({colour:uh,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},kh={init:function(){this.jsonInit({colour:uh,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Wh={init:function(){this.jsonInit({colour:uh,args0:[{name:"state",options:[[ut.Msg.mpython_display_hline_1,"1"],[ut.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ut.FieldDropdown(Kh.IMAGES),"path"),this.setColour(uh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Jh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Qh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Qh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},qh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},zh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},jh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},$h={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new ut.FieldDropdown($h.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[ut.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[ut.Msg.CLOCKWISE+"90"+ut.Msg.blockpy_setheading_degree,"1"],[ut.Msg.CLOCKWISE+"180"+ut.Msg.blockpy_setheading_degree,"2"],[ut.Msg.CLOCKWISE+"270"+ut.Msg.blockpy_setheading_degree,"3"]]},Zh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},tm={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(tm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},em={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},im={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},nm={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sm={init:function(){this.jsonInit({colour:uh,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},_m={init:function(){this.jsonInit({colour:uh,args0:[{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},om={init:function(){this.jsonInit({colour:uh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},pm={init:function(){this.setColour(uh),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},am={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},um={init:function(){this.setColour(uh),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rm={init:function(){this.setColour(uh),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(ut.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dm={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lm={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(ut.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(ut.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(ut.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Im={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tm={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mm={init:function(){this.jsonInit({colour:uh,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},hm={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER).appendField(ut.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(ut.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.DRAW_POINTER_TOOLTIP)}},mm={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER).appendField(ut.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(ut.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.DRAW_POINTER_TOOLTIP)}},Em={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Om={init:function(){lh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Rm={init:function(){Mh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},cm={init:function(){Ch.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},gm={init:function(){Lh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Cm={init:function(){Nh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Sm={init:function(){Dh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Am=180,Lm={init:function(){this.setColour(Am),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(ut.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(Lm.OPERATORS),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"]]},Nm={init:function(){this.setColour(Am),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(Nm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[ut.Msg.MICROBIT_DISPLAY_UNION,"+"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},Dm={init:function(){this.setColour(Am),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new ut.FieldDropdown(Dm.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE+{height:ut.Msg.MIXLY_HEIGHT,width:ut.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[ut.Msg.MIXLY_HEIGHT,"height"],[ut.Msg.MIXLY_WIDTH,"width"]]},fm={init:function(){this.setColour(Am),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RECT).appendField(new ut.FieldDropdown(fm.STATUS),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_OLED_RECT)},STATUS:[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Fm={init:function(){this.setColour(Am),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new ut.FieldDropdown(Fm.STATUS),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Pm={init:function(){this.setColour(Am),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new ut.FieldDropdown(Pm.STATUS),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Ym="#777777",vm={init:function(){this.setColour(Ym),this.appendDummyInput("").appendField("from ").appendField(new ut.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ut.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xm={init:function(){this.setColour(Ym),this.appendDummyInput("").appendField("import ").appendField(new ut.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bm={init:function(){this.setColour(Ym),this.appendDummyInput("").appendField(new ut.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},gE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},CE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},SE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},AE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_PROJECT).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},LE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},NE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},DE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},FE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},YE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},vE={init:function(){this.setColour(ME),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},XE={init:function(){this.setColour(ME),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},bE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},xE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ut.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},yE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+ut.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},BE={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(ME),this.appendDummyInput("").appendField(new ut.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},GE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},UE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ut.Msg.MIXLY_REQUESTS_GET).appendField(ut.Msg.MIXLY_GET_CURRENT_TIME).appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},HE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ut.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ut.Msg.MQTT_Topic).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},WE=hE,KE=mE,JE=EE,QE=OE,qE=cE,zE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(ut.Msg.MODEL_NAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(ut.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},ZE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("Ollama "+ut.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO=225,eO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ut.Msg.MIXLY_NETWORK_MODE).appendField(new ut.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},iO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ut.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ut.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ut.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ut.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},nO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},sO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ut.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},_O={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},oO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_CONNECT+ut.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},pO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ut.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ut.Msg.MIXLY_ESP32_NETWORK_IP,1:ut.Msg.MIXLY_ESP32_NETWORK_MASK,2:ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},aO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},uO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},rO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ut.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},dO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},lO={init:function(){this.setColour(tO),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},IO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},TO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},hO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},mO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},EO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},OO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},RO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},cO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gO={init:function(){this.setColour(tO),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},CO={init:function(){this.appendValueInput("VAL"),this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(CO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},SO={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown(SO.METHOD),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ut.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ut.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},AO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ut.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},LO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(new ut.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},NO="#3288dd",DO={init:function(){this.setColour(NO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS).appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},fO={init:function(){this.setColour(NO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ut.Msg.blockpy_REQUESTS+ut.Msg.OLED_STRING),this.appendDummyInput("").appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},FO={init:function(){this.appendValueInput("VAL"),this.setColour(NO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(FO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ut.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},PO={init:function(){this.setColour(NO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(ut.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},YO={init:function(){this.setColour(NO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(ut.Msg.MIXLY_EMQX_PORT).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vO={init:function(){this.setColour(NO),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(ut.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},XO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("mqtt"+ut.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},yO="#A58C5B",VO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_IS_PRESSED)}},BO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_WAS_PRESSED)}},GO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_BUTTON+ut.Msg.MIXLY_GET_PRESSES)}},UO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ut.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ut.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},wO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"],[ut.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down,freefall:ut.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},HO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},kO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},WO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(new ut.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ut.FieldDropdown(WO.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]},KO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},JO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},QO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"left"],[ut.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ut.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ut.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ut.Msg.MIXLY_ESP32_NEAR;return i+{left:ut.Msg.TEXT_TRIM_LEFT,right:ut.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},qO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ut.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},zO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ut.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},jO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},$O={init:function(){this.setColour(yO),this.appendDummyInput("").appendField("LM35"+ut.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LM35)}},ZO={init:function(){this.setColour(yO),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[ut.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[ut.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[ut.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[ut.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[ut.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[ut.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[ut.Msg.HTML_COLOUR+"、"+ut.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+ut.Msg.MIXLY_NEXT+"、"+ut.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[ut.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[ut.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[ut.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[ut.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},tR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},eR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},iR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},nR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},sR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},_R={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_HELLO_XIAOZHI,"1"],[ut.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[ut.Msg.MIXLY_THE_FIRST,"3"],[ut.Msg.MIXLY_THE_SECOND,"4"],[ut.Msg.MIXLY_THE_THIRD,"5"],[ut.Msg.MIXLY_THE_FOURTH,"6"],[ut.Msg.MIXLY_THE_FIFTH,"7"],[ut.Msg.MIXLY_THE_SIXTH,"8"],[ut.Msg.MIXLY_THE_SEVENTH,"9"],[ut.Msg.MIXLY_THE_EIGHTH,"10"],[ut.Msg.MIXLY_THE_NINTH,"11"],[ut.Msg.MIXLY_THE_TENTH,"12"],[ut.Msg.MIXLY_THE_ELEVENTH,"13"],[ut.Msg.MIXLY_THE_TWELFTH,"14"],[ut.Msg.MIXLY_THE_13TH,"15"],[ut.Msg.MIXLY_THE_14TH,"16"],[ut.Msg.MIXLY_THE_15TH,"17"],[ut.Msg.MIXLY_THE_16TH,"18"],[ut.Msg.MIXLY_THE_17TH,"19"],[ut.Msg.MIXLY_THE_18TH,"20"],[ut.Msg.MIXLY_THE_19TH,"21"],[ut.Msg.MIXLY_THE_20TH,"22"],[ut.Msg.MIXLY_Turn_on_the_lights,"23"],[ut.Msg.MIXLY_Turn_off_the_lights,"24"],[ut.Msg.MIXLY_Turn_up_the_brightness,"25"],[ut.Msg.MIXLY_Turn_down_the_brightness,"26"],[ut.Msg.MIXLY_Set_it_to_red,"27"],[ut.Msg.MIXLY_Set_it_to_orange,"28"],[ut.Msg.MIXLY_Set_it_to_yellow,"29"],[ut.Msg.MIXLY_Set_it_to_green,"30"],[ut.Msg.MIXLY_Set_it_to_cyan,"31"],[ut.Msg.MIXLY_Set_it_to_blue,"32"],[ut.Msg.MIXLY_Set_it_to_purple,"33"],[ut.Msg.MIXLY_Set_it_to_white,"34"],[ut.Msg.MIXLY_Turn_on_the_fan,"35"],[ut.Msg.MIXLY_Turn_off_the_fan,"36"],[ut.Msg.MIXLY_First_gear,"37"],[ut.Msg.MIXLY_Wind_speed_second,"38"],[ut.Msg.MIXLY_Third_gear,"39"],[ut.Msg.MIXLY_Previous,"40"],[ut.Msg.MIXLY_Next_page,"41"],[ut.Msg.MIXLY_Show_smiley_face,"42"],[ut.Msg.MIXLY_Show_crying_face,"43"],[ut.Msg.MIXLY_Show_love,"44"],[ut.Msg.MIXLY_Close_display,"45"],[ut.Msg.MIXLY_Start_execution,"46"],[ut.Msg.MIXLY_FORWARD,"47"],[ut.Msg.MIXLY_BACKWARD,"48"],[ut.Msg.MIXLY_TURNLEFT,"49"],[ut.Msg.MIXLY_TURNRIGHT,"50"],[ut.Msg.MIXLY_STOP,"51"],[ut.Msg.MIXLY_Accelerate,"52"],[ut.Msg.MIXLY_retard,"53"],[ut.Msg.ROTATION_FORWARD,"54"],[ut.Msg.ROTATION_BACKWARD,"55"],[ut.Msg.MIXLY_Query_temperature,"56"],[ut.Msg.MIXLY_Query_humidity,"57"],[ut.Msg.MIXLY_Query_brightness,"58"],[ut.Msg.MIXLY_Query_sound,"59"],[ut.Msg.MIXLY_Query_time,"60"],[ut.Msg.MIXLY_Query_distance,"61"],[ut.Msg.MIXLY_Query_pressure,"62"],[ut.Msg.MIXLY_Query_key,"63"],[ut.Msg.MIXLY_Query_touch,"64"],[ut.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(ut.Msg.MIXLY_WHETHER+ut.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},oR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[ut.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[ut.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},pR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MP3_PLAY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_WIND_SPEED,"154"],[ut.Msg.MIXLY_HYETAL,"155"],[ut.Msg.MIXLY_TEMPERATURE,"156"],[ut.Msg.MIXLY_Humidity,"157"],[ut.Msg.MIXLY_Altitude,"158"],[ut.Msg.MIXLY_SOUND,"159"],[ut.Msg.MIXLY_BRIGHTNESS,"160"],[ut.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[ut.Msg.MIXLY_SERVO,"162"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[ut.Msg.MIXLY_BUTTON2,"164"],[ut.Msg.MIXLY_ESP32_TOUCH,"165"],[ut.Msg.MIXLY_PAY,"166"],[ut.Msg.MIXLY_CARSH_CHANGE,"167"],[ut.Msg.MIXLY_COUNTDOWN,"168"],[ut.Msg.MIXLY_TIMING,"169"],[ut.Msg.MIXLY_AT_THE_MOMENT,"170"],[ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[ut.Msg.MIXLY_FORWARD,"172"],[ut.Msg.MIXLY_BACKWARD,"173"],[ut.Msg.MIXLY_TURNLEFT,"174"],[ut.Msg.MIXLY_TURNRIGHT,"175"],[ut.Msg.MIXLY_STOP,"176"],[ut.Msg.MIXLY_Accelerate,"177"],[ut.Msg.MIXLY_retard,"178"],[ut.Msg.ROTATION_FORWARD,"179"],[ut.Msg.ROTATION_BACKWARD,"180"],[ut.Msg.TUPLE_JOIN,"181"],[ut.Msg.MIXLY_SHOW,"182"],[ut.Msg.MIXLY_LAMPLIGHT,"183"],[ut.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(ut.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(ut.Msg.MIXLY_UNIT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_YEAR,"117"],[ut.Msg.MIXLY_MONTH,"118"],[ut.Msg.MIXLY_DAY,"119"],[ut.Msg.MIXLY_HOUR,"120"],[ut.Msg.MIXLY_MINUTE,"121"],[ut.Msg.MIXLY_SECOND,"122"],[ut.Msg.MIXLY_WEEK2,"123"],[ut.Msg.MIXLY_RMB_UNIT,"124"],[ut.Msg.blockpy_setheading_degree,"125"],[ut.Msg.MIXLY_GEAR,"126"],[ut.Msg.MIXLY_LAYER,"127"],[ut.Msg.MIXLY_GRAM,"128"],[ut.Msg.MIXLY_METER,"129"],[ut.Msg.MIXLY_CENTIMETER,"130"],[ut.Msg.MIXLY_MILLIMETER,"131"],[ut.Msg.MIXLY_LUMEN,"132"],[ut.Msg.MIXLY_DECIBEL,"133"],[ut.Msg.MIXLY_hectopascal,"134"],[ut.Msg.MIXLY_PERCENT,"135"],[ut.Msg.MIXLY_CELSIUS,"136"],[ut.Msg.MIXLY_METER_PER_SEC,"137"],[ut.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[ut.Msg.MIXLY_SUCCESS,"140"],[ut.Msg.MIXLY_FAILED,"141"],[ut.Msg.MIXLY_WRONG,"142"],[ut.Msg.MIXLY_GOOD,"143"],[ut.Msg.MIXLY_blockpy_set_add,"144"],[ut.Msg.MIXLY_DECREASE,"145"],[ut.Msg.COLOUR_RGB_RED,"146"],[ut.Msg.COLOUR_RGB_ORANGE,"147"],[ut.Msg.COLOUR_YELLOW,"148"],[ut.Msg.COLOUR_RGB_GREEN,"149"],[ut.Msg.COLOUR_CYAN,"150"],[ut.Msg.COLOUR_RGB_BLUE,"151"],[ut.Msg.COLOUR_RGB_PURPLE,"152"],[ut.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},aR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXLY_SYSTEM+ut.Msg.MIXLY_CMD).appendField(new ut.FieldDropdown([[ut.Msg.MILXY_ENTER_WAKE_UP,"1"],[ut.Msg.MIXLY_INCREASE_VOLUME,"202"],[ut.Msg.MIXLY_REDUCE_VOLUME,"203"],[ut.Msg.MIXLY_MAX_VOLUME,"204"],[ut.Msg.MIXLY_MINIMUM,"205"],[ut.Msg.MIXLY_OPEN_RESPONSE,"206"],[ut.Msg.MIXLY_CLOSE_RESPONSE,"207"],[ut.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},uR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ut.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ut.Msg.MIXLY_ESP32_MAX30102_IR+","+ut.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ut.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ut.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},dR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},lR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+ut.Msg.HTML_COLOUR,"[2]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_IR_STRENGTH,"[1]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},IR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+"RGB"+ut.Msg.HTML_COLOUR,"0"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_RGB_RAW,"1"],[ut.Msg.MIXLY_GET_ENV_LIGHT+ut.Msg.MIXLY_BRIGHTNESS,"2"],[ut.Msg.GET_IR_STRENGTH+ut.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},TR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ut.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},MR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},mR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ER={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},OR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(ut.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MIXGOPE_FIELD+ut.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ut.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},SR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},AR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET+ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},LR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},DR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_GETTEMPERATUE)}},fR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},FR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},PR={init:function(){this.setColour(yO),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},YR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ut.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},bR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ut.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},yR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_SCAN_OK,"0"],[ut.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ut.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},BR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},GR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},UR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},Gf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Uf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},wf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Hf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},kf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Wf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},Kf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},Jf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},Qf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},qf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},zf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},jf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},$f=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},Zf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},eF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},iF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},nF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},sF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},_F=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},oF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},pF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},uF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},rF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},dF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},lF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},IF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},TF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},MF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},hF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},mF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},EF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},OF=function(t,e){e.definitions_.import_st7789="import st7789";var i=rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},RF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},cF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},gF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},CF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},SF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},AF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},LF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},NF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},DF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},fF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},FF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},PF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},YF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},vF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},XF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},bF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},yF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},BF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},GF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},UF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},wF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},HF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},kF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},WF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},KF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},JF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},QF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===rt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},qF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},zF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},jF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},$F=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},ZF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},tP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},eP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},iP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},nP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},GP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},UP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},wP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},HP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},kP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},WP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},KP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},JP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},QP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},zP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},jP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},$P=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},ZP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},tY=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},eY=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},iY=QF,nY=$F,sY=dP,_Y=aP,oY=dP,pY=lP,aY=_P,uY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},rY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},dY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},pV=function(){return"control.reset()\n"},aV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},uV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},rV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},dV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},lV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},IV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},TV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},MV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},hV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},mV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},EV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},OV=function(){return"while True:\n pass\n"},RV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},cV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},gV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},CV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},SV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},AV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},LV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},NV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},DV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},fV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},FV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},PV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},YV=NV,vV=AV,XV=LV,bV=gV,xV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},yV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},VV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},BV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},GV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},UV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},wV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},HV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},kV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},WV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},KV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},JV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},QV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},qV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},zV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},jV={};jV["飞乙"]={description:"MicroPython[ESP32C3 Bitbot]",digital_pin:rt.Profile.generate(["0-11","18-21"]),input_pin:rt.Profile.generate(["0-11","18-21"]),output_pin:rt.Profile.generate(["0-11","18-21"]),pwm_input:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),digital:rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:rt.Profile.generate(["0-11","18-21"]),pwm:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:rt.Profile.generate(["0-5"]),analog:rt.Profile.generate(["0-5"],"adc","adc"),button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-1"]),als_num:rt.Profile.generate(["0-3"])},jV["超霸大师"]={description:"MicroPython[ESP32 Mixbot]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["P","button_p"],["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-3"])},jV["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},jV["机器人大师"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["p","button_p"],["cw","button_cw"],["ccw","button_ccw"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const $V=jV,ZV=230,tB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},eB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},iB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},nB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},sB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},_B={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},oB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},pB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},aB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},uB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},rB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},dB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},lB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},IB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},TB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},MB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},hB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},mB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},EB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},OB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},RB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},cB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},gB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},CB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},SB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},AB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},LB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},NB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},DB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},fB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},FB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},PB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},YB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},vB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},XB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},xB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},yB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},BB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},wB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},HB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},kB=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},WB=kB,KB=kB,JB=kB,QB=kB,qB=kB,zB=kB,jB=kB,$B=kB,ZB=kB,tG=kB,eG=kB,iG=kB,nG=kB,sG=kB,_G=kB,oG=kB,pG=kB,aG=kB,uG=kB,rG=kB,dG=kB,lG=kB,IG=kB,TG=kB,MG=kB,hG=kB,mG=kB,EG=kB,OG=kB,RG=kB,cG=kB,gG=kB,CG=kB,SG=kB;Object.assign(ut.Variables,lt),Object.assign(ut.Procedures,Su),ut.Python=Au,ut.generator=Au,rt.Profile.default={},Object.assign(rt.Profile,$V),Object.assign(rt.Profile.default,$V["ESP32 Generic"]),Object.assign(ut.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,x,w,U,Y,y,H,f,G,B,V,F,D,N,X,v,b,P,pt),Object.assign(ut.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,Z,_t,st,q,tt,ot,K,nt,it,et,J,W,k,j,z,$,Q,at)})(); \ No newline at end of file +class It{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Yt={init:function(){this.setColour(Lt),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},vt={init:function(){this.setColour(Lt),this.appendValueInput("LIST").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ut.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},xt={init:function(){this.setColour(Lt);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},yt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Gt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ut={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Ht={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},kt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Wt={init:function(){this.jsonInit({message0:ut.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Lt,tooltip:ut.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ut.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Kt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_STAT),this.setOutput(!0)}},Jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Qt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},qt={init:function(){this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ut.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ut.FieldDropdown([[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Lt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},$t={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_GET_UNIQUE_IDEN)}},te={init:function(){this.setColour(Lt),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ut.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ee={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},ie=230;ut.FieldTextInput.math_number_validator=function(t){return String(t)},ut.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const ne={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},oe={init:function(){this.setColour(ie),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ie),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ae={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ut.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ue={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ut.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ut.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ut.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ut.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ut.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ut.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ut.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},re={init:function(){var t=[[ut.Msg.MATH_BIN,"bin"],[ut.Msg.MATH_OCT,"oct"],[ut.Msg.MATH_HEX,"hex"]];this.setColour(ie),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ut.Msg.MATH_DEC_TOOLTIP_BIN,oct:ut.Msg.MATH_DEC_TOOLTIP_OCT,hex:ut.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[ut.Msg.LANG_MATH_TO_ROUND,"round"],[ut.Msg.LANG_MATH_TO_CEIL,"ceil"],[ut.Msg.LANG_MATH_TO_FLOOR,"floor"],[ut.Msg.MATH_ABS,"fabs"],[ut.Msg.MATH_SQRT,"sqrt"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ut.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ut.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ut.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ut.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ut.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ut.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ut.Msg.MIXLY_MAX,"max"],[ut.Msg.MIXLY_MIN,"min"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ut.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ut.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ie={init:function(){var t=[[ut.Msg.MATH_TWO,"two"],[ut.Msg.MATH_EIGHT,"eight"],[ut.Msg.MATH_TEN,"ten"],[ut.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ie),this.appendDummyInput("").appendField(ut.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ut.FieldDropdown(t),"OP").appendField(ut.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MATH_ZHW).appendField(new ut.FieldDropdown(t),"OP2").appendField(ut.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ut.Msg.MATH_Before_two,eight:ut.Msg.MATH_Before_eight,ten:ut.Msg.MATH_Before_ten,sixteen:ut.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ut.Msg.MATH_Behind_two,eight:ut.Msg.MATH_Behind_eight,ten:ut.Msg.MATH_Behind_ten,sixteen:ut.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Te={init:function(){var t=[[ut.Msg.LANG_MATH_INT,"int"],[ut.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ie),this.setOutput(!0,Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ut.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ut.Msg.LANG_MATH_INT,float:ut.Msg.LANG_MATH_FLOAT_RANDOM};return ut.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_CONSTRAIN_TOOLTIP)}},he={init:function(){this.setColour(ie),this.appendValueInput("NUM",Number).appendField(ut.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ut.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ut.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_MAP)}},me={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ie),this.appendValueInput("NUM").setCheck(Number).appendField(ut.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Oe={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MATH_ROUND).appendField(ut.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ut.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_ROUND_NEW_TOOLTIP)}},Re={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"],[ut.Msg.MIXLY_TO_BITES,"b"],[ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_INT,"bti"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ut.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ce={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ut.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ge=he,Ce={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Se={init:function(){this.setColour(ie),this.itemCount_=1,this.setMutator(new ut.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ut.Msg.MIXLY_PRODUCT+ut.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ut.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ut.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Fe={init:function(){this.setColour(Ne),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput("",ut.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ut.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ut.FieldImage(e,7,12,'"')}},Pe={init:function(){this.setColour(Ne),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ut.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ye={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ve={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String).appendField(ut.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Xe={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},be={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},xe={init:function(){this.WHERE_OPTIONS=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.TEXT_GET_INDEX_RANDOM+1+ut.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.LISTS_GET_INDEX_GET,"MODE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ut.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ut.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ut.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ut.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ut.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ut.Msg.TEXT_GET_INDEX_RANDOM};return ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ut.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ut.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ut.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ye={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.LISTS_GET_INDEX_FROM_START+"n"+ut.Msg.TEXT_CHARAT2)}},Ve={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ut.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ut.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Be={init:function(){this.WHERE_OPTIONS_1=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ut.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ut.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ut.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ge={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ut.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ue={init:function(){var t=[[ut.Msg.MIXLY_EQUALS,"==="],[ut.Msg.MIXLY_STARTSWITH,"startswith"],[ut.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ut.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},we={init:function(){this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_COMPARETO_HELP)}},He={init:function(){var t=[[ut.Msg.TEXT_UPPER,"upper"],[ut.Msg.TEXT_TITLE,"title"],[ut.Msg.TEXT_CAPITALIZE,"capitalize"],[ut.Msg.TEXT_SWAPCASE,"swapcase"],[ut.Msg.TEXT_LOWER,"lower"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ut.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ut.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ut.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ut.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ut.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ke={init:function(){var t=[[ut.Msg.TEXT_LJUST,"ljust"],[ut.Msg.TEXT_CENTER,"center"],[ut.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ut.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},We={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ut.Msg.MIXLY_MID+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ut.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ke={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Je={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ut.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Qe={init:function(){this.setColour(Ne),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ut.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ut.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},qe={init:function(){var t=[[ut.Msg.TEXT_TRIM_BOTH,"strip"],[ut.Msg.TEXT_TRIM_LEFT,"lstrip"],[ut.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ne),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ut.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ut.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ut.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ut.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ze={init:function(){this.setColour(Ne),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ut.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ki={init:function(){this.setColour(ki),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Ji={init:function(){this.setColour(ki),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_KEYS),this.setTooltip(ut.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_TOOLTIP)}},zi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},ji={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},$i={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_DELETE_TOOLTIP)}},Zi={init:function(){this.setColour(ki),this.appendValueInput("DICT2").setCheck("Dict").appendField(ut.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ut.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MID),this.setTooltip(ut.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_CLEAR),this.setTooltip(ut.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},en={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_ITEMS),this.setTooltip(ut.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},nn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_VALUES),this.setTooltip(ut.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LENGTH),this.setTooltip(ut.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},_n={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_DELDICT),this.setTooltip(ut.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},on={init:function(){this.MODE=[[ut.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ut.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ut.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ut.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ut.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ut.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},pn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setTooltip(ut.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},an={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_SETDEFAULT_TOOLTIP)}},un={init:function(){this.setColour(ki),this.appendDummyInput("").appendField(new ut.FieldLabel(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ut.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rn={init:function(){this.setColour(ki),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},ln={init:function(){this.setColour(ki),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},In={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Tn={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn=210,hn={init:function(){var t=ut.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ut.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ut.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},mn={init:function(){var t=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ut.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},En={init:function(){var t=[[ut.Msg.LOGIC_OPERATION_AND,"AND"],[ut.Msg.LOGIC_OPERATION_OR,"OR"],[ut.Msg.LOGIC_OPERATION_NOR,"NOR"],[ut.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ut.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ut.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},On={init:function(){this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ut.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ut.Msg.LOGIC_NEGATE_TOOLTIP)}},Rn={init:function(){var t=[[ut.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ut.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ut.FieldDropdown(t),"BOOL"),this.setTooltip(ut.Msg.LOGIC_BOOLEAN_TOOLTIP)}},cn={init:function(){this.setColour(Mn),this.setOutput(!0),this.appendDummyInput().appendField(ut.Msg.LOGIC_NULL),this.setTooltip(ut.Msg.LOGIC_NULL_TOOLTIP)}},gn={init:function(){this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(ut.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ut.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Cn={init:function(){var t=[[ut.Msg.TEXT_APPEND_TO,"in"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ut.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ut.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.IN)}},Sn={init:function(){var t=[[ut.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},An={init:function(){this.setColour(Mn),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ut.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXPY_TEXT_ENCODE).appendField(new ut.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Fn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MICROBIT_PYTHON_TYPE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.HTML_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Hn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ut.Msg.MIXLY_ESP32_SET+{mkdir:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ut.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.HTML_FILE,"isfile"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Jn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ut.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Qn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ut.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},qn={init:function(){var t=ut.Procedures.findLegalName("",this),e=new ut.FieldTextInput(t,ut.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new ut.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&ut.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(ut.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(ut.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(ut.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(ut.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=ut.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),ut.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{ut.Events.enable()}},mutationToDom:function(t){var e=ut.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ks={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_FORM_CONTENT).appendField(new ut.FieldDropdown([[ut.Msg.HTML_TEXT,"text"],[ut.Msg.HTML_EMAIL,"email"],[ut.Msg.HTML_NUMBER,"number"],[ut.Msg.HTML_PASSWORD,"password"],[ut.Msg.HTML_CHECKBOX,"checkbox"],[ut.Msg.HTML_RADIOBUTTON,"radiobutton"],[ut.Msg.HTML_BUTTON,"button"],[ut.Msg.HTML_COLOUR,"colour"],[ut.Msg.HTML_DATE,"date"],[ut.Msg.HTML_LOCALTIME,"local time"],[ut.Msg.HTML_FILE,"file"],[ut.Msg.HTML_HIDDEN,"hidden"],[ut.Msg.HTML_IMAGE,"image"],[ut.Msg.HTML_MONTH,"month"],[ut.Msg.HTML_RANGE,"range"],[ut.Msg.HTML_RESET,"reset"],[ut.Msg.HTML_SEARCH,"search"],[ut.Msg.HTML_SUBMIT,"submit"],[ut.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ut.Msg.HTML_TIME,"time"],[ut.Msg.HTML_URL,"url"],[ut.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ut.Msg.HTML_NAME).appendField(new ut.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ut.Msg.HTML_VALUE).appendField(new ut.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(ys),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ks={init:function(){this.setColour(ys),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_TEXT).appendField(new ut.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs=160,qs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ut.FieldTable(""),"TEXT")}},zs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT")}},js={init:function(){this.setColour(Qs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},$s={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Zs={init:function(){this.setColour(Qs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ut.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},t_={init:function(){this.setColour(Qs),this.appendValueInput("VALUE").appendField(ut.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},e_={init:function(){this.setColour(Qs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ut.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ut.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ut.isNumber(n)&&ut.isNumber(s)&&ut.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const zp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},jp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},$p=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Zp=function(t,e){return["None",e.ORDER_ATOMIC]},ta=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ea=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ia=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},na=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},sa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},_a=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},oa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},pa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ua=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},la=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ta=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ma=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ha=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ma=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Oa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Ra=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ca=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},La=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ut.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},au=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},uu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},du=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},lu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Iu=function(t,e){return'"},Tu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Mu=function(){return this.getFieldValue("TEXT")+"\n"},hu=function(t){return t.getFieldValue("TEXT")+"\n"},mu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Ou=function(){return""},Ru=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},cu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Au.scrubNakedValue=function(t){return t+"\n"},Au.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Au.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Au.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=ut.utils.string.wrap(_,Au.COMMENT_WRAP-3),n+=Au.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Lu="#74A55B",Nu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},Du={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},fu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Fu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Pu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Yu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},vu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},Xu={init:function(){this.setColour(Lu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},xu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},yu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Vu={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Bu={init:function(){this.setColour(Lu),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Uu={init:function(){this.setColour(Lu),this.appendValueInput("VAR").appendField("360°"+ut.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},wu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Hu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},ku={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Wu={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ut.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ut.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Ju={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ut.Msg.MOTOR_N,"ms32006.MOT_N"],[ut.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Qu={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ut.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},qu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},zu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},ju={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},$u={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Zu={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["SYN6288"+ut.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+ut.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},tr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_WHETHER).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_STOPPED,"0"],[ut.Msg.MIXLY_PLAYING,"1"],[ut.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},er={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_PLAY,"1"],[ut.Msg.MIXLY_MP3_PAUSE,"2"],[ut.Msg.MIXLY_STOP,"3"],[ut.Msg.MIXLY_MP3_PREV,"4"],[ut.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ir={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(ut.Msg.MIXLY_MP3_VOL+ut.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},nr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE+ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_LOOP_ALL,"0"],[ut.Msg.MIXLY_MP3_LOOP_ONE,"1"],[ut.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[ut.Msg.MIXLY_MP3_LOOP_RAM,"3"],[ut.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[ut.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[ut.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},_r={},or={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},pr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ar={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},ur={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},rr={init:function(){this.setColour(Lu),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},dr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},lr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ir={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ut.Msg.MIXLY_SPEED,"[1]"],[ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ut.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ut.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ut.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Rr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Lr={init:function(){this.setColour(Lu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SERVO+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fr={init:function(){this.setColour(Lu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MOTOR+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Lu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr="#6C9858",Yr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},vr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"1"],[ut.Msg.MIXLY_ESP32_OFF,"0"],[ut.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Xr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},br={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},xr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},yr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Vr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LIGHT_RED,"1"],[ut.Msg.MIXLY_LIGHT_GREEN,"2"],[ut.Msg.MIXLY_LIGHT_BLUE,"3"],[ut.Msg.MIXLY_LIGHT_YELLOW,"4"],[ut.Msg.MIXLY_LIGHT_CYAN,"5"],[ut.Msg.MIXLY_LIGHT_PURPLE,"6"],[ut.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Br={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Gr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},wr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Hr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},kr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Wr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Kr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Jr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Qr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},qr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},zr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},jr={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},$r={init:function(){this.setColour(Pr),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Zr={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},td={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},ed={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},id={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},nd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sd={init:function(){this.setColour(Pr),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},_d={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},od={init:function(){this.setColour(Pr),this.appendDummyInput().appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pd={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ad={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},dd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},ld={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"1"],[ut.Msg.TEXT_TRIM_RIGHT,"2"],[ut.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Td={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Md={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},md={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"0"],[ut.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(Pr),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Od={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Rd={init:function(){this.setColour(Pr),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},cd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},gd={init:function(){this.setColour(Pr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_RECORD_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(Pr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Sd={init:function(){this.setColour(Pr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Ld={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Dd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},fd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.MIXLY_ALL+ut.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ut.ALIGN_RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Fd={init:function(){this.setColour(Pr),this.appendDummyInput().appendField(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(ut.Msg.MIXLY_RELEASE).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT)}},Pd={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SPECIAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[ut.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[ut.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[ut.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[ut.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[ut.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[ut.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Yd={init:function(){this.setColour(Pr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GENERAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},vd={init:function(){this.setColour(Pr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new ut.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(ut.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;nnew Array(32).fill(0)))},Oh={init:function(){this.jsonInit({colour:uh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:ut.Msg.MIXLY_MICROBIT_Built_in_image1,message0:ut.Msg.MIXLY_MICROBIT_Built_in_image})}},Rh={init:function(){this.setColour(uh),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"image"),this.setOutput(!0,["esp32_image","List"])}},ch={init:function(){this.setColour(uh),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(ch.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[ut.Msg.MICROBIT_DISPLAY_UNION,"add"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},gh={init:function(){this.setColour(uh),this.appendValueInput("A").setCheck("esp32_image").appendField(ut.Msg.MIXLY_MICROBIT_Invert_image1),this.setInputsInline(!0),this.setOutput(!0,"esp32_image")}},Ch={init:function(){this.setColour(uh),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(Ch.OPERATORS),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:ut.Msg.MIXLY_UP,shift_down:ut.Msg.MIXLY_DOWN,shift_left:ut.Msg.MIXLY_LEFT,shift_right:ut.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[ut.Msg.MIXLY_UP,"shift_up"],[ut.Msg.MIXLY_DOWN,"shift_down"],[ut.Msg.MIXLY_LEFT,"shift_left"],[ut.Msg.MIXLY_RIGHT,"shift_right"]]},Sh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},Ah={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Lh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Nh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},Dh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Clear_display),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Clear_display)}},fh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<8;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Fh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Fh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},Ph={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Yh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Yh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},vh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<8;t++){let e=this.appendDummyInput();for(let i=0;i<16;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0,"esp32_image"),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Xh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Xh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},bh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.OLED_SET_FONT).appendField(new ut.FieldDropdown(bh.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+ut.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+ut.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},xh={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},yh={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Vh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(ut.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},Bh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},Gh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Uh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},Hh={init:function(){this.jsonInit({colour:uh,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},kh={init:function(){this.jsonInit({colour:uh,args0:[{name:"state",options:[[ut.Msg.MPYTHON_DISPLAY_MODE_1,"1"],[ut.Msg.MPYTHON_DISPLAY_MODE_0,"0"]],type:"field_dropdown"},{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},Wh={init:function(){this.jsonInit({colour:uh,args0:[{name:"state",options:[[ut.Msg.mpython_display_hline_1,"1"],[ut.Msg.mpython_display_hline_0,"0"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},Kh={init:function(){this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Built_in_image1).appendField(new ut.FieldDropdown(Kh.IMAGES),"path"),this.setColour(uh),this.setOutput(!0)},IMAGES:[["Heart","expression_picture.Heart"],["Angry","expression_picture.Angry"],["Bored","expression_picture.Bored"],["Confused","expression_picture.Confused"],["Happy","expression_picture.Happy"],["Paper","expression_picture.Paper"],["Rock","expression_picture.Rock"],["Sad","expression_picture.Sad"],["Scissors","expression_picture.Scissors"],["Silly","expression_picture.Silly"],["Sleep","expression_picture.Sleep"],["Small_heart","expression_picture.Small_heart"],["Small_paper","expression_picture.Small_paper"],["Small_rock","expression_picture.Small_rock"],["Small_scissors","expression_picture.Small_scissors"],["Smile","expression_picture.Smile"],["Surprise","expression_picture.Surprise"],["Wonderful","expression_picture.Wonderful"],["Eyes_Angry","eye_picture.Eyes_Angry"],["Awake","eye_picture.Awake"],["Black_eye","eye_picture.Black_eye"],["Bottom_left","eye_picture.Bottom_left"],["Bottom_right","eye_picture.Bottom_right"],["Crazy_1","eye_picture.Crazy_1"],["Crazy_2","eye_picture.Crazy_2"],["Disappointed","eye_picture.Disappointed"],["Dizzy","eye_picture.Dizzy"],["Down","eye_picture.Down"],["Evil","eye_picture.Evil"],["Hurt","eye_picture.Hurt"],["Knocked_out","eye_picture.Knocked_out"],["Love","eye_picture.Love"],["Middle_left","eye_picture.Middle_left"],["Middle_right","eye_picture.Middle_right"],["Neutral","eye_picture.Neutral"],["Nuclear","eye_picture.Nuclear"],["Pinch_left","eye_picture.Pinch_left"],["Pinch_middle","eye_picture.Pinch_middle"],["Pinch_right","eye_picture.Pinch_right"],["Tear","eye_picture.Tear"],["Tired_left","eye_picture.Tired_left"],["Tired_middle","eye_picture.Tired_middle"],["Tired_right","eye_picture.Tired_right"],["Toxic","eye_picture.Toxic"],["Up","eye_picture.Up"],["Winking","eye_picture.Winking"],["Accept","informatio_picture.Accept"],["Backward","informatio_picture.Backward"],["Decline","informatio_picture.Decline"],["Forward","informatio_picture.Forward"],["Left","informatio_picture.Left"],["No_go","informatio_picture.No_go"],["Question_mark","informatio_picture.Question_mark"],["Right","informatio_picture.Right"],["Stop_1","informatio_picture.Stop_1"],["Stop_2","informatio_picture.Stop_2"],["Thumbs_down","informatio_picture.Thumbs_down"],["Thumbs_up","informatio_picture.Thumbs_up"],["Warning","informatio_picture.Warning"],["Bomb","object_picture.Bomb"],["Boom","object_picture.Boom"],["Fire","object_picture.Fire"],["Flowers","object_picture.Flowers"],["Forest","object_picture.Forest"],["Lightning","object_picture.Lightning"],["Light_off","object_picture.Light_off"],["Light_on","object_picture.Light_on"],["Night","object_picture.Night"],["Pirate","object_picture.Pirate"],["Snow","object_picture.Snow"],["Target","object_picture.Target"],["Bar_0","progres_picture.Bar_0"],["Bar_1","progres_picture.Bar_1"],["Bar_2","progres_picture.Bar_2"],["Bar_3","progres_picture.Bar_3"],["Bar_4","progres_picture.Bar_4"],["Dial_0","progres_picture.Dial_0"],["Dial_1","progres_picture.Dial_1"],["Dial_2","progres_picture.Dial_2"],["Dial_3","progres_picture.Dial_3"],["Dial_4","progres_picture.Dial_4"],["Dots_0","progres_picture.Dots_0"],["Dots_1","progres_picture.Dots_1"],["Dots_2","progres_picture.Dots_2"],["Dots_3","progres_picture.Dots_3"],["Hourglass_0","progres_picture.Hourglass_0"],["Hourglass_1","progres_picture.Hourglass_1"],["Hourglass_2","progres_picture.Hourglass_2"],["Timer_0","progres_picture.Timer_0"],["Timer_1","progres_picture.Timer_1"],["Timer_2","progres_picture.Timer_2"],["Timer_3","progres_picture.Timer_3"],["Timer_4","progres_picture.Timer_4"],["Water_level_0","progres_picture.Water_level_0"],["Water_level_1","progres_picture.Water_level_1"],["Water_level_2","progres_picture.Water_level_2"],["Water_level_3","progres_picture.Water_level_3"],["YES","informatio_picture.YES"],["NO","informatio_picture.NO"]]},Jh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<5;t++){let e=this.appendDummyInput();for(let i=0;i<5;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Qh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(Qh.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},qh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},zh={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT),this.setInputsInline(!0),this.setOutput(!0,Number)}},jh={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS+" 0.0-1.0")}},$h={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new ut.FieldDropdown($h.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[ut.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[ut.Msg.CLOCKWISE+"90"+ut.Msg.blockpy_setheading_degree,"1"],[ut.Msg.CLOCKWISE+"180"+ut.Msg.blockpy_setheading_degree,"2"],[ut.Msg.CLOCKWISE+"270"+ut.Msg.blockpy_setheading_degree,"3"]]},Zh={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE);for(let t=0;t<12;t++){let e=this.appendDummyInput();for(let i=0;i<12;i++)e.appendField(new ut.FieldColour("#000",null,{colourOptions:["#f00","#000"],columns:2}),t+"-"+i)}this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},tm={init:function(){this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(ut.inputs.Align.CENTRE).appendField(new ut.FieldBitmap(tm.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(uh),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},em={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING)}},im={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.OLED_DRAWSTR),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("space").setCheck(Number).appendField(ut.Msg.MICROPYTHON_DISPLAY_FONT_SPACE),this.appendDummyInput("").appendField(ut.Msg.TEXT_CENTER).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"center"),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},nm={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sm={init:function(){this.jsonInit({colour:uh,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"rect"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"fill_rect"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"w",type:"input_value"},{name:"h",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,nextStatement:null,previousStatement:null})}},_m={init:function(){this.jsonInit({colour:uh,args0:[{name:"dir_h_v",options:[[ut.Msg.mpython_vertical,"0"],[ut.Msg.mpython_horizontal,"1"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"length",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,message0:ut.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,nextStatement:null,previousStatement:null})}},om={init:function(){this.jsonInit({colour:uh,args0:[{type:"input_dummy"},{name:"x1",type:"input_value"},{name:"y1",type:"input_value"},{name:"x2",type:"input_value"},{name:"y2",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,tooltip:ut.Msg.mpython_display_line_TOOLTIP,message0:ut.Msg.mpython_display_line_MESSAGE0,nextStatement:null,previousStatement:null})}},pm={init:function(){this.setColour(uh),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(ut.Msg.HTML_COLOUR),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},am={init:function(){this.setColour(uh),this.appendValueInput("x").setCheck(Number).appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},um={init:function(){this.setColour(uh),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SCREEN_FILL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rm={init:function(){this.setColour(uh),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_INIT_CLOCK),this.appendDummyInput().appendField(ut.Msg.MIXLY_CENTER_POS),this.appendValueInput("x").setCheck(Number).appendField("x"),this.appendValueInput("y").setCheck(Number).appendField("y"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.OLED_CIRCLE_RADIUS),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dm={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.GET_RTCTIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lm={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.SET_TIME),this.appendValueInput("h").setCheck(Number).appendField(ut.Msg.MIXLY_HOUR),this.appendValueInput("m").setCheck(Number).appendField(ut.Msg.MIXLY_MINUTE),this.appendValueInput("s").setCheck(Number).appendField(ut.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Im={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.DRAW_CLOCK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tm={init:function(){this.setColour(uh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.CLEAR_CLOCK),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mm={init:function(){this.jsonInit({colour:uh,args0:[{name:"shape",options:[[ut.Msg.MPYTHON_DISPLAY_HOLLOW,"False"],[ut.Msg.MPYTHON_DISPLAY_SOLID,"True"]],type:"field_dropdown"},{type:"input_dummy"},{name:"x",type:"input_value"},{name:"y",type:"input_value"},{name:"r",type:"input_value"},{name:"VAR",type:"input_value"}],inputsInline:!0,helpUrl:ut.Msg.mpython_HELPURL,message0:ut.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,nextStatement:null,previousStatement:null})}},hm={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER).appendField(ut.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(ut.Msg.MIXLY_DRAW_POINTER_DU),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.DRAW_POINTER_TOOLTIP)}},mm={init:function(){this.setColour(uh),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER).appendField(ut.Msg.DRAW_POINTER_ANGLE),this.appendValueInput("angle"),this.appendDummyInput().appendField(ut.Msg.MIXLY_DRAW_POINTER_DU),this.appendValueInput("VAR").appendField(ut.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.DRAW_POINTER_TOOLTIP)}},Em={init:function(){this.setColour(uh),this.appendValueInput("data").appendField(ut.Msg.OLED_BITMAP),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.OLED_BITMAP_OR_STRING),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Om={init:function(){lh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Rm={init:function(){Mh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},cm={init:function(){Ch.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},gm={init:function(){Lh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Cm={init:function(){Nh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Sm={init:function(){Dh.init.call(this),this.appendDummyInput().appendField(`(${ut.Msg.MIXLY_DEPRECATED})`),this.setWarningText(ut.Msg.MIXLY_DEPRECATED_WARNING_TEXT)}},Am=180,Lm={init:function(){this.setColour(Am),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(ut.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_LET2).appendField(new ut.FieldDropdown(Lm.OPERATORS),"OP"),this.appendValueInput("val").appendField(ut.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=ut.Msg.DISPLAY_IMAGE_LET,n=ut.Msg.DISPLAY_IMAGE_LET2,s=ut.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"]]},Nm={init:function(){this.setColour(Am),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(ut.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new ut.FieldDropdown(Nm.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":ut.Msg.MIXLY_MICROBIT_image_add,"-":ut.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[ut.Msg.MICROBIT_DISPLAY_UNION,"+"],[ut.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},Dm={init:function(){this.setColour(Am),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new ut.FieldDropdown(Dm.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_MICROBIT_IMAGE+{height:ut.Msg.MIXLY_HEIGHT,width:ut.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[ut.Msg.MIXLY_HEIGHT,"height"],[ut.Msg.MIXLY_WIDTH,"width"]]},fm={init:function(){this.setColour(Am),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RECT).appendField(new ut.FieldDropdown(fm.STATUS),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_OLED_RECT)},STATUS:[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Fm={init:function(){this.setColour(Am),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new ut.FieldDropdown(Fm.STATUS),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Pm={init:function(){this.setColour(Am),this.appendValueInput("VAR").appendField(ut.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new ut.FieldDropdown(Pm.STATUS),"OP"),this.jsonInit({message0:ut.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_DISPLAY_DRAW+ut.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[ut.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[ut.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Ym="#777777",vm={init:function(){this.setColour(Ym),this.appendDummyInput("").appendField("from ").appendField(new ut.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ut.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xm={init:function(){this.setColour(Ym),this.appendDummyInput("").appendField("import ").appendField(new ut.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bm={init:function(){this.setColour(Ym),this.appendDummyInput("").appendField(new ut.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},gE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},CE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},SE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},AE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_PROJECT).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},LE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},NE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},DE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},FE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},YE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},vE={init:function(){this.setColour(ME),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},XE={init:function(){this.setColour(ME),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},bE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},xE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ut.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},yE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+ut.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},BE={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(ME),this.appendDummyInput("").appendField(new ut.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},GE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},UE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ut.Msg.MIXLY_REQUESTS_GET).appendField(ut.Msg.MIXLY_GET_CURRENT_TIME).appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},HE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ut.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ut.Msg.MQTT_Topic).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},WE=hE,KE=mE,JE=EE,QE=OE,qE=cE,zE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(ut.Msg.MODEL_NAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(ut.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jE={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.setColour(ME),this.appendDummyInput().appendField(ut.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},ZE={init:function(){this.setColour(ME),this.appendDummyInput().appendField("Ollama "+ut.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO=225,eO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ut.Msg.MIXLY_NETWORK_MODE).appendField(new ut.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},iO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ut.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ut.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ut.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ut.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},nO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},sO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ut.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},_O={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},oO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_CONNECT+ut.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},pO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ut.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ut.Msg.MIXLY_ESP32_NETWORK_IP,1:ut.Msg.MIXLY_ESP32_NETWORK_MASK,2:ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},aO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},uO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},rO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ut.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},dO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},lO={init:function(){this.setColour(tO),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},IO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},TO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},hO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},mO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},EO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},OO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},RO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},cO={init:function(){this.setColour(tO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gO={init:function(){this.setColour(tO),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},CO={init:function(){this.appendValueInput("VAL"),this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(CO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},SO={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown(SO.METHOD),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ut.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ut.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},AO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ut.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},LO={init:function(){this.setColour(tO),this.appendDummyInput("").appendField(new ut.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},NO="#3288dd",DO={init:function(){this.setColour(NO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS).appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},fO={init:function(){this.setColour(NO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ut.Msg.blockpy_REQUESTS+ut.Msg.OLED_STRING),this.appendDummyInput("").appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},FO={init:function(){this.appendValueInput("VAL"),this.setColour(NO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(FO.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ut.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},PO={init:function(){this.setColour(NO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(ut.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},YO={init:function(){this.setColour(NO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(ut.Msg.MIXLY_EMQX_PORT).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vO={init:function(){this.setColour(NO),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(ut.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},XO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("mqtt"+ut.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},yO="#A58C5B",VO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_IS_PRESSED)}},BO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_WAS_PRESSED)}},GO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_BUTTON+ut.Msg.MIXLY_GET_PRESSES)}},UO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ut.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ut.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},wO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"],[ut.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down,freefall:ut.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},HO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},kO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},WO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField(new ut.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ut.FieldDropdown(WO.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]},KO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},JO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},QO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"left"],[ut.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ut.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ut.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ut.Msg.MIXLY_ESP32_NEAR;return i+{left:ut.Msg.TEXT_TRIM_LEFT,right:ut.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},qO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ut.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},zO={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ut.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},jO={init:function(){this.setColour(yO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},$O={init:function(){this.setColour(yO),this.appendDummyInput("").appendField("LM35"+ut.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LM35)}},ZO={init:function(){this.setColour(yO),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[ut.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[ut.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[ut.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(MS5611)","MS5611"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[ut.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[ut.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[ut.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[ut.Msg.HTML_COLOUR+"、"+ut.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+ut.Msg.MIXLY_NEXT+"、"+ut.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[ut.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[ut.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[ut.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[ut.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},tR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},eR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},iR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},nR={init:function(){this.setColour(yO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},sR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},_R={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_HELLO_XIAOZHI,"1"],[ut.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[ut.Msg.MIXLY_THE_FIRST,"3"],[ut.Msg.MIXLY_THE_SECOND,"4"],[ut.Msg.MIXLY_THE_THIRD,"5"],[ut.Msg.MIXLY_THE_FOURTH,"6"],[ut.Msg.MIXLY_THE_FIFTH,"7"],[ut.Msg.MIXLY_THE_SIXTH,"8"],[ut.Msg.MIXLY_THE_SEVENTH,"9"],[ut.Msg.MIXLY_THE_EIGHTH,"10"],[ut.Msg.MIXLY_THE_NINTH,"11"],[ut.Msg.MIXLY_THE_TENTH,"12"],[ut.Msg.MIXLY_THE_ELEVENTH,"13"],[ut.Msg.MIXLY_THE_TWELFTH,"14"],[ut.Msg.MIXLY_THE_13TH,"15"],[ut.Msg.MIXLY_THE_14TH,"16"],[ut.Msg.MIXLY_THE_15TH,"17"],[ut.Msg.MIXLY_THE_16TH,"18"],[ut.Msg.MIXLY_THE_17TH,"19"],[ut.Msg.MIXLY_THE_18TH,"20"],[ut.Msg.MIXLY_THE_19TH,"21"],[ut.Msg.MIXLY_THE_20TH,"22"],[ut.Msg.MIXLY_Turn_on_the_lights,"23"],[ut.Msg.MIXLY_Turn_off_the_lights,"24"],[ut.Msg.MIXLY_Turn_up_the_brightness,"25"],[ut.Msg.MIXLY_Turn_down_the_brightness,"26"],[ut.Msg.MIXLY_Set_it_to_red,"27"],[ut.Msg.MIXLY_Set_it_to_orange,"28"],[ut.Msg.MIXLY_Set_it_to_yellow,"29"],[ut.Msg.MIXLY_Set_it_to_green,"30"],[ut.Msg.MIXLY_Set_it_to_cyan,"31"],[ut.Msg.MIXLY_Set_it_to_blue,"32"],[ut.Msg.MIXLY_Set_it_to_purple,"33"],[ut.Msg.MIXLY_Set_it_to_white,"34"],[ut.Msg.MIXLY_Turn_on_the_fan,"35"],[ut.Msg.MIXLY_Turn_off_the_fan,"36"],[ut.Msg.MIXLY_First_gear,"37"],[ut.Msg.MIXLY_Wind_speed_second,"38"],[ut.Msg.MIXLY_Third_gear,"39"],[ut.Msg.MIXLY_Previous,"40"],[ut.Msg.MIXLY_Next_page,"41"],[ut.Msg.MIXLY_Show_smiley_face,"42"],[ut.Msg.MIXLY_Show_crying_face,"43"],[ut.Msg.MIXLY_Show_love,"44"],[ut.Msg.MIXLY_Close_display,"45"],[ut.Msg.MIXLY_Start_execution,"46"],[ut.Msg.MIXLY_FORWARD,"47"],[ut.Msg.MIXLY_BACKWARD,"48"],[ut.Msg.MIXLY_TURNLEFT,"49"],[ut.Msg.MIXLY_TURNRIGHT,"50"],[ut.Msg.MIXLY_STOP,"51"],[ut.Msg.MIXLY_Accelerate,"52"],[ut.Msg.MIXLY_retard,"53"],[ut.Msg.ROTATION_FORWARD,"54"],[ut.Msg.ROTATION_BACKWARD,"55"],[ut.Msg.MIXLY_Query_temperature,"56"],[ut.Msg.MIXLY_Query_humidity,"57"],[ut.Msg.MIXLY_Query_brightness,"58"],[ut.Msg.MIXLY_Query_sound,"59"],[ut.Msg.MIXLY_Query_time,"60"],[ut.Msg.MIXLY_Query_distance,"61"],[ut.Msg.MIXLY_Query_pressure,"62"],[ut.Msg.MIXLY_Query_key,"63"],[ut.Msg.MIXLY_Query_touch,"64"],[ut.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(ut.Msg.MIXLY_WHETHER+ut.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},oR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[ut.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[ut.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},pR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MP3_PLAY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_WIND_SPEED,"154"],[ut.Msg.MIXLY_HYETAL,"155"],[ut.Msg.MIXLY_TEMPERATURE,"156"],[ut.Msg.MIXLY_Humidity,"157"],[ut.Msg.MIXLY_Altitude,"158"],[ut.Msg.MIXLY_SOUND,"159"],[ut.Msg.MIXLY_BRIGHTNESS,"160"],[ut.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[ut.Msg.MIXLY_SERVO,"162"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[ut.Msg.MIXLY_BUTTON2,"164"],[ut.Msg.MIXLY_ESP32_TOUCH,"165"],[ut.Msg.MIXLY_PAY,"166"],[ut.Msg.MIXLY_CARSH_CHANGE,"167"],[ut.Msg.MIXLY_COUNTDOWN,"168"],[ut.Msg.MIXLY_TIMING,"169"],[ut.Msg.MIXLY_AT_THE_MOMENT,"170"],[ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[ut.Msg.MIXLY_FORWARD,"172"],[ut.Msg.MIXLY_BACKWARD,"173"],[ut.Msg.MIXLY_TURNLEFT,"174"],[ut.Msg.MIXLY_TURNRIGHT,"175"],[ut.Msg.MIXLY_STOP,"176"],[ut.Msg.MIXLY_Accelerate,"177"],[ut.Msg.MIXLY_retard,"178"],[ut.Msg.ROTATION_FORWARD,"179"],[ut.Msg.ROTATION_BACKWARD,"180"],[ut.Msg.TUPLE_JOIN,"181"],[ut.Msg.MIXLY_SHOW,"182"],[ut.Msg.MIXLY_LAMPLIGHT,"183"],[ut.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(ut.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(ut.Msg.MIXLY_UNIT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_YEAR,"117"],[ut.Msg.MIXLY_MONTH,"118"],[ut.Msg.MIXLY_DAY,"119"],[ut.Msg.MIXLY_HOUR,"120"],[ut.Msg.MIXLY_MINUTE,"121"],[ut.Msg.MIXLY_SECOND,"122"],[ut.Msg.MIXLY_WEEK2,"123"],[ut.Msg.MIXLY_RMB_UNIT,"124"],[ut.Msg.blockpy_setheading_degree,"125"],[ut.Msg.MIXLY_GEAR,"126"],[ut.Msg.MIXLY_LAYER,"127"],[ut.Msg.MIXLY_GRAM,"128"],[ut.Msg.MIXLY_METER,"129"],[ut.Msg.MIXLY_CENTIMETER,"130"],[ut.Msg.MIXLY_MILLIMETER,"131"],[ut.Msg.MIXLY_LUMEN,"132"],[ut.Msg.MIXLY_DECIBEL,"133"],[ut.Msg.MIXLY_hectopascal,"134"],[ut.Msg.MIXLY_PERCENT,"135"],[ut.Msg.MIXLY_CELSIUS,"136"],[ut.Msg.MIXLY_METER_PER_SEC,"137"],[ut.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[ut.Msg.MIXLY_SUCCESS,"140"],[ut.Msg.MIXLY_FAILED,"141"],[ut.Msg.MIXLY_WRONG,"142"],[ut.Msg.MIXLY_GOOD,"143"],[ut.Msg.MIXLY_blockpy_set_add,"144"],[ut.Msg.MIXLY_DECREASE,"145"],[ut.Msg.COLOUR_RGB_RED,"146"],[ut.Msg.COLOUR_RGB_ORANGE,"147"],[ut.Msg.COLOUR_YELLOW,"148"],[ut.Msg.COLOUR_RGB_GREEN,"149"],[ut.Msg.COLOUR_CYAN,"150"],[ut.Msg.COLOUR_RGB_BLUE,"151"],[ut.Msg.COLOUR_RGB_PURPLE,"152"],[ut.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},aR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXLY_SYSTEM+ut.Msg.MIXLY_CMD).appendField(new ut.FieldDropdown([[ut.Msg.MILXY_ENTER_WAKE_UP,"1"],[ut.Msg.MIXLY_INCREASE_VOLUME,"202"],[ut.Msg.MIXLY_REDUCE_VOLUME,"203"],[ut.Msg.MIXLY_MAX_VOLUME,"204"],[ut.Msg.MIXLY_MINIMUM,"205"],[ut.Msg.MIXLY_OPEN_RESPONSE,"206"],[ut.Msg.MIXLY_CLOSE_RESPONSE,"207"],[ut.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},uR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ut.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ut.Msg.MIXLY_ESP32_MAX30102_IR+","+ut.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ut.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ut.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},dR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},lR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+ut.Msg.HTML_COLOUR,"[2]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_IR_STRENGTH,"[1]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},IR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+"RGB"+ut.Msg.HTML_COLOUR,"0"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_RGB_RAW,"1"],[ut.Msg.MIXLY_GET_ENV_LIGHT+ut.Msg.MIXLY_BRIGHTNESS,"2"],[ut.Msg.GET_IR_STRENGTH+ut.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},TR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ut.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},MR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},mR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},ER={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},OR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" MS5611").setCheck("var"),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_REF_TO_PRESSURE),this.appendDummyInput().appendField(ut.Msg.MIXLY_CAL_TO_ALTITUDE),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MIXGOPE_FIELD+ut.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ut.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},SR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},AR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET+ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},LR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},DR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_GETTEMPERATUE)}},fR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},FR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},PR={init:function(){this.setColour(yO),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},YR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ut.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},bR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xR={init:function(){this.setColour(yO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ut.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},yR={init:function(){this.setColour(yO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_SCAN_OK,"0"],[ut.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ut.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},BR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},GR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},UR={init:function(){this.setColour(yO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+", font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},Gf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Uf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},wf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Hf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},kf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Wf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},Kf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},Jf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},Qf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},qf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},zf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},jf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},$f=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},Zf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},eF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"column",e.ORDER_ATOMIC)+", "+i+")\n"},iF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+", "+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},nF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},sF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+", "+a+")\n"}},_F=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},oF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},pF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},uF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},rF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},dF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},lF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},IF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},TF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},MF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},hF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},mF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},EF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},OF=function(t,e){e.definitions_.import_st7789="import st7789";var i=rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+", "+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+", dc_pin="+p+", cs_pin="+o+", rotation="+this.getFieldValue("rotate")+", font_address="+n+")\n"},RF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+", x="+s+", y="+_+", size="+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+", x= "+s+",y="+_+", size="+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},cF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},gF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+u+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},CF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},SF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},AF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},LF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},NF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+", lcd_width="+s+", i2c_addr="+_+")\n"},DF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},fF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", column="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", line="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},FF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},PF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},YF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+", address="+s+", font_address="+p+", types="+_+")\n"},vF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},XF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},bF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", x="+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+", center="+this.getFieldValue("center")+")\n"},yF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},BF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},GF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", y="+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+", size="+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+", speed="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+", space="+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},UF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},wF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},HF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},kF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},WF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},KF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},JF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},QF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("Python ESP32-S3"===rt.JSFuncs.getPlatform()){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var s="onboard_tft.image("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled";s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},qF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+", space="+s+", center="+_+")\n";if("educore"==i){e.definitions_["import_"+i+"_oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+", space="+s+", center="+_+")\n"},zF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var s="onboard_oled.frame("+n+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft";s="onboard_tft.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.frame("+n+")\n"}return s},jF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+", delay="+s+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";_="onboard_tft.frame("+n+", size=5 , delay="+s+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+", delay="+s+")\n"}return _},$F=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";n="onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},ZF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+", speed="+s+", space="+_+")\n"}else if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";o="onboard_tft.scroll("+n+", y=0, size=5, speed="+s+", space="+_+", color=0xffff)\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+", speed="+s+", space="+_+")\n"}return o},tP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+", y="+s+", size="+_+", speed="+o+", space="+p+", color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},eP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},iP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){const i=t.getFieldValue("image").split(".");if(2!==i.length)throw Error("pin value error");e.definitions_[`import_${i[0]}_${i[1]}`]=`from ${i[0]} import ${i[1]}`;var n=i[1]}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix."+t.getFieldValue("image")}return[n,e.ORDER_ATOMIC]},nP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},GP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+", x="+s+", y="+_+", size="+o+", space="+p+", center="+a+", color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},UP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+", size="+s+", delay="+_+", color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},wP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},HP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},kP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},WP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},KP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},JP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},QP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+", "+s+", "+_+", "+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},zP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},jP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},$P=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},ZP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+", "+p+")\nonboard_tft.show()\n"}return a},tY=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_nova"==i){e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n="onboard_tft.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"}return n},eY=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2));else{const t=s.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)}return"onboard_tft.pointern(angle="+n+")\n"},iY=QF,nY=$F,sY=dP,_Y=aP,oY=dP,pY=lP,aY=_P,uY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},rY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},dY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},pV=function(){return"control.reset()\n"},aV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},uV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},rV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},dV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},lV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},IV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},TV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},MV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},hV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},mV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},EV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},OV=function(){return"while True:\n pass\n"},RV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},cV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},gV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},CV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},SV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period="+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},AV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode=machine.Timer."+this.getFieldValue("mode")+", callback="+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},LV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},NV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},DV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},fV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},FV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},PV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},YV=NV,vV=AV,XV=LV,bV=gV,xV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},yV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},VV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},BV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},GV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},UV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},wV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},HV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},kV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},WV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},KV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},JV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},QV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},qV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},zV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+', "'+i+'")';return[s,e.ORDER_ATOMIC]},jV={};jV["飞乙"]={description:"MicroPython[ESP32C3 Bitbot]",digital_pin:rt.Profile.generate(["0-11","18-21"]),input_pin:rt.Profile.generate(["0-11","18-21"]),output_pin:rt.Profile.generate(["0-11","18-21"]),pwm_input:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),digital:rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:rt.Profile.generate(["0-11","18-21"]),pwm:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:rt.Profile.generate(["0-5"]),analog:rt.Profile.generate(["0-5"],"adc","adc"),button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-1"]),als_num:rt.Profile.generate(["0-3"])},jV["超霸大师"]={description:"MicroPython[ESP32 Mixbot]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["P","button_p"],["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-3"])},jV["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},jV["机器人大师"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["p","button_p"],["cw","button_cw"],["ccw","button_ccw"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],tone_notes:[["NOTE_C3","131"],["NOTE_D3","147"],["NOTE_E3","165"],["NOTE_F3","175"],["NOTE_G3","196"],["NOTE_A3","220"],["NOTE_B3","247"],["NOTE_C4","262"],["NOTE_D4","294"],["NOTE_E4","330"],["NOTE_F4","349"],["NOTE_G4","392"],["NOTE_A4","440"],["NOTE_B4","494"],["NOTE_C5","523"],["NOTE_D5","587"],["NOTE_E5","659"],["NOTE_F5","698"],["NOTE_G5","784"],["NOTE_A5","880"],["NOTE_B5","988"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const $V=jV,ZV=230,tB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},eB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},iB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},nB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},sB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},_B={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},oB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},pB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},aB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},uB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},rB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},dB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},lB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},IB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},TB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},MB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},hB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},mB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},EB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},OB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},RB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},cB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},gB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},CB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},SB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},AB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},LB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},NB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},DB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},fB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},FB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},PB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},YB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},vB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},XB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},xB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},yB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},BB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},wB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},HB={init:function(){this.setColour(ZV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},kB=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},WB=kB,KB=kB,JB=kB,QB=kB,qB=kB,zB=kB,jB=kB,$B=kB,ZB=kB,tG=kB,eG=kB,iG=kB,nG=kB,sG=kB,_G=kB,oG=kB,pG=kB,aG=kB,uG=kB,rG=kB,dG=kB,lG=kB,IG=kB,TG=kB,MG=kB,hG=kB,mG=kB,EG=kB,OG=kB,RG=kB,cG=kB,gG=kB,CG=kB,SG=kB;Object.assign(ut.Variables,lt),Object.assign(ut.Procedures,Su),ut.Python=Au,ut.generator=Au,rt.Profile.default={},Object.assign(rt.Profile,$V),Object.assign(rt.Profile.default,$V["ESP32 Generic"]),Object.assign(ut.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,x,w,U,Y,y,H,f,G,B,V,F,D,N,X,v,b,P,pt),Object.assign(ut.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,Z,_t,st,q,tt,ot,K,nt,it,et,J,W,k,j,z,$,Q,at)})(); \ No newline at end of file diff --git a/boards/default/python_mixpy/index.xml b/boards/default/python_mixpy/index.xml index f4b91271..4bf14b6c 100644 --- a/boards/default/python_mixpy/index.xml +++ b/boards/default/python_mixpy/index.xml @@ -1 +1 @@ -promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.8211001010100011005011001100020x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf'a','b','c','d'x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file +promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.821100101010001100501100110002110x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsemixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodtopicmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012tina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenkeyfuncUpkeyfunctina100tina90screenclickfuncclickfunctinax20y20screentimerfunc3000timerfunctina100tina90screenscreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?d:\\1.wav3d:\\1.jpgqclientEnter Your API_KEYEnter Your SECRET_KEYclient今天天气真好clientclientclientC:/mixly.jpgC:/mixpy.jpgclientclient我爱米思齐client米思齐米思皮client米思齐团队米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。client米思齐团队由一群具有共同理想的学生和老师组成,他们始终致力于为开展更好的创客教育而努力。20df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf'a','b','c','d'x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file diff --git a/boards/default/python_mixpy/main.bundle.js b/boards/default/python_mixpy/main.bundle.js index a20d0616..c09c6c50 100644 --- a/boards/default/python_mixpy/main.bundle.js +++ b/boards/default/python_mixpy/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var __webpack_modules__={131:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});const cv_read_image=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.imread("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_show_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imshow("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_write_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imwrite("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_waitkey=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.waitKey("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+")\n"},cv_destroy_all=function(e,t){t.definitions_.import_cv2="import cv2";return"cv2.destroyAllWindows()\n"},cv_line_rect=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),x2=generator.valueToCode(this,"x2",generator.ORDER_ATOMIC),y2=generator.valueToCode(this,"y2",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),direction=this.getFieldValue("DIR"),code="cv2."+direction+"("+file+",("+x1+","+y1+"),("+x2+","+y2+"),("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_text=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),data=generator.valueToCode(this,"data",generator.ORDER_ATOMIC),size=generator.valueToCode(this,"size",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),font=this.getFieldValue("font"),code="cv2.putText("+file+","+data+",("+x1+","+y1+"),cv2.FONT_HERSHEY_"+font+","+size+",("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_face_classifier=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.CascadeClassifier("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect_all=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+",minSize=("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+"),maxSize=("+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={},blocks_variables_namespaceObject={};__webpack_require__.r(blocks_variables_namespaceObject),__webpack_require__.d(blocks_variables_namespaceObject,{controls_type:()=>controls_type,controls_typeLists:()=>controls_typeLists,lists_zip:()=>lists_zip,lists_zip_container:()=>lists_zip_container,lists_zip_item:()=>lists_zip_item,unpack_iterable_object:()=>unpack_iterable_object,variables_change:()=>variables_change,variables_get:()=>variables_get,variables_global:()=>variables_global,variables_set:()=>variables_set});var control_namespaceObject={};__webpack_require__.r(control_namespaceObject),__webpack_require__.d(control_namespaceObject,{base_setup:()=>base_setup,controls_delay:()=>controls_delay,controls_end_program:()=>controls_end_program,controls_except:()=>controls_except,controls_finally:()=>controls_finally,controls_flow_statements:()=>controls_flow_statements,controls_for:()=>controls_for,controls_forEach:()=>controls_forEach,controls_for_range:()=>controls_for_range,controls_if:()=>controls_if,controls_if_else:()=>controls_if_else,controls_if_elseif:()=>controls_if_elseif,controls_if_if:()=>controls_if_if,controls_lambda:()=>controls_lambda,controls_main:()=>controls_main,controls_pass:()=>controls_pass,controls_range:()=>controls_range,controls_repeat_ext:()=>controls_repeat_ext,controls_thread:()=>controls_thread,controls_try:()=>controls_try,controls_try_finally:()=>controls_try_finally,controls_whileUntil:()=>controls_whileUntil,datetime_fromtimestamp:()=>datetime_fromtimestamp,do_while:()=>do_while,garbage_collection:()=>garbage_collection,gene_unique_identifier:()=>gene_unique_identifier,get_mem_alloc:()=>get_mem_alloc,get_mem_free:()=>get_mem_free,get_unique_identifier:()=>get_unique_identifier});var math_namespaceObject={};__webpack_require__.r(math_namespaceObject),__webpack_require__.d(math_namespaceObject,{base_map:()=>base_map,generate_cartesian_product:()=>generate_cartesian_product,math_arithmetic:()=>math_arithmetic,math_bit:()=>math_bit,math_constant:()=>math_constant,math_constant_mp:()=>math_constant_mp,math_constrain:()=>math_constrain,math_dec:()=>math_dec,math_indexer_number:()=>math_indexer_number,math_map:()=>math_map,math_max_min:()=>math_max_min,math_number:()=>math_number,math_number_base_conversion:()=>math_number_base_conversion,math_random:()=>math_random,math_random_seed:()=>math_random_seed,math_round:()=>math_round,math_selfcalcu:()=>math_selfcalcu,math_to_int:()=>math_to_int,math_trig:()=>math_trig,text_to_number:()=>text_to_number,text_to_number_skulpt:()=>text_to_number_skulpt,turn_to_int:()=>turn_to_int});var text_namespaceObject={};__webpack_require__.r(text_namespaceObject),__webpack_require__.d(text_namespaceObject,{ascii_to_char:()=>ascii_to_char,char_to_ascii:()=>char_to_ascii,number_to_text:()=>number_to_text,os_system:()=>os_system,text:()=>text_text,text_capital:()=>text_capital,text_center:()=>text_center,text_char:()=>text_char,text_char_at:()=>text_char_at,text_char_at2:()=>text_char_at2,text_char_at3:()=>text_char_at3,text_compareTo:()=>text_compareTo,text_compare_to:()=>text_compare_to,text_create_with_container:()=>text_create_with_container,text_create_with_item:()=>text_create_with_item,text_encode:()=>text_encode,text_equals_starts_ends:()=>text_equals_starts_ends,text_eval:()=>text_eval,text_find:()=>text_find,text_format:()=>text_format,text_format_noreturn:()=>text_format_noreturn,text_join:()=>text_join,text_join_seq:()=>text_join_seq,text_length:()=>text_length,text_random_char:()=>text_random_char,text_replace:()=>text_replace,text_split:()=>text_split,text_strip:()=>text_strip,text_substring:()=>text_substring,text_substring2:()=>text_substring2,text_substring3:()=>text_substring3,text_textarea:()=>text_textarea});var lists_namespaceObject={};__webpack_require__.r(lists_namespaceObject),__webpack_require__.d(lists_namespaceObject,{ENUMERATE:()=>ENUMERATE,content_in_lists:()=>content_in_lists,enumerate:()=>enumerate,list_many_input:()=>list_many_input,list_tolist:()=>list_tolist,list_tolist2:()=>list_tolist2,list_trig:()=>list_trig,lists_2d_get_col_row_data:()=>lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_append_extend,lists_change_to:()=>lists_change_to,lists_change_to_general:()=>lists_change_to_general,lists_clear:()=>lists_clear,lists_create_with:()=>lists_create_with,lists_create_with2:()=>lists_create_with2,lists_create_with_container:()=>lists_create_with_container,lists_create_with_item:()=>lists_create_with_item,lists_create_with_noreturn:()=>lists_create_with_noreturn,lists_create_with_text:()=>lists_create_with_text,lists_create_with_text2:()=>lists_create_with_text2,lists_del_general:()=>lists_del_general,lists_find:()=>lists_find,lists_getIndex3:()=>lists_getIndex3,lists_getSublist3:()=>lists_getSublist3,lists_get_index:()=>lists_get_index,lists_get_random_item:()=>lists_get_random_item,lists_get_random_sublist:()=>lists_get_random_sublist,lists_get_sublist:()=>lists_get_sublist,lists_insert_value:()=>lists_insert_value,lists_insert_value2:()=>lists_insert_value2,lists_pop:()=>lists_pop,lists_remove_at:()=>lists_remove_at,lists_remove_at2:()=>lists_remove_at2,lists_reverse:()=>lists_reverse,lists_setIndex3:()=>lists_setIndex3,lists_set_index:()=>lists_set_index,lists_sort:()=>lists_sort});var dicts_namespaceObject={};__webpack_require__.r(dicts_namespaceObject),__webpack_require__.d(dicts_namespaceObject,{dicts_add_change_del:()=>dicts_add_change_del,dicts_add_or_change:()=>dicts_add_or_change,dicts_clear:()=>dicts_clear,dicts_create_with:()=>dicts_create_with,dicts_create_with_container:()=>dicts_create_with_container,dicts_create_with_item:()=>dicts_create_with_item,dicts_create_with_noreturn:()=>dicts_create_with_noreturn,dicts_deldict:()=>dicts_deldict,dicts_delete:()=>dicts_delete,dicts_get:()=>dicts_get,dicts_get_default:()=>dicts_get_default,dicts_items:()=>dicts_items,dicts_keys:()=>dicts_keys,dicts_length:()=>dicts_length,dicts_pop:()=>dicts_pop,dicts_setdefault:()=>dicts_setdefault,dicts_to_json:()=>dicts_to_json,dicts_to_json2:()=>dicts_to_json2,dicts_to_to:()=>dicts_to_to,dicts_todict:()=>dicts_todict,dicts_update:()=>dicts_update,dicts_values:()=>dicts_values,json_to_dicts:()=>json_to_dicts});var logic_namespaceObject={};__webpack_require__.r(logic_namespaceObject),__webpack_require__.d(logic_namespaceObject,{logic_boolean:()=>logic_boolean,logic_compare:()=>logic_compare,logic_compare_continous:()=>logic_compare_continous,logic_is:()=>logic_is,logic_is_in:()=>logic_is_in,logic_negate:()=>logic_negate,logic_null:()=>logic_null,logic_operation:()=>logic_operation,logic_tobool:()=>logic_tobool,logic_true_or_false:()=>logic_true_or_false});var storage_namespaceObject={};__webpack_require__.r(storage_namespaceObject),__webpack_require__.d(storage_namespaceObject,{sdcard_mount:()=>sdcard_mount,sdcard_use_spi_init:()=>sdcard_use_spi_init,storage_can_write_ornot:()=>storage_can_write_ornot,storage_change_dir:()=>storage_change_dir,storage_close_file:()=>storage_close_file,storage_delete_file:()=>storage_delete_file,storage_file_seek:()=>storage_file_seek,storage_file_tell:()=>storage_file_tell,storage_file_write:()=>storage_file_write,storage_fileopen:()=>storage_fileopen,storage_fileopen_new:()=>storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_fileopen_new_encoding,storage_get_a_line:()=>storage_get_a_line,storage_get_contents:()=>storage_get_contents,storage_get_contents_without_para:()=>storage_get_contents_without_para,storage_get_current_dir:()=>storage_get_current_dir,storage_get_file_size:()=>storage_get_file_size,storage_get_filename:()=>storage_get_filename,storage_is_file:()=>storage_is_file,storage_list_all_files:()=>storage_list_all_files,storage_make_dir:()=>storage_make_dir,storage_open_file_with_os:()=>storage_open_file_with_os,storage_rename:()=>storage_rename});var procedures_namespaceObject={};__webpack_require__.r(procedures_namespaceObject),__webpack_require__.d(procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_callnoreturn,procedures_callreturn:()=>procedures_callreturn,procedures_defnoreturn:()=>procedures_defnoreturn,procedures_defreturn:()=>procedures_defreturn,procedures_ifreturn:()=>procedures_ifreturn,procedures_mutatorarg:()=>procedures_mutatorarg,procedures_mutatorcontainer:()=>procedures_mutatorcontainer,procedures_return:()=>procedures_return});var tuple_namespaceObject={};__webpack_require__.r(tuple_namespaceObject),__webpack_require__.d(tuple_namespaceObject,{tuple_change_to:()=>tuple_change_to,tuple_create_with:()=>tuple_create_with,tuple_create_with_container:()=>tuple_create_with_container,tuple_create_with_item:()=>tuple_create_with_item,tuple_create_with_noreturn:()=>tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_create_with_text_return,tuple_del:()=>tuple_del,tuple_find:()=>tuple_find,tuple_getIndex:()=>tuple_getIndex,tuple_getSublist:()=>tuple_getSublist,tuple_get_random_item:()=>tuple_get_random_item,tuple_get_sublist:()=>tuple_get_sublist,tuple_input:()=>tuple_input,tuple_join:()=>tuple_join,tuple_length:()=>tuple_length,tuple_max:()=>tuple_max,tuple_totuple:()=>tuple_totuple,tuple_trig:()=>tuple_trig});var set_namespaceObject={};__webpack_require__.r(set_namespaceObject),__webpack_require__.d(set_namespaceObject,{set_add_discard:()=>set_add_discard,set_clear:()=>set_clear,set_create_with:()=>set_create_with,set_create_with_container:()=>set_create_with_container,set_create_with_item:()=>set_create_with_item,set_create_with_text_return:()=>set_create_with_text_return,set_length:()=>set_length,set_operate:()=>set_operate,set_operate_update:()=>set_operate_update,set_pop:()=>set_pop,set_sub:()=>set_sub,set_toset:()=>set_toset,set_update:()=>set_update});var html_namespaceObject={};__webpack_require__.r(html_namespaceObject),__webpack_require__.d(html_namespaceObject,{html_content:()=>html_content,html_content_more:()=>html_content_more,html_document:()=>html_document,html_form:()=>html_form,html_head_body:()=>html_head_body,html_style:()=>html_style,html_style_color:()=>html_style_color,html_style_content:()=>html_style_content,html_text:()=>html_text,html_title:()=>html_title});var utility_namespaceObject={};__webpack_require__.r(utility_namespaceObject),__webpack_require__.d(utility_namespaceObject,{attribute_access:()=>attribute_access,function_call:()=>function_call,function_call_container:()=>function_call_container,function_call_item:()=>function_call_item,raw_block:()=>raw_block,raw_empty:()=>raw_empty,raw_expression:()=>raw_expression,raw_table:()=>raw_table,text_comment:()=>text_comment,text_print_multiple:()=>text_print_multiple,text_print_multiple_container:()=>text_print_multiple_container,text_print_multiple_item:()=>text_print_multiple_item,type_check:()=>type_check});var generators_variables_namespaceObject={};__webpack_require__.r(generators_variables_namespaceObject),__webpack_require__.d(generators_variables_namespaceObject,{controls_type:()=>variables_controls_type,controls_typeLists:()=>variables_controls_typeLists,lists_zip:()=>variables_lists_zip,unpack_iterable_object:()=>variables_unpack_iterable_object,variables_change:()=>variables_variables_change,variables_get:()=>variables_variables_get,variables_global:()=>variables_variables_global,variables_set:()=>variables_variables_set});var generators_control_namespaceObject={};__webpack_require__.r(generators_control_namespaceObject),__webpack_require__.d(generators_control_namespaceObject,{Panic_with_status_code:()=>Panic_with_status_code,base_setup:()=>control_base_setup,controls_delay:()=>control_controls_delay,controls_flow_statements:()=>control_controls_flow_statements,controls_for:()=>control_controls_for,controls_forEach:()=>control_controls_forEach,controls_for_range:()=>control_controls_for_range,controls_if:()=>control_controls_if,controls_interrupts:()=>controls_interrupts,controls_lambda:()=>control_controls_lambda,controls_main:()=>control_controls_main,controls_millis:()=>controls_millis,controls_nointerrupts:()=>controls_nointerrupts,controls_pass:()=>control_controls_pass,controls_range:()=>control_controls_range,controls_repeat:()=>controls_repeat,controls_repeat_ext:()=>control_controls_repeat_ext,controls_thread:()=>control_controls_thread,controls_try_finally:()=>control_controls_try_finally,controls_whileUntil:()=>control_controls_whileUntil,datetime_fromtimestamp:()=>control_datetime_fromtimestamp,do_while:()=>control_do_while,garbage_collection:()=>control_garbage_collection,gene_unique_identifier:()=>control_gene_unique_identifier,get_mem_alloc:()=>control_get_mem_alloc,get_mem_free:()=>control_get_mem_free,get_unique_identifier:()=>control_get_unique_identifier,reset:()=>control_reset,time_sleep:()=>time_sleep});var generators_math_namespaceObject={};__webpack_require__.r(generators_math_namespaceObject),__webpack_require__.d(generators_math_namespaceObject,{base_map:()=>math_base_map,generate_cartesian_product:()=>math_generate_cartesian_product,math_arithmetic:()=>math_math_arithmetic,math_bit:()=>math_math_bit,math_constant:()=>math_math_constant,math_constant_mp:()=>math_math_constant_mp,math_constrain:()=>math_math_constrain,math_dec:()=>math_math_dec,math_indexer_number:()=>math_math_indexer_number,math_map:()=>math_math_map,math_max_min:()=>math_math_max_min,math_number:()=>math_math_number,math_number_base_conversion:()=>math_math_number_base_conversion,math_random:()=>math_math_random,math_random_seed:()=>math_math_random_seed,math_round:()=>math_math_round,math_selfcalcu:()=>math_math_selfcalcu,math_single:()=>math_single,math_to_int:()=>math_math_to_int,math_trig:()=>math_math_trig,text_to_number:()=>math_text_to_number,text_to_number_skulpt:()=>math_text_to_number_skulpt,turn_to_int:()=>math_turn_to_int});var generators_text_namespaceObject={};__webpack_require__.r(generators_text_namespaceObject),__webpack_require__.d(generators_text_namespaceObject,{ascii_to_char:()=>text_ascii_to_char,char_to_ascii:()=>text_char_to_ascii,number_to_text:()=>text_number_to_text,os_system:()=>text_os_system,text:()=>generators_text_text,text_capital:()=>text_text_capital,text_center:()=>text_text_center,text_char:()=>text_text_char,text_char_at:()=>text_text_char_at,text_char_at2:()=>text_text_char_at2,text_char_at3:()=>text_text_char_at3,text_compareTo:()=>text_text_compareTo,text_compare_to:()=>text_text_compare_to,text_encode:()=>text_text_encode,text_equals_starts_ends:()=>text_text_equals_starts_ends,text_eval:()=>text_text_eval,text_find:()=>text_text_find,text_format:()=>text_text_format,text_format_noreturn:()=>text_text_format_noreturn,text_join:()=>text_text_join,text_join_seq:()=>text_text_join_seq,text_length:()=>text_text_length,text_random_char:()=>text_text_random_char,text_replace:()=>text_text_replace,text_split:()=>text_text_split,text_strip:()=>text_text_strip,text_substring:()=>text_text_substring,text_substring2:()=>text_text_substring2,text_substring3:()=>text_text_substring3,text_textarea:()=>text_text_textarea});var generators_lists_namespaceObject={};__webpack_require__.r(generators_lists_namespaceObject),__webpack_require__.d(generators_lists_namespaceObject,{content_in_lists:()=>lists_content_in_lists,enumerate:()=>lists_enumerate,list_many_input:()=>lists_list_many_input,list_tolist:()=>lists_list_tolist,list_tolist2:()=>lists_list_tolist2,list_trig:()=>lists_list_trig,lists_2d_get_col_row_data:()=>lists_lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_lists_append_extend,lists_change_to:()=>lists_lists_change_to,lists_change_to_general:()=>lists_lists_change_to_general,lists_clear:()=>lists_lists_clear,lists_create_with:()=>lists_lists_create_with,lists_create_with2:()=>lists_lists_create_with2,lists_create_with_noreturn:()=>lists_lists_create_with_noreturn,lists_create_with_text:()=>lists_lists_create_with_text,lists_create_with_text2:()=>lists_lists_create_with_text2,lists_del_general:()=>lists_lists_del_general,lists_find:()=>lists_lists_find,lists_getIndex3:()=>lists_lists_getIndex3,lists_getSublist3:()=>lists_lists_getSublist3,lists_get_index:()=>lists_lists_get_index,lists_get_random_item:()=>lists_lists_get_random_item,lists_get_random_sublist:()=>lists_lists_get_random_sublist,lists_get_sublist:()=>lists_lists_get_sublist,lists_insert_value:()=>lists_lists_insert_value,lists_insert_value2:()=>lists_lists_insert_value2,lists_pop:()=>lists_lists_pop,lists_remove_at:()=>lists_lists_remove_at,lists_remove_at2:()=>lists_lists_remove_at2,lists_reverse:()=>lists_lists_reverse,lists_setIndex3:()=>lists_lists_setIndex3,lists_set_index:()=>lists_lists_set_index,lists_sort:()=>lists_lists_sort});var generators_dicts_namespaceObject={};__webpack_require__.r(generators_dicts_namespaceObject),__webpack_require__.d(generators_dicts_namespaceObject,{dicts_add_change_del:()=>dicts_dicts_add_change_del,dicts_add_or_change:()=>dicts_dicts_add_or_change,dicts_clear:()=>dicts_dicts_clear,dicts_create_with:()=>dicts_dicts_create_with,dicts_create_with_noreturn:()=>dicts_dicts_create_with_noreturn,dicts_deldict:()=>dicts_dicts_deldict,dicts_delete:()=>dicts_dicts_delete,dicts_get:()=>dicts_dicts_get,dicts_get_default:()=>dicts_dicts_get_default,dicts_items:()=>dicts_dicts_items,dicts_keys:()=>dicts_dicts_keys,dicts_length:()=>dicts_dicts_length,dicts_pop:()=>dicts_dicts_pop,dicts_setdefault:()=>dicts_dicts_setdefault,dicts_to_json:()=>dicts_dicts_to_json,dicts_to_json2:()=>dicts_dicts_to_json2,dicts_to_to:()=>dicts_dicts_to_to,dicts_todict:()=>dicts_dicts_todict,dicts_update:()=>dicts_dicts_update,dicts_values:()=>dicts_dicts_values,json_to_dicts:()=>dicts_json_to_dicts});var generators_logic_namespaceObject={};__webpack_require__.r(generators_logic_namespaceObject),__webpack_require__.d(generators_logic_namespaceObject,{logic_boolean:()=>logic_logic_boolean,logic_compare:()=>logic_logic_compare,logic_compare_continous:()=>logic_logic_compare_continous,logic_is:()=>logic_logic_is,logic_is_in:()=>logic_logic_is_in,logic_negate:()=>logic_logic_negate,logic_null:()=>logic_logic_null,logic_operation:()=>logic_logic_operation,logic_tobool:()=>logic_logic_tobool,logic_true_or_false:()=>logic_logic_true_or_false});var generators_storage_namespaceObject={};__webpack_require__.r(generators_storage_namespaceObject),__webpack_require__.d(generators_storage_namespaceObject,{sdcard_mount:()=>storage_sdcard_mount,sdcard_use_spi_init:()=>storage_sdcard_use_spi_init,storage_can_write_ornot:()=>storage_storage_can_write_ornot,storage_change_dir:()=>storage_storage_change_dir,storage_close_file:()=>storage_storage_close_file,storage_delete_file:()=>storage_storage_delete_file,storage_file_seek:()=>storage_storage_file_seek,storage_file_tell:()=>storage_storage_file_tell,storage_file_write:()=>storage_storage_file_write,storage_fileopen:()=>storage_storage_fileopen,storage_fileopen_new:()=>storage_storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_storage_fileopen_new_encoding,storage_get_a_line:()=>storage_storage_get_a_line,storage_get_contents:()=>storage_storage_get_contents,storage_get_contents_without_para:()=>storage_storage_get_contents_without_para,storage_get_current_dir:()=>storage_storage_get_current_dir,storage_get_file_size:()=>storage_storage_get_file_size,storage_get_filename:()=>storage_storage_get_filename,storage_is_file:()=>storage_storage_is_file,storage_list_all_files:()=>storage_storage_list_all_files,storage_make_dir:()=>storage_storage_make_dir,storage_open_file_with_os:()=>storage_storage_open_file_with_os,storage_rename:()=>storage_storage_rename});var generators_procedures_namespaceObject={};__webpack_require__.r(generators_procedures_namespaceObject),__webpack_require__.d(generators_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_procedures_callnoreturn,procedures_callreturn:()=>procedures_procedures_callreturn,procedures_defnoreturn:()=>procedures_procedures_defnoreturn,procedures_defreturn:()=>procedures_procedures_defreturn,procedures_ifreturn:()=>procedures_procedures_ifreturn,procedures_return:()=>procedures_procedures_return});var generators_tuple_namespaceObject={};__webpack_require__.r(generators_tuple_namespaceObject),__webpack_require__.d(generators_tuple_namespaceObject,{tuple_change_to:()=>tuple_tuple_change_to,tuple_create_with:()=>tuple_tuple_create_with,tuple_create_with_noreturn:()=>tuple_tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_tuple_create_with_text_return,tuple_del:()=>tuple_tuple_del,tuple_find:()=>tuple_tuple_find,tuple_getIndex:()=>tuple_tuple_getIndex,tuple_getSublist:()=>tuple_tuple_getSublist,tuple_get_random_item:()=>tuple_tuple_get_random_item,tuple_get_sublist:()=>tuple_tuple_get_sublist,tuple_input:()=>tuple_tuple_input,tuple_join:()=>tuple_tuple_join,tuple_length:()=>tuple_tuple_length,tuple_max:()=>tuple_tuple_max,tuple_totuple:()=>tuple_tuple_totuple,tuple_trig:()=>tuple_tuple_trig});var generators_set_namespaceObject={};__webpack_require__.r(generators_set_namespaceObject),__webpack_require__.d(generators_set_namespaceObject,{set_add_discard:()=>set_set_add_discard,set_clear:()=>set_set_clear,set_create_with:()=>set_set_create_with,set_create_with_text_return:()=>set_set_create_with_text_return,set_length:()=>set_set_length,set_operate:()=>set_set_operate,set_operate_update:()=>set_set_operate_update,set_pop:()=>set_set_pop,set_sub:()=>set_set_sub,set_toset:()=>set_set_toset,set_update:()=>set_set_update});var generators_html_namespaceObject={};__webpack_require__.r(generators_html_namespaceObject),__webpack_require__.d(generators_html_namespaceObject,{html_content:()=>html_html_content,html_content_more:()=>html_html_content_more,html_document:()=>html_html_document,html_form:()=>html_html_form,html_head_body:()=>html_html_head_body,html_style:()=>html_html_style,html_style_content:()=>html_html_style_content,html_text:()=>html_html_text,html_title:()=>html_html_title});var generators_utility_namespaceObject={};__webpack_require__.r(generators_utility_namespaceObject),__webpack_require__.d(generators_utility_namespaceObject,{attribute_access:()=>utility_attribute_access,function_call:()=>utility_function_call,raw_block:()=>utility_raw_block,raw_empty:()=>utility_raw_empty,raw_expression:()=>utility_raw_expression,raw_table:()=>utility_raw_table,type_check:()=>utility_type_check});var ai_namespaceObject={};__webpack_require__.r(ai_namespaceObject),__webpack_require__.d(ai_namespaceObject,{AI_ChooseAndGet:()=>AI_ChooseAndGet,AI_Face_match:()=>AI_Face_match,AI_ImageClassify:()=>AI_ImageClassify,AI_ImageClassify_Func:()=>AI_ImageClassify_Func,AI_Nlp:()=>AI_Nlp,AI_Nlp_Func:()=>AI_Nlp_Func,AI_Nlp_Func_sim:()=>AI_Nlp_Func_sim,AI_Nlp_Sim:()=>AI_Nlp_Sim,AI_Nlp_Topic:()=>AI_Nlp_Topic,AI_Nlp_newsSummary:()=>AI_Nlp_newsSummary,AI_Ocr:()=>AI_Ocr,AI_Ocr_Func:()=>AI_Ocr_Func,AI_Speech_asr:()=>AI_Speech_asr,AI_Speech_synthesis:()=>AI_Speech_synthesis,AI_audio:()=>AI_audio,AI_client:()=>AI_client,AI_photo:()=>AI_photo,AI_result:()=>AI_result});var algorithm_namespaceObject={};__webpack_require__.r(algorithm_namespaceObject),__webpack_require__.d(algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_add_path,algorithm_add_school:()=>algorithm_add_school,algorithm_all_books:()=>algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_book_scale,algorithm_check_feet:()=>algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_color_seclet,algorithm_current_school:()=>algorithm_current_school,algorithm_del_path:()=>algorithm_del_path,algorithm_delete_book:()=>algorithm_delete_book,algorithm_delete_books:()=>algorithm_delete_books,algorithm_delete_books2:()=>algorithm_delete_books2,algorithm_divide_books:()=>algorithm_divide_books,algorithm_find_path:()=>algorithm_find_path,algorithm_first_book:()=>algorithm_first_book,algorithm_fz_calc:()=>algorithm_fz_calc,algorithm_fz_calc_first_min:()=>algorithm_fz_calc_first_min,algorithm_fz_compare:()=>algorithm_fz_compare,algorithm_fz_move:()=>algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_fz_set_min,algorithm_get_book_num:()=>algorithm_get_book_num,algorithm_get_current_location:()=>algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_init_jttl,algorithm_move_recent:()=>algorithm_move_recent,algorithm_new_path:()=>algorithm_new_path,algorithm_next_book:()=>algorithm_next_book,algorithm_no_left:()=>algorithm_no_left,algorithm_no_path:()=>algorithm_no_path,algorithm_no_ring2:()=>algorithm_no_ring2,algorithm_not_home:()=>algorithm_not_home,algorithm_not_school:()=>algorithm_not_school,algorithm_number_add:()=>algorithm_number_add,algorithm_number_zero:()=>algorithm_number_zero,algorithm_prepare:()=>algorithm_prepare,algorithm_prepare2:()=>algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_print_book2,algorithm_print_divide:()=>algorithm_print_divide,algorithm_print_jttl_answer:()=>algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_print_number,algorithm_print_path:()=>algorithm_print_path,algorithm_print_path2:()=>algorithm_print_path2,algorithm_print_sequence:()=>algorithm_print_sequence,algorithm_rabbit_add:()=>algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_return_path,algorithm_set_path:()=>algorithm_set_path,algorithm_two_left:()=>algorithm_two_left,algorithm_void_path:()=>algorithm_void_path,algorithm_yes_ring2:()=>algorithm_yes_ring2,hanoi_init:()=>hanoi_init,hanoi_init_offline:()=>hanoi_init_offline,hanoi_move:()=>hanoi_move});var communicate_namespaceObject={};__webpack_require__.r(communicate_namespaceObject),__webpack_require__.d(communicate_namespaceObject,{requests_attribute:()=>requests_attribute,requests_get:()=>requests_get,requests_get_old:()=>requests_get_old,requests_method:()=>requests_method,requests_post:()=>requests_post});var cv_namespaceObject={};__webpack_require__.r(cv_namespaceObject),__webpack_require__.d(cv_namespaceObject,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});var data_namespaceObject={};__webpack_require__.r(data_namespaceObject),__webpack_require__.d(data_namespaceObject,{array_create:()=>array_create,array_toarray:()=>array_toarray,dataframe_aggregate_func:()=>dataframe_aggregate_func,dataframe_create:()=>dataframe_create,dataframe_create_from_index:()=>dataframe_create_from_index,dataframe_create_from_one_index:()=>dataframe_create_from_one_index,dataframe_fillna:()=>dataframe_fillna,dataframe_get:()=>dataframe_get,dataframe_groupby:()=>dataframe_groupby,dataframe_head_tail:()=>dataframe_head_tail,dataframe_info:()=>dataframe_info,dataframe_median:()=>dataframe_median,dataframe_select:()=>dataframe_select,dataframe_sort_values:()=>dataframe_sort_values,matrix_multiplication:()=>matrix_multiplication,matrix_transpose:()=>matrix_transpose,numpy_argmin_template_match:()=>numpy_argmin_template_match,numpy_astype:()=>numpy_astype,numpy_c_:()=>numpy_c_,numpy_dot:()=>numpy_dot,numpy_linalg_det:()=>numpy_linalg_det,numpy_linalg_inv:()=>numpy_linalg_inv,numpy_max:()=>numpy_max,numpy_mean:()=>numpy_mean,numpy_mean_digit:()=>numpy_mean_digit,numpy_min:()=>numpy_min,numpy_ones:()=>numpy_ones,numpy_random_random:()=>numpy_random_random,numpy_reshape:()=>numpy_reshape,numpy_shape:()=>numpy_shape,numpy_size:()=>numpy_size,numpy_square:()=>numpy_square,numpy_std:()=>numpy_std,numpy_sum:()=>numpy_sum,numpy_trig:()=>numpy_trig,pandas_drop_columns:()=>pandas_drop_columns,pandas_dropna:()=>pandas_dropna,pandas_readcsv:()=>pandas_readcsv,pl_axes:()=>pl_axes,pl_bar:()=>pl_bar,pl_hist:()=>pl_hist,pl_label:()=>pl_label,pl_legend:()=>pl_legend,pl_pie:()=>pl_pie,pl_plot:()=>pl_plot,pl_plot_bar:()=>pl_plot_bar,pl_plot_easy:()=>pl_plot_easy,pl_plot_scatter:()=>pl_plot_scatter,pl_plot_xy:()=>pl_plot_xy,pl_savefig:()=>pl_savefig,pl_show:()=>pl_show,pl_subplot:()=>pl_subplot,pl_text:()=>pl_text,pl_ticks:()=>pl_ticks,pl_title:()=>pl_title,plot_axes:()=>plot_axes,plot_bar:()=>plot_bar,plot_cla:()=>plot_cla,plot_hist:()=>plot_hist,plot_label:()=>plot_label,plot_legend:()=>plot_legend,plot_pie:()=>plot_pie,plot_plot:()=>plot_plot,plot_plot_bar:()=>plot_plot_bar,plot_plot_easy:()=>plot_plot_easy,plot_plot_scatter:()=>plot_plot_scatter,plot_plot_xy:()=>plot_plot_xy,plot_savefig:()=>plot_savefig,plot_show:()=>plot_show,plot_subplot:()=>plot_subplot,plot_text:()=>plot_text,plot_ticks:()=>plot_ticks,plot_title:()=>plot_title,py_sum:()=>py_sum,pylab_imshow:()=>pylab_imshow,series_create:()=>series_create,series_create_from_index:()=>series_create_from_index,series_create_from_text:()=>series_create_from_text,series_get_num:()=>series_get_num,series_index_value:()=>series_index_value});var datastructure_namespaceObject={};__webpack_require__.r(datastructure_namespaceObject),__webpack_require__.d(datastructure_namespaceObject,{ds_add_node_by_attr:()=>ds_add_node_by_attr,ds_add_node_by_name:()=>ds_add_node_by_name,ds_create_linkedlist:()=>ds_create_linkedlist,ds_create_linkedlist_container:()=>ds_create_linkedlist_container,ds_create_linkedlist_item:()=>ds_create_linkedlist_item,ds_create_node:()=>ds_create_node,ds_del_node_by_attr:()=>ds_del_node_by_attr,ds_del_node_by_name:()=>ds_del_node_by_name,ds_get_node_attr:()=>ds_get_node_attr,ds_reverse_linkedlist:()=>ds_reverse_linkedlist,ds_set_node_attr:()=>ds_set_node_attr});var factory_namespaceObject={};__webpack_require__.r(factory_namespaceObject),__webpack_require__.d(factory_namespaceObject,{factory_block:()=>factory_block,factory_block_return:()=>factory_block_return,factory_block_return_with_textarea:()=>factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_callMethod_noreturn,factory_callMethod_return:()=>factory_callMethod_return,factory_create_with_container:()=>factory_create_with_container,factory_create_with_item:()=>factory_create_with_item,factory_declare:()=>factory_declare,factory_from_import:()=>factory_from_import,factory_function_noreturn:()=>factory_function_noreturn,factory_function_return:()=>factory_function_return,factory_import:()=>factory_import});var hardware_namespaceObject={};__webpack_require__.r(hardware_namespaceObject),__webpack_require__.d(hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_arduino_start,inout_highlow:()=>inout_highlow});var inout_namespaceObject={};__webpack_require__.r(inout_namespaceObject),__webpack_require__.d(inout_namespaceObject,{inout_input:()=>inout_input,inout_print:()=>inout_print,inout_print_container:()=>inout_print_container,inout_print_end:()=>inout_print_end,inout_print_inline:()=>inout_print_inline,inout_print_item:()=>inout_print_item,inout_print_many:()=>inout_print_many,inout_type_input:()=>inout_type_input,pyinout_type_input:()=>pyinout_type_input});var iot_namespaceObject={};__webpack_require__.r(iot_namespaceObject),__webpack_require__.d(iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>IOT_EMQX_PING,IOT_FORMATTING:()=>IOT_FORMATTING,IOT_FORMAT_STRING:()=>IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>IOT_MIXIO_UNSUBSCRIBE,iot_checkonenet:()=>iot_checkonenet,iot_client_onboard:()=>iot_client_onboard,iot_create_with_item:()=>iot_create_with_item,iot_http_client:()=>iot_http_client,iot_http_data:()=>iot_http_data,iot_mixio_check:()=>iot_mixio_check,iot_mixio_connect:()=>iot_mixio_connect,iot_mixio_connect_only:()=>iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_mixio_format_topic,iot_mixly_key:()=>iot_mixly_key,iot_mixly_key_py:()=>iot_mixly_key_py,iot_mqtt_client:()=>iot_mqtt_client,iot_mqtt_data:()=>iot_mqtt_data,iot_onenet_check:()=>iot_onenet_check,iot_onenet_connect:()=>iot_onenet_connect,iot_onenet_disconnect:()=>iot_onenet_disconnect,iot_onenet_publish:()=>iot_onenet_publish,iot_onenet_publish_dict:()=>iot_onenet_publish_dict,iot_onenetconnect:()=>iot_onenetconnect,iot_onenetdisconnect:()=>iot_onenetdisconnect,iot_publish:()=>iot_publish,iot_publish_container:()=>iot_publish_container,iot_publish_item:()=>iot_publish_item});var pins_namespaceObject={};__webpack_require__.r(pins_namespaceObject),__webpack_require__.d(pins_namespaceObject,{pins_analog_read:()=>pins_analog_read,pins_analog_write:()=>pins_analog_write,pins_digital_read:()=>pins_digital_read,pins_digital_write:()=>pins_digital_write});var serial_namespaceObject={};__webpack_require__.r(serial_namespaceObject),__webpack_require__.d(serial_namespaceObject,{serial_close:()=>serial_close,serial_open:()=>serial_open,serial_read_b:()=>serial_read_b,serial_write:()=>serial_write});var sklearn_namespaceObject={};__webpack_require__.r(sklearn_namespaceObject),__webpack_require__.d(sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_KMeans,sklearn_KMeans_fit:()=>sklearn_KMeans_fit,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_coef_intercept,sklearn_data_target:()=>sklearn_data_target,sklearn_fit:()=>sklearn_fit,sklearn_fit_no_target:()=>sklearn_fit_no_target,sklearn_load:()=>sklearn_load,sklearn_make_blobs:()=>sklearn_make_blobs,sklearn_make_classification:()=>sklearn_make_classification,sklearn_make_regression:()=>sklearn_make_regression,sklearn_pca:()=>sklearn_pca,sklearn_pca_fit_transform:()=>sklearn_pca_fit_transform,sklearn_predict:()=>sklearn_predict,sklearn_save_load_model:()=>sklearn_save_load_model,sklearn_score:()=>sklearn_score,sklearn_score_no_target:()=>sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_train_test_split_no_target});var system_namespaceObject={};__webpack_require__.r(system_namespaceObject),__webpack_require__.d(system_namespaceObject,{Panic_with_status_code:()=>system_Panic_with_status_code,base_delay:()=>base_delay,controls_millis:()=>system_controls_millis,controls_mstimer2:()=>controls_mstimer2,controls_mstimer2_start:()=>controls_mstimer2_start,controls_mstimer2_stop:()=>controls_mstimer2_stop,reset:()=>system_reset,time_localtime:()=>time_localtime,time_sleep:()=>system_time_sleep});var turtle_namespaceObject={};__webpack_require__.r(turtle_namespaceObject),__webpack_require__.d(turtle_namespaceObject,{turtle_bgcolor:()=>turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_bgcolor_hex_new,turtle_circle:()=>turtle_circle,turtle_circle_advanced:()=>turtle_circle_advanced,turtle_clear:()=>turtle_clear,turtle_clone:()=>turtle_clone,turtle_color:()=>turtle_color,turtle_color_hex:()=>turtle_color_hex,turtle_color_seclet:()=>turtle_color_seclet,turtle_create:()=>turtle_create,turtle_done:()=>turtle_done,turtle_exitonclick:()=>turtle_exitonclick,turtle_fill:()=>turtle_fill,turtle_fillcolor:()=>turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_getscreen,turtle_goto:()=>turtle_goto,turtle_listen:()=>turtle_listen,turtle_move:()=>turtle_move,turtle_numinput:()=>turtle_numinput,turtle_onclick:()=>turtle_onclick,turtle_onkey:()=>turtle_onkey,turtle_ontimer:()=>turtle_ontimer,turtle_pencolor:()=>turtle_pencolor,turtle_pencolor_hex:()=>turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_pencolor_hex_new,turtle_penup:()=>turtle_penup,turtle_pos_shape:()=>turtle_pos_shape,turtle_rotate:()=>turtle_rotate,turtle_screen_delay:()=>turtle_screen_delay,turtle_screen_savefig:()=>turtle_screen_savefig,turtle_setheading:()=>turtle_setheading,turtle_setxy:()=>turtle_setxy,turtle_shape:()=>turtle_shape,turtle_shapesize:()=>turtle_shapesize,turtle_size:()=>turtle_size,turtle_size_speed:()=>turtle_size_speed,turtle_speed:()=>turtle_speed,turtle_textinput:()=>turtle_textinput,turtle_visible:()=>turtle_visible,turtle_write:()=>turtle_write,turtle_write_format:()=>turtle_write_format,turtle_write_format_skulpt:()=>turtle_write_format_skulpt});var generators_ai_namespaceObject={};__webpack_require__.r(generators_ai_namespaceObject),__webpack_require__.d(generators_ai_namespaceObject,{AI_ChooseAndGet:()=>ai_AI_ChooseAndGet,AI_Face_match:()=>ai_AI_Face_match,AI_ImageClassify:()=>ai_AI_ImageClassify,AI_ImageClassify_Func:()=>ai_AI_ImageClassify_Func,AI_Nlp:()=>ai_AI_Nlp,AI_Nlp_Func:()=>ai_AI_Nlp_Func,AI_Nlp_Func_sim:()=>ai_AI_Nlp_Func_sim,AI_Nlp_Sim:()=>ai_AI_Nlp_Sim,AI_Nlp_Topic:()=>ai_AI_Nlp_Topic,AI_Nlp_newsSummary:()=>ai_AI_Nlp_newsSummary,AI_Ocr:()=>ai_AI_Ocr,AI_Ocr_Func:()=>ai_AI_Ocr_Func,AI_Speech_asr:()=>ai_AI_Speech_asr,AI_Speech_synthesis:()=>ai_AI_Speech_synthesis,AI_audio:()=>ai_AI_audio,AI_client:()=>ai_AI_client,AI_photo:()=>ai_AI_photo,AI_result:()=>ai_AI_result});var generators_algorithm_namespaceObject={};__webpack_require__.r(generators_algorithm_namespaceObject),__webpack_require__.d(generators_algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_algorithm_add_path,algorithm_add_school:()=>algorithm_algorithm_add_school,algorithm_all_books:()=>algorithm_algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_algorithm_book_scale,algorithm_check_feet:()=>algorithm_algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_algorithm_color_seclet,algorithm_current_school:()=>algorithm_algorithm_current_school,algorithm_del_path:()=>algorithm_algorithm_del_path,algorithm_delete_book:()=>algorithm_algorithm_delete_book,algorithm_divide_books:()=>algorithm_algorithm_divide_books,algorithm_find_path:()=>algorithm_algorithm_find_path,algorithm_first_book:()=>algorithm_algorithm_first_book,algorithm_fz_calc:()=>algorithm_algorithm_fz_calc,algorithm_fz_compare:()=>algorithm_algorithm_fz_compare,algorithm_fz_move:()=>algorithm_algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_algorithm_fz_set_min,algorithm_get_current_location:()=>algorithm_algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_algorithm_init_jttl,algorithm_move_recent:()=>algorithm_algorithm_move_recent,algorithm_new_path:()=>algorithm_algorithm_new_path,algorithm_next_book:()=>algorithm_algorithm_next_book,algorithm_no_left:()=>algorithm_algorithm_no_left,algorithm_no_path:()=>algorithm_algorithm_no_path,algorithm_no_ring2:()=>algorithm_algorithm_no_ring2,algorithm_not_home:()=>algorithm_algorithm_not_home,algorithm_not_school:()=>algorithm_algorithm_not_school,algorithm_number_add:()=>algorithm_algorithm_number_add,algorithm_number_zero:()=>algorithm_algorithm_number_zero,algorithm_prepare:()=>algorithm_algorithm_prepare,algorithm_prepare2:()=>algorithm_algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_algorithm_print_book2,algorithm_print_jttl_answer:()=>algorithm_algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_algorithm_print_number,algorithm_print_path:()=>algorithm_algorithm_print_path,algorithm_print_path2:()=>algorithm_algorithm_print_path2,algorithm_rabbit_add:()=>algorithm_algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_algorithm_return_path,algorithm_set_path:()=>algorithm_algorithm_set_path,algorithm_two_left:()=>algorithm_algorithm_two_left,algorithm_void_path:()=>algorithm_algorithm_void_path,algorithm_yes_ring2:()=>algorithm_algorithm_yes_ring2,hanoi_init:()=>algorithm_hanoi_init,hanoi_init_offline:()=>algorithm_hanoi_init_offline,hanoi_move:()=>algorithm_hanoi_move});var generators_communicate_namespaceObject={};__webpack_require__.r(generators_communicate_namespaceObject),__webpack_require__.d(generators_communicate_namespaceObject,{requests_attribute:()=>communicate_requests_attribute,requests_get:()=>communicate_requests_get,requests_get_old:()=>communicate_requests_get_old,requests_method:()=>communicate_requests_method,requests_post:()=>communicate_requests_post});var generators_data_namespaceObject={};__webpack_require__.r(generators_data_namespaceObject),__webpack_require__.d(generators_data_namespaceObject,{array_create:()=>data_array_create,array_toarray:()=>data_array_toarray,dataframe_aggregate_func:()=>data_dataframe_aggregate_func,dataframe_create:()=>data_dataframe_create,dataframe_create_from_index:()=>data_dataframe_create_from_index,dataframe_create_from_one_index:()=>data_dataframe_create_from_one_index,dataframe_fillna:()=>data_dataframe_fillna,dataframe_get:()=>data_dataframe_get,dataframe_groupby:()=>data_dataframe_groupby,dataframe_head_tail:()=>data_dataframe_head_tail,dataframe_info:()=>data_dataframe_info,dataframe_median:()=>data_dataframe_median,dataframe_select:()=>data_dataframe_select,dataframe_sort_values:()=>data_dataframe_sort_values,matrix_multiplication:()=>data_matrix_multiplication,matrix_transpose:()=>data_matrix_transpose,numpy_argmin_template_match:()=>data_numpy_argmin_template_match,numpy_astype:()=>data_numpy_astype,numpy_c_:()=>data_numpy_c_,numpy_dot:()=>data_numpy_dot,numpy_linalg_det:()=>data_numpy_linalg_det,numpy_linalg_inv:()=>data_numpy_linalg_inv,numpy_max:()=>data_numpy_max,numpy_mean:()=>data_numpy_mean,numpy_mean_digit:()=>data_numpy_mean_digit,numpy_min:()=>data_numpy_min,numpy_ones:()=>data_numpy_ones,numpy_random_random:()=>data_numpy_random_random,numpy_reshape:()=>data_numpy_reshape,numpy_shape:()=>data_numpy_shape,numpy_size:()=>data_numpy_size,numpy_square:()=>data_numpy_square,numpy_std:()=>data_numpy_std,numpy_sum:()=>data_numpy_sum,numpy_trig:()=>data_numpy_trig,pandas_drop_columns:()=>data_pandas_drop_columns,pandas_dropna:()=>data_pandas_dropna,pandas_readcsv:()=>data_pandas_readcsv,pl_axes:()=>data_pl_axes,pl_bar:()=>data_pl_bar,pl_hist:()=>data_pl_hist,pl_label:()=>data_pl_label,pl_legend:()=>data_pl_legend,pl_pie:()=>data_pl_pie,pl_plot:()=>data_pl_plot,pl_plot_bar:()=>data_pl_plot_bar,pl_plot_easy:()=>data_pl_plot_easy,pl_plot_scatter:()=>data_pl_plot_scatter,pl_plot_xy:()=>data_pl_plot_xy,pl_savefig:()=>data_pl_savefig,pl_show:()=>data_pl_show,pl_subplot:()=>data_pl_subplot,pl_text:()=>data_pl_text,pl_ticks:()=>data_pl_ticks,pl_title:()=>data_pl_title,plot_axes:()=>data_plot_axes,plot_bar:()=>data_plot_bar,plot_cla:()=>data_plot_cla,plot_hist:()=>data_plot_hist,plot_label:()=>data_plot_label,plot_legend:()=>data_plot_legend,plot_pie:()=>data_plot_pie,plot_plot:()=>data_plot_plot,plot_plot_bar:()=>data_plot_plot_bar,plot_plot_easy:()=>data_plot_plot_easy,plot_plot_scatter:()=>data_plot_plot_scatter,plot_plot_xy:()=>data_plot_plot_xy,plot_savefig:()=>data_plot_savefig,plot_show:()=>data_plot_show,plot_subplot:()=>data_plot_subplot,plot_text:()=>data_plot_text,plot_ticks:()=>data_plot_ticks,plot_title:()=>data_plot_title,py_sum:()=>data_py_sum,pylab_imshow:()=>data_pylab_imshow,series_create:()=>data_series_create,series_create_from_index:()=>data_series_create_from_index,series_create_from_text:()=>data_series_create_from_text,series_get_num:()=>data_series_get_num,series_index_value:()=>data_series_index_value});var generators_datastructure_namespaceObject={};__webpack_require__.r(generators_datastructure_namespaceObject),__webpack_require__.d(generators_datastructure_namespaceObject,{ds_add_node_by_attr:()=>datastructure_ds_add_node_by_attr,ds_add_node_by_name:()=>datastructure_ds_add_node_by_name,ds_create_linkedlist:()=>datastructure_ds_create_linkedlist,ds_create_node:()=>datastructure_ds_create_node,ds_del_node_by_attr:()=>datastructure_ds_del_node_by_attr,ds_del_node_by_name:()=>datastructure_ds_del_node_by_name,ds_get_node_attr:()=>datastructure_ds_get_node_attr,ds_reverse_linkedlist:()=>datastructure_ds_reverse_linkedlist,ds_set_node_attr:()=>datastructure_ds_set_node_attr});var generators_factory_namespaceObject={};__webpack_require__.r(generators_factory_namespaceObject),__webpack_require__.d(generators_factory_namespaceObject,{factory_block:()=>factory_factory_block,factory_block_return:()=>factory_factory_block_return,factory_block_return_with_textarea:()=>factory_factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_factory_callMethod_noreturn,factory_callMethod_return:()=>factory_factory_callMethod_return,factory_declare:()=>factory_factory_declare,factory_from_import:()=>factory_factory_from_import,factory_function_noreturn:()=>factory_factory_function_noreturn,factory_function_return:()=>factory_factory_function_return,factory_import:()=>factory_factory_import});var generators_hardware_namespaceObject={};__webpack_require__.r(generators_hardware_namespaceObject),__webpack_require__.d(generators_hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_hardware_arduino_start,inout_highlow:()=>hardware_inout_highlow});var generators_inout_namespaceObject={};__webpack_require__.r(generators_inout_namespaceObject),__webpack_require__.d(generators_inout_namespaceObject,{inout_input:()=>inout_inout_input,inout_print:()=>inout_inout_print,inout_print_end:()=>inout_inout_print_end,inout_print_inline:()=>inout_inout_print_inline,inout_print_many:()=>inout_inout_print_many,inout_type_input:()=>inout_inout_type_input,pyinout_type_input:()=>inout_pyinout_type_input});var generators_iot_namespaceObject={};__webpack_require__.r(generators_iot_namespaceObject),__webpack_require__.d(generators_iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>iot_IOT_EMQX_PING,IOT_FORMATTING:()=>iot_IOT_FORMATTING,IOT_FORMAT_STRING:()=>iot_IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>iot_IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>iot_IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>iot_IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>iot_IOT_MIXIO_UNSUBSCRIBE,iot_mixio_check:()=>iot_iot_mixio_check,iot_mixio_connect:()=>iot_iot_mixio_connect,iot_mixio_connect_only:()=>iot_iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_iot_mixio_format_topic,iot_mixly_key:()=>iot_iot_mixly_key,iot_mixly_key_py:()=>iot_iot_mixly_key_py});var generators_pins_namespaceObject={};__webpack_require__.r(generators_pins_namespaceObject),__webpack_require__.d(generators_pins_namespaceObject,{pins_analog_read:()=>pins_pins_analog_read,pins_analog_write:()=>pins_pins_analog_write,pins_digital:()=>pins_digital,pins_digital_read:()=>pins_pins_digital_read,pins_digital_write:()=>pins_pins_digital_write});var generators_serial_namespaceObject={};__webpack_require__.r(generators_serial_namespaceObject),__webpack_require__.d(generators_serial_namespaceObject,{serial_close:()=>serial_serial_close,serial_open:()=>serial_serial_open,serial_read_b:()=>serial_serial_read_b,serial_write:()=>serial_serial_write});var generators_sklearn_namespaceObject={};__webpack_require__.r(generators_sklearn_namespaceObject),__webpack_require__.d(generators_sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_sklearn_KMeans,sklearn_KMeans_fit:()=>sklearn_sklearn_KMeans_fit,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_sklearn_coef_intercept,sklearn_data_target:()=>sklearn_sklearn_data_target,sklearn_fit:()=>sklearn_sklearn_fit,sklearn_fit_no_target:()=>sklearn_sklearn_fit_no_target,sklearn_load:()=>sklearn_sklearn_load,sklearn_make_blobs:()=>sklearn_sklearn_make_blobs,sklearn_make_classification:()=>sklearn_sklearn_make_classification,sklearn_make_regression:()=>sklearn_sklearn_make_regression,sklearn_pca:()=>sklearn_sklearn_pca,sklearn_pca_fit_transform:()=>sklearn_sklearn_pca_fit_transform,sklearn_predict:()=>sklearn_sklearn_predict,sklearn_save_load_model:()=>sklearn_sklearn_save_load_model,sklearn_score:()=>sklearn_sklearn_score,sklearn_score_no_target:()=>sklearn_sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_sklearn_train_test_split_no_target});var generators_system_namespaceObject={};__webpack_require__.r(generators_system_namespaceObject),__webpack_require__.d(generators_system_namespaceObject,{controls_end_program:()=>system_controls_end_program,controls_millis:()=>generators_system_controls_millis,time_localtime:()=>system_time_localtime});var generators_turtle_namespaceObject={};__webpack_require__.r(generators_turtle_namespaceObject),__webpack_require__.d(generators_turtle_namespaceObject,{turtle_bgcolor:()=>turtle_turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_turtle_bgcolor_hex_new,turtle_circle:()=>turtle_turtle_circle,turtle_circle_advanced:()=>turtle_turtle_circle_advanced,turtle_clear:()=>turtle_turtle_clear,turtle_clone:()=>turtle_turtle_clone,turtle_color:()=>turtle_turtle_color,turtle_color_hex:()=>turtle_turtle_color_hex,turtle_color_seclet:()=>turtle_turtle_color_seclet,turtle_create:()=>turtle_turtle_create,turtle_done:()=>turtle_turtle_done,turtle_exitonclick:()=>turtle_turtle_exitonclick,turtle_fill:()=>turtle_turtle_fill,turtle_fillcolor:()=>turtle_turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_turtle_getscreen,turtle_goto:()=>turtle_turtle_goto,turtle_listen:()=>turtle_turtle_listen,turtle_move:()=>turtle_turtle_move,turtle_numinput:()=>turtle_turtle_numinput,turtle_onclick:()=>turtle_turtle_onclick,turtle_onkey:()=>turtle_turtle_onkey,turtle_ontimer:()=>turtle_turtle_ontimer,turtle_pencolor:()=>turtle_turtle_pencolor,turtle_pencolor_hex:()=>turtle_turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_turtle_pencolor_hex_new,turtle_penup:()=>turtle_turtle_penup,turtle_pos_shape:()=>turtle_turtle_pos_shape,turtle_rotate:()=>turtle_turtle_rotate,turtle_screen_delay:()=>turtle_turtle_screen_delay,turtle_screen_savefig:()=>turtle_turtle_screen_savefig,turtle_setheading:()=>turtle_turtle_setheading,turtle_setxy:()=>turtle_turtle_setxy,turtle_shape:()=>turtle_turtle_shape,turtle_shapesize:()=>turtle_turtle_shapesize,turtle_size:()=>turtle_turtle_size,turtle_size_speed:()=>turtle_turtle_size_speed,turtle_speed:()=>turtle_turtle_speed,turtle_textinput:()=>turtle_turtle_textinput,turtle_visible:()=>turtle_turtle_visible,turtle_write:()=>turtle_turtle_write,turtle_write_format:()=>turtle_turtle_write_format,turtle_write_format_skulpt:()=>turtle_turtle_write_format_skulpt});const external_Blockly_namespaceObject=Blockly,external_Mixly_namespaceObject=Mixly,Variables={NAME_TYPE:"VARIABLE",allVariables:function(e){var t;if(e.getDescendants)t=e.getDescendants();else{if(!e.getAllBlocks)throw"Not Block or Workspace: "+e;t=e.getAllBlocks()}for(var n=Object.create(null),a=0;a1&&(s+=a)):n=s}else n="i";return n}},variables=Variables; +(()=>{"use strict";var __webpack_modules__={131:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});const cv_read_image=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.imread("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_show_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imshow("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_write_image=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.imwrite("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+","+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},cv_waitkey=function(e,t){return t.definitions_.import_cv2="import cv2","cv2.waitKey("+t.valueToCode(this,"data",t.ORDER_ATOMIC)+")\n"},cv_destroy_all=function(e,t){t.definitions_.import_cv2="import cv2";return"cv2.destroyAllWindows()\n"},cv_line_rect=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),x2=generator.valueToCode(this,"x2",generator.ORDER_ATOMIC),y2=generator.valueToCode(this,"y2",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),direction=this.getFieldValue("DIR"),code="cv2."+direction+"("+file+",("+x1+","+y1+"),("+x2+","+y2+"),("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_text=function(_,generator){generator.definitions_.import_cv2="import cv2";var file=generator.valueToCode(this,"FILE",generator.ORDER_ATOMIC),x1=generator.valueToCode(this,"x1",generator.ORDER_ATOMIC),y1=generator.valueToCode(this,"y1",generator.ORDER_ATOMIC),data=generator.valueToCode(this,"data",generator.ORDER_ATOMIC),size=generator.valueToCode(this,"size",generator.ORDER_ATOMIC),thick=generator.valueToCode(this,"thick",generator.ORDER_ATOMIC),color=this.getFieldValue("FIELDNAME"),color1=eval("0x"+color[1]+color[2]),color2=eval("0x"+color[3]+color[4]),color3=eval("0x"+color[5]+color[6]),font=this.getFieldValue("font"),code="cv2.putText("+file+","+data+",("+x1+","+y1+"),cv2.FONT_HERSHEY_"+font+","+size+",("+color3+","+color2+","+color1+"),"+thick+")\n";return code},cv_face_classifier=function(e,t){return t.definitions_.import_cv2="import cv2",["cv2.CascadeClassifier("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},cv_face_detect_all=function(e,t){t.definitions_.import_cv2="import cv2";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return[t.valueToCode(this,"FACE",t.ORDER_ATOMIC)+".detectMultiScale("+n+",scaleFactor="+t.valueToCode(this,"SCALE",t.ORDER_ATOMIC)+",minNeighbors="+t.valueToCode(this,"NEIGHBOR",t.ORDER_ATOMIC)+",minSize=("+t.valueToCode(this,"x1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y1",t.ORDER_ATOMIC)+"),maxSize=("+t.valueToCode(this,"x2",t.ORDER_ATOMIC)+","+t.valueToCode(this,"y2",t.ORDER_ATOMIC)+"))",t.ORDER_ATOMIC]}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={},blocks_variables_namespaceObject={};__webpack_require__.r(blocks_variables_namespaceObject),__webpack_require__.d(blocks_variables_namespaceObject,{controls_type:()=>controls_type,controls_typeLists:()=>controls_typeLists,lists_zip:()=>lists_zip,lists_zip_container:()=>lists_zip_container,lists_zip_item:()=>lists_zip_item,unpack_iterable_object:()=>unpack_iterable_object,variables_change:()=>variables_change,variables_get:()=>variables_get,variables_global:()=>variables_global,variables_set:()=>variables_set});var control_namespaceObject={};__webpack_require__.r(control_namespaceObject),__webpack_require__.d(control_namespaceObject,{base_setup:()=>base_setup,controls_delay:()=>controls_delay,controls_end_program:()=>controls_end_program,controls_except:()=>controls_except,controls_finally:()=>controls_finally,controls_flow_statements:()=>controls_flow_statements,controls_for:()=>controls_for,controls_forEach:()=>controls_forEach,controls_for_range:()=>controls_for_range,controls_if:()=>controls_if,controls_if_else:()=>controls_if_else,controls_if_elseif:()=>controls_if_elseif,controls_if_if:()=>controls_if_if,controls_lambda:()=>controls_lambda,controls_main:()=>controls_main,controls_pass:()=>controls_pass,controls_range:()=>controls_range,controls_repeat_ext:()=>controls_repeat_ext,controls_thread:()=>controls_thread,controls_try:()=>controls_try,controls_try_finally:()=>controls_try_finally,controls_whileUntil:()=>controls_whileUntil,datetime_fromtimestamp:()=>datetime_fromtimestamp,do_while:()=>do_while,garbage_collection:()=>garbage_collection,gene_unique_identifier:()=>gene_unique_identifier,get_mem_alloc:()=>get_mem_alloc,get_mem_free:()=>get_mem_free,get_unique_identifier:()=>get_unique_identifier});var math_namespaceObject={};__webpack_require__.r(math_namespaceObject),__webpack_require__.d(math_namespaceObject,{base_map:()=>base_map,generate_cartesian_product:()=>generate_cartesian_product,math_arithmetic:()=>math_arithmetic,math_bit:()=>math_bit,math_constant:()=>math_constant,math_constant_mp:()=>math_constant_mp,math_constrain:()=>math_constrain,math_dec:()=>math_dec,math_degree_to_radian:()=>math_degree_to_radian,math_indexer_number:()=>math_indexer_number,math_map:()=>math_map,math_max_min:()=>math_max_min,math_number:()=>math_number,math_number_base_conversion:()=>math_number_base_conversion,math_radian_to_degree:()=>math_radian_to_degree,math_random:()=>math_random,math_random_seed:()=>math_random_seed,math_round:()=>math_round,math_selfcalcu:()=>math_selfcalcu,math_to_int:()=>math_to_int,math_trig:()=>math_trig,text_to_number:()=>text_to_number,text_to_number_skulpt:()=>text_to_number_skulpt,turn_to_int:()=>turn_to_int});var text_namespaceObject={};__webpack_require__.r(text_namespaceObject),__webpack_require__.d(text_namespaceObject,{ascii_to_char:()=>ascii_to_char,char_to_ascii:()=>char_to_ascii,number_to_text:()=>number_to_text,os_system:()=>os_system,text:()=>text_text,text_capital:()=>text_capital,text_center:()=>text_center,text_char:()=>text_char,text_char_at:()=>text_char_at,text_char_at2:()=>text_char_at2,text_char_at3:()=>text_char_at3,text_compareTo:()=>text_compareTo,text_compare_to:()=>text_compare_to,text_create_with_container:()=>text_create_with_container,text_create_with_item:()=>text_create_with_item,text_encode:()=>text_encode,text_equals_starts_ends:()=>text_equals_starts_ends,text_eval:()=>text_eval,text_find:()=>text_find,text_format:()=>text_format,text_format_noreturn:()=>text_format_noreturn,text_join:()=>text_join,text_join_seq:()=>text_join_seq,text_length:()=>text_length,text_random_char:()=>text_random_char,text_replace:()=>text_replace,text_split:()=>text_split,text_strip:()=>text_strip,text_substring:()=>text_substring,text_substring2:()=>text_substring2,text_substring3:()=>text_substring3,text_textarea:()=>text_textarea});var lists_namespaceObject={};__webpack_require__.r(lists_namespaceObject),__webpack_require__.d(lists_namespaceObject,{ENUMERATE:()=>ENUMERATE,content_in_lists:()=>content_in_lists,enumerate:()=>enumerate,list_many_input:()=>list_many_input,list_tolist:()=>list_tolist,list_tolist2:()=>list_tolist2,list_trig:()=>list_trig,lists_2d_get_col_row_data:()=>lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_append_extend,lists_change_to:()=>lists_change_to,lists_change_to_general:()=>lists_change_to_general,lists_clear:()=>lists_clear,lists_create_with:()=>lists_create_with,lists_create_with2:()=>lists_create_with2,lists_create_with_container:()=>lists_create_with_container,lists_create_with_item:()=>lists_create_with_item,lists_create_with_noreturn:()=>lists_create_with_noreturn,lists_create_with_text:()=>lists_create_with_text,lists_create_with_text2:()=>lists_create_with_text2,lists_del_general:()=>lists_del_general,lists_find:()=>lists_find,lists_getIndex3:()=>lists_getIndex3,lists_getSublist3:()=>lists_getSublist3,lists_get_index:()=>lists_get_index,lists_get_random_item:()=>lists_get_random_item,lists_get_random_sublist:()=>lists_get_random_sublist,lists_get_sublist:()=>lists_get_sublist,lists_insert_value:()=>lists_insert_value,lists_insert_value2:()=>lists_insert_value2,lists_pop:()=>lists_pop,lists_remove_at:()=>lists_remove_at,lists_remove_at2:()=>lists_remove_at2,lists_reverse:()=>lists_reverse,lists_setIndex3:()=>lists_setIndex3,lists_set_index:()=>lists_set_index,lists_sort:()=>lists_sort});var dicts_namespaceObject={};__webpack_require__.r(dicts_namespaceObject),__webpack_require__.d(dicts_namespaceObject,{dicts_add_change_del:()=>dicts_add_change_del,dicts_add_or_change:()=>dicts_add_or_change,dicts_clear:()=>dicts_clear,dicts_create_with:()=>dicts_create_with,dicts_create_with_container:()=>dicts_create_with_container,dicts_create_with_item:()=>dicts_create_with_item,dicts_create_with_noreturn:()=>dicts_create_with_noreturn,dicts_deldict:()=>dicts_deldict,dicts_delete:()=>dicts_delete,dicts_get:()=>dicts_get,dicts_get_default:()=>dicts_get_default,dicts_items:()=>dicts_items,dicts_keys:()=>dicts_keys,dicts_length:()=>dicts_length,dicts_pop:()=>dicts_pop,dicts_setdefault:()=>dicts_setdefault,dicts_to_json:()=>dicts_to_json,dicts_to_json2:()=>dicts_to_json2,dicts_to_to:()=>dicts_to_to,dicts_todict:()=>dicts_todict,dicts_update:()=>dicts_update,dicts_values:()=>dicts_values,json_to_dicts:()=>json_to_dicts});var logic_namespaceObject={};__webpack_require__.r(logic_namespaceObject),__webpack_require__.d(logic_namespaceObject,{logic_boolean:()=>logic_boolean,logic_compare:()=>logic_compare,logic_compare_continous:()=>logic_compare_continous,logic_is:()=>logic_is,logic_is_in:()=>logic_is_in,logic_negate:()=>logic_negate,logic_null:()=>logic_null,logic_operation:()=>logic_operation,logic_tobool:()=>logic_tobool,logic_true_or_false:()=>logic_true_or_false});var storage_namespaceObject={};__webpack_require__.r(storage_namespaceObject),__webpack_require__.d(storage_namespaceObject,{sdcard_mount:()=>sdcard_mount,sdcard_use_spi_init:()=>sdcard_use_spi_init,storage_can_write_ornot:()=>storage_can_write_ornot,storage_change_dir:()=>storage_change_dir,storage_close_file:()=>storage_close_file,storage_delete_file:()=>storage_delete_file,storage_file_seek:()=>storage_file_seek,storage_file_tell:()=>storage_file_tell,storage_file_write:()=>storage_file_write,storage_fileopen:()=>storage_fileopen,storage_fileopen_new:()=>storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_fileopen_new_encoding,storage_get_a_line:()=>storage_get_a_line,storage_get_contents:()=>storage_get_contents,storage_get_contents_without_para:()=>storage_get_contents_without_para,storage_get_current_dir:()=>storage_get_current_dir,storage_get_file_size:()=>storage_get_file_size,storage_get_filename:()=>storage_get_filename,storage_is_file:()=>storage_is_file,storage_list_all_files:()=>storage_list_all_files,storage_make_dir:()=>storage_make_dir,storage_open_file_with_os:()=>storage_open_file_with_os,storage_rename:()=>storage_rename});var procedures_namespaceObject={};__webpack_require__.r(procedures_namespaceObject),__webpack_require__.d(procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_callnoreturn,procedures_callreturn:()=>procedures_callreturn,procedures_defnoreturn:()=>procedures_defnoreturn,procedures_defreturn:()=>procedures_defreturn,procedures_ifreturn:()=>procedures_ifreturn,procedures_mutatorarg:()=>procedures_mutatorarg,procedures_mutatorcontainer:()=>procedures_mutatorcontainer,procedures_return:()=>procedures_return});var tuple_namespaceObject={};__webpack_require__.r(tuple_namespaceObject),__webpack_require__.d(tuple_namespaceObject,{tuple_change_to:()=>tuple_change_to,tuple_create_with:()=>tuple_create_with,tuple_create_with_container:()=>tuple_create_with_container,tuple_create_with_item:()=>tuple_create_with_item,tuple_create_with_noreturn:()=>tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_create_with_text_return,tuple_del:()=>tuple_del,tuple_find:()=>tuple_find,tuple_getIndex:()=>tuple_getIndex,tuple_getSublist:()=>tuple_getSublist,tuple_get_random_item:()=>tuple_get_random_item,tuple_get_sublist:()=>tuple_get_sublist,tuple_input:()=>tuple_input,tuple_join:()=>tuple_join,tuple_length:()=>tuple_length,tuple_max:()=>tuple_max,tuple_totuple:()=>tuple_totuple,tuple_trig:()=>tuple_trig});var set_namespaceObject={};__webpack_require__.r(set_namespaceObject),__webpack_require__.d(set_namespaceObject,{set_add_discard:()=>set_add_discard,set_clear:()=>set_clear,set_create_with:()=>set_create_with,set_create_with_container:()=>set_create_with_container,set_create_with_item:()=>set_create_with_item,set_create_with_text_return:()=>set_create_with_text_return,set_length:()=>set_length,set_operate:()=>set_operate,set_operate_update:()=>set_operate_update,set_pop:()=>set_pop,set_sub:()=>set_sub,set_toset:()=>set_toset,set_update:()=>set_update});var html_namespaceObject={};__webpack_require__.r(html_namespaceObject),__webpack_require__.d(html_namespaceObject,{html_content:()=>html_content,html_content_more:()=>html_content_more,html_document:()=>html_document,html_form:()=>html_form,html_head_body:()=>html_head_body,html_style:()=>html_style,html_style_color:()=>html_style_color,html_style_content:()=>html_style_content,html_text:()=>html_text,html_title:()=>html_title});var utility_namespaceObject={};__webpack_require__.r(utility_namespaceObject),__webpack_require__.d(utility_namespaceObject,{attribute_access:()=>attribute_access,function_call:()=>function_call,function_call_container:()=>function_call_container,function_call_item:()=>function_call_item,raw_block:()=>raw_block,raw_empty:()=>raw_empty,raw_expression:()=>raw_expression,raw_table:()=>raw_table,text_comment:()=>text_comment,text_print_multiple:()=>text_print_multiple,text_print_multiple_container:()=>text_print_multiple_container,text_print_multiple_item:()=>text_print_multiple_item,type_check:()=>type_check});var generators_variables_namespaceObject={};__webpack_require__.r(generators_variables_namespaceObject),__webpack_require__.d(generators_variables_namespaceObject,{controls_type:()=>variables_controls_type,controls_typeLists:()=>variables_controls_typeLists,lists_zip:()=>variables_lists_zip,unpack_iterable_object:()=>variables_unpack_iterable_object,variables_change:()=>variables_variables_change,variables_get:()=>variables_variables_get,variables_global:()=>variables_variables_global,variables_set:()=>variables_variables_set});var generators_control_namespaceObject={};__webpack_require__.r(generators_control_namespaceObject),__webpack_require__.d(generators_control_namespaceObject,{Panic_with_status_code:()=>Panic_with_status_code,base_setup:()=>control_base_setup,controls_delay:()=>control_controls_delay,controls_flow_statements:()=>control_controls_flow_statements,controls_for:()=>control_controls_for,controls_forEach:()=>control_controls_forEach,controls_for_range:()=>control_controls_for_range,controls_if:()=>control_controls_if,controls_interrupts:()=>controls_interrupts,controls_lambda:()=>control_controls_lambda,controls_main:()=>control_controls_main,controls_millis:()=>controls_millis,controls_nointerrupts:()=>controls_nointerrupts,controls_pass:()=>control_controls_pass,controls_range:()=>control_controls_range,controls_repeat:()=>controls_repeat,controls_repeat_ext:()=>control_controls_repeat_ext,controls_thread:()=>control_controls_thread,controls_try_finally:()=>control_controls_try_finally,controls_whileUntil:()=>control_controls_whileUntil,datetime_fromtimestamp:()=>control_datetime_fromtimestamp,do_while:()=>control_do_while,garbage_collection:()=>control_garbage_collection,gene_unique_identifier:()=>control_gene_unique_identifier,get_mem_alloc:()=>control_get_mem_alloc,get_mem_free:()=>control_get_mem_free,get_unique_identifier:()=>control_get_unique_identifier,reset:()=>control_reset,time_sleep:()=>time_sleep});var generators_math_namespaceObject={};__webpack_require__.r(generators_math_namespaceObject),__webpack_require__.d(generators_math_namespaceObject,{base_map:()=>math_base_map,generate_cartesian_product:()=>math_generate_cartesian_product,math_arithmetic:()=>math_math_arithmetic,math_bit:()=>math_math_bit,math_constant:()=>math_math_constant,math_constant_mp:()=>math_math_constant_mp,math_constrain:()=>math_math_constrain,math_dec:()=>math_math_dec,math_degree_to_radian:()=>math_math_degree_to_radian,math_indexer_number:()=>math_math_indexer_number,math_map:()=>math_math_map,math_max_min:()=>math_math_max_min,math_number:()=>math_math_number,math_number_base_conversion:()=>math_math_number_base_conversion,math_radian_to_degree:()=>math_math_radian_to_degree,math_random:()=>math_math_random,math_random_seed:()=>math_math_random_seed,math_round:()=>math_math_round,math_selfcalcu:()=>math_math_selfcalcu,math_single:()=>math_single,math_to_int:()=>math_math_to_int,math_trig:()=>math_math_trig,text_to_number:()=>math_text_to_number,text_to_number_skulpt:()=>math_text_to_number_skulpt,turn_to_int:()=>math_turn_to_int});var generators_text_namespaceObject={};__webpack_require__.r(generators_text_namespaceObject),__webpack_require__.d(generators_text_namespaceObject,{ascii_to_char:()=>text_ascii_to_char,char_to_ascii:()=>text_char_to_ascii,number_to_text:()=>text_number_to_text,os_system:()=>text_os_system,text:()=>generators_text_text,text_capital:()=>text_text_capital,text_center:()=>text_text_center,text_char:()=>text_text_char,text_char_at:()=>text_text_char_at,text_char_at2:()=>text_text_char_at2,text_char_at3:()=>text_text_char_at3,text_compareTo:()=>text_text_compareTo,text_compare_to:()=>text_text_compare_to,text_encode:()=>text_text_encode,text_equals_starts_ends:()=>text_text_equals_starts_ends,text_eval:()=>text_text_eval,text_find:()=>text_text_find,text_format:()=>text_text_format,text_format_noreturn:()=>text_text_format_noreturn,text_join:()=>text_text_join,text_join_seq:()=>text_text_join_seq,text_length:()=>text_text_length,text_random_char:()=>text_text_random_char,text_replace:()=>text_text_replace,text_split:()=>text_text_split,text_strip:()=>text_text_strip,text_substring:()=>text_text_substring,text_substring2:()=>text_text_substring2,text_substring3:()=>text_text_substring3,text_textarea:()=>text_text_textarea});var generators_lists_namespaceObject={};__webpack_require__.r(generators_lists_namespaceObject),__webpack_require__.d(generators_lists_namespaceObject,{content_in_lists:()=>lists_content_in_lists,enumerate:()=>lists_enumerate,list_many_input:()=>lists_list_many_input,list_tolist:()=>lists_list_tolist,list_tolist2:()=>lists_list_tolist2,list_trig:()=>lists_list_trig,lists_2d_get_col_row_data:()=>lists_lists_2d_get_col_row_data,lists_2d_get_data_with_col_row:()=>lists_lists_2d_get_data_with_col_row,lists_append_extend:()=>lists_lists_append_extend,lists_change_to:()=>lists_lists_change_to,lists_change_to_general:()=>lists_lists_change_to_general,lists_clear:()=>lists_lists_clear,lists_create_with:()=>lists_lists_create_with,lists_create_with2:()=>lists_lists_create_with2,lists_create_with_noreturn:()=>lists_lists_create_with_noreturn,lists_create_with_text:()=>lists_lists_create_with_text,lists_create_with_text2:()=>lists_lists_create_with_text2,lists_del_general:()=>lists_lists_del_general,lists_find:()=>lists_lists_find,lists_getIndex3:()=>lists_lists_getIndex3,lists_getSublist3:()=>lists_lists_getSublist3,lists_get_index:()=>lists_lists_get_index,lists_get_random_item:()=>lists_lists_get_random_item,lists_get_random_sublist:()=>lists_lists_get_random_sublist,lists_get_sublist:()=>lists_lists_get_sublist,lists_insert_value:()=>lists_lists_insert_value,lists_insert_value2:()=>lists_lists_insert_value2,lists_pop:()=>lists_lists_pop,lists_remove_at:()=>lists_lists_remove_at,lists_remove_at2:()=>lists_lists_remove_at2,lists_reverse:()=>lists_lists_reverse,lists_setIndex3:()=>lists_lists_setIndex3,lists_set_index:()=>lists_lists_set_index,lists_sort:()=>lists_lists_sort});var generators_dicts_namespaceObject={};__webpack_require__.r(generators_dicts_namespaceObject),__webpack_require__.d(generators_dicts_namespaceObject,{dicts_add_change_del:()=>dicts_dicts_add_change_del,dicts_add_or_change:()=>dicts_dicts_add_or_change,dicts_clear:()=>dicts_dicts_clear,dicts_create_with:()=>dicts_dicts_create_with,dicts_create_with_noreturn:()=>dicts_dicts_create_with_noreturn,dicts_deldict:()=>dicts_dicts_deldict,dicts_delete:()=>dicts_dicts_delete,dicts_get:()=>dicts_dicts_get,dicts_get_default:()=>dicts_dicts_get_default,dicts_items:()=>dicts_dicts_items,dicts_keys:()=>dicts_dicts_keys,dicts_length:()=>dicts_dicts_length,dicts_pop:()=>dicts_dicts_pop,dicts_setdefault:()=>dicts_dicts_setdefault,dicts_to_json:()=>dicts_dicts_to_json,dicts_to_json2:()=>dicts_dicts_to_json2,dicts_to_to:()=>dicts_dicts_to_to,dicts_todict:()=>dicts_dicts_todict,dicts_update:()=>dicts_dicts_update,dicts_values:()=>dicts_dicts_values,json_to_dicts:()=>dicts_json_to_dicts});var generators_logic_namespaceObject={};__webpack_require__.r(generators_logic_namespaceObject),__webpack_require__.d(generators_logic_namespaceObject,{logic_boolean:()=>logic_logic_boolean,logic_compare:()=>logic_logic_compare,logic_compare_continous:()=>logic_logic_compare_continous,logic_is:()=>logic_logic_is,logic_is_in:()=>logic_logic_is_in,logic_negate:()=>logic_logic_negate,logic_null:()=>logic_logic_null,logic_operation:()=>logic_logic_operation,logic_tobool:()=>logic_logic_tobool,logic_true_or_false:()=>logic_logic_true_or_false});var generators_storage_namespaceObject={};__webpack_require__.r(generators_storage_namespaceObject),__webpack_require__.d(generators_storage_namespaceObject,{sdcard_mount:()=>storage_sdcard_mount,sdcard_use_spi_init:()=>storage_sdcard_use_spi_init,storage_can_write_ornot:()=>storage_storage_can_write_ornot,storage_change_dir:()=>storage_storage_change_dir,storage_close_file:()=>storage_storage_close_file,storage_delete_file:()=>storage_storage_delete_file,storage_file_seek:()=>storage_storage_file_seek,storage_file_tell:()=>storage_storage_file_tell,storage_file_write:()=>storage_storage_file_write,storage_fileopen:()=>storage_storage_fileopen,storage_fileopen_new:()=>storage_storage_fileopen_new,storage_fileopen_new_encoding:()=>storage_storage_fileopen_new_encoding,storage_get_a_line:()=>storage_storage_get_a_line,storage_get_contents:()=>storage_storage_get_contents,storage_get_contents_without_para:()=>storage_storage_get_contents_without_para,storage_get_current_dir:()=>storage_storage_get_current_dir,storage_get_file_size:()=>storage_storage_get_file_size,storage_get_filename:()=>storage_storage_get_filename,storage_is_file:()=>storage_storage_is_file,storage_list_all_files:()=>storage_storage_list_all_files,storage_make_dir:()=>storage_storage_make_dir,storage_open_file_with_os:()=>storage_storage_open_file_with_os,storage_rename:()=>storage_storage_rename});var generators_procedures_namespaceObject={};__webpack_require__.r(generators_procedures_namespaceObject),__webpack_require__.d(generators_procedures_namespaceObject,{procedures_callnoreturn:()=>procedures_procedures_callnoreturn,procedures_callreturn:()=>procedures_procedures_callreturn,procedures_defnoreturn:()=>procedures_procedures_defnoreturn,procedures_defreturn:()=>procedures_procedures_defreturn,procedures_ifreturn:()=>procedures_procedures_ifreturn,procedures_return:()=>procedures_procedures_return});var generators_tuple_namespaceObject={};__webpack_require__.r(generators_tuple_namespaceObject),__webpack_require__.d(generators_tuple_namespaceObject,{tuple_change_to:()=>tuple_tuple_change_to,tuple_create_with:()=>tuple_tuple_create_with,tuple_create_with_noreturn:()=>tuple_tuple_create_with_noreturn,tuple_create_with_text2:()=>tuple_tuple_create_with_text2,tuple_create_with_text_return:()=>tuple_tuple_create_with_text_return,tuple_del:()=>tuple_tuple_del,tuple_find:()=>tuple_tuple_find,tuple_getIndex:()=>tuple_tuple_getIndex,tuple_getSublist:()=>tuple_tuple_getSublist,tuple_get_random_item:()=>tuple_tuple_get_random_item,tuple_get_sublist:()=>tuple_tuple_get_sublist,tuple_input:()=>tuple_tuple_input,tuple_join:()=>tuple_tuple_join,tuple_length:()=>tuple_tuple_length,tuple_max:()=>tuple_tuple_max,tuple_totuple:()=>tuple_tuple_totuple,tuple_trig:()=>tuple_tuple_trig});var generators_set_namespaceObject={};__webpack_require__.r(generators_set_namespaceObject),__webpack_require__.d(generators_set_namespaceObject,{set_add_discard:()=>set_set_add_discard,set_clear:()=>set_set_clear,set_create_with:()=>set_set_create_with,set_create_with_text_return:()=>set_set_create_with_text_return,set_length:()=>set_set_length,set_operate:()=>set_set_operate,set_operate_update:()=>set_set_operate_update,set_pop:()=>set_set_pop,set_sub:()=>set_set_sub,set_toset:()=>set_set_toset,set_update:()=>set_set_update});var generators_html_namespaceObject={};__webpack_require__.r(generators_html_namespaceObject),__webpack_require__.d(generators_html_namespaceObject,{html_content:()=>html_html_content,html_content_more:()=>html_html_content_more,html_document:()=>html_html_document,html_form:()=>html_html_form,html_head_body:()=>html_html_head_body,html_style:()=>html_html_style,html_style_content:()=>html_html_style_content,html_text:()=>html_html_text,html_title:()=>html_html_title});var generators_utility_namespaceObject={};__webpack_require__.r(generators_utility_namespaceObject),__webpack_require__.d(generators_utility_namespaceObject,{attribute_access:()=>utility_attribute_access,function_call:()=>utility_function_call,raw_block:()=>utility_raw_block,raw_empty:()=>utility_raw_empty,raw_expression:()=>utility_raw_expression,raw_table:()=>utility_raw_table,type_check:()=>utility_type_check});var ai_namespaceObject={};__webpack_require__.r(ai_namespaceObject),__webpack_require__.d(ai_namespaceObject,{AI_ChooseAndGet:()=>AI_ChooseAndGet,AI_Face_match:()=>AI_Face_match,AI_ImageClassify:()=>AI_ImageClassify,AI_ImageClassify_Func:()=>AI_ImageClassify_Func,AI_Nlp:()=>AI_Nlp,AI_Nlp_Func:()=>AI_Nlp_Func,AI_Nlp_Func_sim:()=>AI_Nlp_Func_sim,AI_Nlp_Sim:()=>AI_Nlp_Sim,AI_Nlp_Topic:()=>AI_Nlp_Topic,AI_Nlp_newsSummary:()=>AI_Nlp_newsSummary,AI_Ocr:()=>AI_Ocr,AI_Ocr_Func:()=>AI_Ocr_Func,AI_Speech_asr:()=>AI_Speech_asr,AI_Speech_synthesis:()=>AI_Speech_synthesis,AI_audio:()=>AI_audio,AI_client:()=>AI_client,AI_photo:()=>AI_photo,AI_result:()=>AI_result});var algorithm_namespaceObject={};__webpack_require__.r(algorithm_namespaceObject),__webpack_require__.d(algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_add_path,algorithm_add_school:()=>algorithm_add_school,algorithm_all_books:()=>algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_book_scale,algorithm_check_feet:()=>algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_color_seclet,algorithm_current_school:()=>algorithm_current_school,algorithm_del_path:()=>algorithm_del_path,algorithm_delete_book:()=>algorithm_delete_book,algorithm_delete_books:()=>algorithm_delete_books,algorithm_delete_books2:()=>algorithm_delete_books2,algorithm_divide_books:()=>algorithm_divide_books,algorithm_find_path:()=>algorithm_find_path,algorithm_first_book:()=>algorithm_first_book,algorithm_fz_calc:()=>algorithm_fz_calc,algorithm_fz_calc_first_min:()=>algorithm_fz_calc_first_min,algorithm_fz_compare:()=>algorithm_fz_compare,algorithm_fz_move:()=>algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_fz_set_min,algorithm_get_book_num:()=>algorithm_get_book_num,algorithm_get_current_location:()=>algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_init_jttl,algorithm_move_recent:()=>algorithm_move_recent,algorithm_new_path:()=>algorithm_new_path,algorithm_next_book:()=>algorithm_next_book,algorithm_no_left:()=>algorithm_no_left,algorithm_no_path:()=>algorithm_no_path,algorithm_no_ring2:()=>algorithm_no_ring2,algorithm_not_home:()=>algorithm_not_home,algorithm_not_school:()=>algorithm_not_school,algorithm_number_add:()=>algorithm_number_add,algorithm_number_zero:()=>algorithm_number_zero,algorithm_prepare:()=>algorithm_prepare,algorithm_prepare2:()=>algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_print_book2,algorithm_print_divide:()=>algorithm_print_divide,algorithm_print_jttl_answer:()=>algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_print_number,algorithm_print_path:()=>algorithm_print_path,algorithm_print_path2:()=>algorithm_print_path2,algorithm_print_sequence:()=>algorithm_print_sequence,algorithm_rabbit_add:()=>algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_return_path,algorithm_set_path:()=>algorithm_set_path,algorithm_two_left:()=>algorithm_two_left,algorithm_void_path:()=>algorithm_void_path,algorithm_yes_ring2:()=>algorithm_yes_ring2,hanoi_init:()=>hanoi_init,hanoi_init_offline:()=>hanoi_init_offline,hanoi_move:()=>hanoi_move});var communicate_namespaceObject={};__webpack_require__.r(communicate_namespaceObject),__webpack_require__.d(communicate_namespaceObject,{requests_attribute:()=>requests_attribute,requests_get:()=>requests_get,requests_get_old:()=>requests_get_old,requests_method:()=>requests_method,requests_post:()=>requests_post});var cv_namespaceObject={};__webpack_require__.r(cv_namespaceObject),__webpack_require__.d(cv_namespaceObject,{cv_destroy_all:()=>cv_destroy_all,cv_face_classifier:()=>cv_face_classifier,cv_face_detect:()=>cv_face_detect,cv_face_detect_all:()=>cv_face_detect_all,cv_line_rect:()=>cv_line_rect,cv_read_image:()=>cv_read_image,cv_show_image:()=>cv_show_image,cv_text:()=>cv_text,cv_waitkey:()=>cv_waitkey,cv_write_image:()=>cv_write_image});var data_namespaceObject={};__webpack_require__.r(data_namespaceObject),__webpack_require__.d(data_namespaceObject,{array_create:()=>array_create,array_toarray:()=>array_toarray,dataframe_aggregate_func:()=>dataframe_aggregate_func,dataframe_create:()=>dataframe_create,dataframe_create_from_index:()=>dataframe_create_from_index,dataframe_create_from_one_index:()=>dataframe_create_from_one_index,dataframe_fillna:()=>dataframe_fillna,dataframe_get:()=>dataframe_get,dataframe_groupby:()=>dataframe_groupby,dataframe_head_tail:()=>dataframe_head_tail,dataframe_info:()=>dataframe_info,dataframe_median:()=>dataframe_median,dataframe_select:()=>dataframe_select,dataframe_sort_values:()=>dataframe_sort_values,matrix_multiplication:()=>matrix_multiplication,matrix_transpose:()=>matrix_transpose,numpy_argmin_template_match:()=>numpy_argmin_template_match,numpy_astype:()=>numpy_astype,numpy_c_:()=>numpy_c_,numpy_dot:()=>numpy_dot,numpy_linalg_det:()=>numpy_linalg_det,numpy_linalg_inv:()=>numpy_linalg_inv,numpy_max:()=>numpy_max,numpy_mean:()=>numpy_mean,numpy_mean_digit:()=>numpy_mean_digit,numpy_min:()=>numpy_min,numpy_ones:()=>numpy_ones,numpy_random_random:()=>numpy_random_random,numpy_reshape:()=>numpy_reshape,numpy_shape:()=>numpy_shape,numpy_size:()=>numpy_size,numpy_square:()=>numpy_square,numpy_std:()=>numpy_std,numpy_sum:()=>numpy_sum,numpy_trig:()=>numpy_trig,pandas_drop_columns:()=>pandas_drop_columns,pandas_dropna:()=>pandas_dropna,pandas_readcsv:()=>pandas_readcsv,pl_axes:()=>pl_axes,pl_bar:()=>pl_bar,pl_hist:()=>pl_hist,pl_label:()=>pl_label,pl_legend:()=>pl_legend,pl_pie:()=>pl_pie,pl_plot:()=>pl_plot,pl_plot_bar:()=>pl_plot_bar,pl_plot_easy:()=>pl_plot_easy,pl_plot_scatter:()=>pl_plot_scatter,pl_plot_xy:()=>pl_plot_xy,pl_savefig:()=>pl_savefig,pl_show:()=>pl_show,pl_subplot:()=>pl_subplot,pl_text:()=>pl_text,pl_ticks:()=>pl_ticks,pl_title:()=>pl_title,plot_axes:()=>plot_axes,plot_bar:()=>plot_bar,plot_cla:()=>plot_cla,plot_hist:()=>plot_hist,plot_label:()=>plot_label,plot_legend:()=>plot_legend,plot_pie:()=>plot_pie,plot_plot:()=>plot_plot,plot_plot_bar:()=>plot_plot_bar,plot_plot_easy:()=>plot_plot_easy,plot_plot_scatter:()=>plot_plot_scatter,plot_plot_xy:()=>plot_plot_xy,plot_savefig:()=>plot_savefig,plot_show:()=>plot_show,plot_subplot:()=>plot_subplot,plot_text:()=>plot_text,plot_ticks:()=>plot_ticks,plot_title:()=>plot_title,py_sum:()=>py_sum,pylab_imshow:()=>pylab_imshow,series_create:()=>series_create,series_create_from_index:()=>series_create_from_index,series_create_from_text:()=>series_create_from_text,series_get_num:()=>series_get_num,series_index_value:()=>series_index_value});var datastructure_namespaceObject={};__webpack_require__.r(datastructure_namespaceObject),__webpack_require__.d(datastructure_namespaceObject,{ds_add_node_by_attr:()=>ds_add_node_by_attr,ds_add_node_by_name:()=>ds_add_node_by_name,ds_create_linkedlist:()=>ds_create_linkedlist,ds_create_linkedlist_container:()=>ds_create_linkedlist_container,ds_create_linkedlist_item:()=>ds_create_linkedlist_item,ds_create_node:()=>ds_create_node,ds_del_node_by_attr:()=>ds_del_node_by_attr,ds_del_node_by_name:()=>ds_del_node_by_name,ds_get_node_attr:()=>ds_get_node_attr,ds_reverse_linkedlist:()=>ds_reverse_linkedlist,ds_set_node_attr:()=>ds_set_node_attr});var factory_namespaceObject={};__webpack_require__.r(factory_namespaceObject),__webpack_require__.d(factory_namespaceObject,{factory_block:()=>factory_block,factory_block_return:()=>factory_block_return,factory_block_return_with_textarea:()=>factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_callMethod_noreturn,factory_callMethod_return:()=>factory_callMethod_return,factory_create_with_container:()=>factory_create_with_container,factory_create_with_item:()=>factory_create_with_item,factory_declare:()=>factory_declare,factory_from_import:()=>factory_from_import,factory_function_noreturn:()=>factory_function_noreturn,factory_function_return:()=>factory_function_return,factory_import:()=>factory_import});var hardware_namespaceObject={};__webpack_require__.r(hardware_namespaceObject),__webpack_require__.d(hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_arduino_start,inout_highlow:()=>inout_highlow});var inout_namespaceObject={};__webpack_require__.r(inout_namespaceObject),__webpack_require__.d(inout_namespaceObject,{inout_input:()=>inout_input,inout_print:()=>inout_print,inout_print_container:()=>inout_print_container,inout_print_end:()=>inout_print_end,inout_print_inline:()=>inout_print_inline,inout_print_item:()=>inout_print_item,inout_print_many:()=>inout_print_many,inout_type_input:()=>inout_type_input,pyinout_type_input:()=>pyinout_type_input});var iot_namespaceObject={};__webpack_require__.r(iot_namespaceObject),__webpack_require__.d(iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>IOT_EMQX_PING,IOT_FORMATTING:()=>IOT_FORMATTING,IOT_FORMAT_STRING:()=>IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>IOT_MIXIO_UNSUBSCRIBE,iot_checkonenet:()=>iot_checkonenet,iot_client_onboard:()=>iot_client_onboard,iot_create_with_item:()=>iot_create_with_item,iot_http_client:()=>iot_http_client,iot_http_data:()=>iot_http_data,iot_mixio_check:()=>iot_mixio_check,iot_mixio_connect:()=>iot_mixio_connect,iot_mixio_connect_only:()=>iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_mixio_format_topic,iot_mixly_key:()=>iot_mixly_key,iot_mixly_key_py:()=>iot_mixly_key_py,iot_mqtt_client:()=>iot_mqtt_client,iot_mqtt_data:()=>iot_mqtt_data,iot_onenet_check:()=>iot_onenet_check,iot_onenet_connect:()=>iot_onenet_connect,iot_onenet_disconnect:()=>iot_onenet_disconnect,iot_onenet_publish:()=>iot_onenet_publish,iot_onenet_publish_dict:()=>iot_onenet_publish_dict,iot_onenetconnect:()=>iot_onenetconnect,iot_onenetdisconnect:()=>iot_onenetdisconnect,iot_publish:()=>iot_publish,iot_publish_container:()=>iot_publish_container,iot_publish_item:()=>iot_publish_item});var pins_namespaceObject={};__webpack_require__.r(pins_namespaceObject),__webpack_require__.d(pins_namespaceObject,{pins_analog_read:()=>pins_analog_read,pins_analog_write:()=>pins_analog_write,pins_digital_read:()=>pins_digital_read,pins_digital_write:()=>pins_digital_write});var serial_namespaceObject={};__webpack_require__.r(serial_namespaceObject),__webpack_require__.d(serial_namespaceObject,{serial_close:()=>serial_close,serial_open:()=>serial_open,serial_read_b:()=>serial_read_b,serial_write:()=>serial_write});var sklearn_namespaceObject={};__webpack_require__.r(sklearn_namespaceObject),__webpack_require__.d(sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_KMeans,sklearn_KMeans_fit:()=>sklearn_KMeans_fit,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_coef_intercept,sklearn_data_target:()=>sklearn_data_target,sklearn_fit:()=>sklearn_fit,sklearn_fit_no_target:()=>sklearn_fit_no_target,sklearn_load:()=>sklearn_load,sklearn_make_blobs:()=>sklearn_make_blobs,sklearn_make_classification:()=>sklearn_make_classification,sklearn_make_regression:()=>sklearn_make_regression,sklearn_pca:()=>sklearn_pca,sklearn_pca_fit_transform:()=>sklearn_pca_fit_transform,sklearn_predict:()=>sklearn_predict,sklearn_save_load_model:()=>sklearn_save_load_model,sklearn_score:()=>sklearn_score,sklearn_score_no_target:()=>sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_train_test_split_no_target});var system_namespaceObject={};__webpack_require__.r(system_namespaceObject),__webpack_require__.d(system_namespaceObject,{Panic_with_status_code:()=>system_Panic_with_status_code,base_delay:()=>base_delay,controls_millis:()=>system_controls_millis,controls_mstimer2:()=>controls_mstimer2,controls_mstimer2_start:()=>controls_mstimer2_start,controls_mstimer2_stop:()=>controls_mstimer2_stop,reset:()=>system_reset,time_localtime:()=>time_localtime,time_sleep:()=>system_time_sleep});var turtle_namespaceObject={};__webpack_require__.r(turtle_namespaceObject),__webpack_require__.d(turtle_namespaceObject,{turtle_bgcolor:()=>turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_bgcolor_hex_new,turtle_circle:()=>turtle_circle,turtle_circle_advanced:()=>turtle_circle_advanced,turtle_clear:()=>turtle_clear,turtle_clone:()=>turtle_clone,turtle_color:()=>turtle_color,turtle_color_hex:()=>turtle_color_hex,turtle_color_seclet:()=>turtle_color_seclet,turtle_create:()=>turtle_create,turtle_done:()=>turtle_done,turtle_exitonclick:()=>turtle_exitonclick,turtle_fill:()=>turtle_fill,turtle_fillcolor:()=>turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_getscreen,turtle_goto:()=>turtle_goto,turtle_listen:()=>turtle_listen,turtle_move:()=>turtle_move,turtle_numinput:()=>turtle_numinput,turtle_onclick:()=>turtle_onclick,turtle_onkey:()=>turtle_onkey,turtle_ontimer:()=>turtle_ontimer,turtle_pencolor:()=>turtle_pencolor,turtle_pencolor_hex:()=>turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_pencolor_hex_new,turtle_penup:()=>turtle_penup,turtle_pos_shape:()=>turtle_pos_shape,turtle_rotate:()=>turtle_rotate,turtle_screen_delay:()=>turtle_screen_delay,turtle_screen_savefig:()=>turtle_screen_savefig,turtle_setheading:()=>turtle_setheading,turtle_setxy:()=>turtle_setxy,turtle_shape:()=>turtle_shape,turtle_shapesize:()=>turtle_shapesize,turtle_size:()=>turtle_size,turtle_size_speed:()=>turtle_size_speed,turtle_speed:()=>turtle_speed,turtle_textinput:()=>turtle_textinput,turtle_visible:()=>turtle_visible,turtle_write:()=>turtle_write,turtle_write_format:()=>turtle_write_format,turtle_write_format_skulpt:()=>turtle_write_format_skulpt});var generators_ai_namespaceObject={};__webpack_require__.r(generators_ai_namespaceObject),__webpack_require__.d(generators_ai_namespaceObject,{AI_ChooseAndGet:()=>ai_AI_ChooseAndGet,AI_Face_match:()=>ai_AI_Face_match,AI_ImageClassify:()=>ai_AI_ImageClassify,AI_ImageClassify_Func:()=>ai_AI_ImageClassify_Func,AI_Nlp:()=>ai_AI_Nlp,AI_Nlp_Func:()=>ai_AI_Nlp_Func,AI_Nlp_Func_sim:()=>ai_AI_Nlp_Func_sim,AI_Nlp_Sim:()=>ai_AI_Nlp_Sim,AI_Nlp_Topic:()=>ai_AI_Nlp_Topic,AI_Nlp_newsSummary:()=>ai_AI_Nlp_newsSummary,AI_Ocr:()=>ai_AI_Ocr,AI_Ocr_Func:()=>ai_AI_Ocr_Func,AI_Speech_asr:()=>ai_AI_Speech_asr,AI_Speech_synthesis:()=>ai_AI_Speech_synthesis,AI_audio:()=>ai_AI_audio,AI_client:()=>ai_AI_client,AI_photo:()=>ai_AI_photo,AI_result:()=>ai_AI_result});var generators_algorithm_namespaceObject={};__webpack_require__.r(generators_algorithm_namespaceObject),__webpack_require__.d(generators_algorithm_namespaceObject,{algorithm_add_path:()=>algorithm_algorithm_add_path,algorithm_add_school:()=>algorithm_algorithm_add_school,algorithm_all_books:()=>algorithm_algorithm_all_books,algorithm_all_books_sequence:()=>algorithm_algorithm_all_books_sequence,algorithm_book_scale:()=>algorithm_algorithm_book_scale,algorithm_check_feet:()=>algorithm_algorithm_check_feet,algorithm_chick_calculate:()=>algorithm_algorithm_chick_calculate,algorithm_color_seclet:()=>algorithm_algorithm_color_seclet,algorithm_current_school:()=>algorithm_algorithm_current_school,algorithm_del_path:()=>algorithm_algorithm_del_path,algorithm_delete_book:()=>algorithm_algorithm_delete_book,algorithm_divide_books:()=>algorithm_algorithm_divide_books,algorithm_find_path:()=>algorithm_algorithm_find_path,algorithm_first_book:()=>algorithm_algorithm_first_book,algorithm_fz_calc:()=>algorithm_algorithm_fz_calc,algorithm_fz_compare:()=>algorithm_algorithm_fz_compare,algorithm_fz_move:()=>algorithm_algorithm_fz_move,algorithm_fz_set_min:()=>algorithm_algorithm_fz_set_min,algorithm_get_current_location:()=>algorithm_algorithm_get_current_location,algorithm_get_half_books:()=>algorithm_algorithm_get_half_books,algorithm_hxdb_add:()=>algorithm_algorithm_hxdb_add,algorithm_hxdb_init_soldier:()=>algorithm_algorithm_hxdb_init_soldier,algorithm_hxdb_last_line:()=>algorithm_algorithm_hxdb_last_line,algorithm_hxdb_result:()=>algorithm_algorithm_hxdb_result,algorithm_hxdb_stand_in_line:()=>algorithm_algorithm_hxdb_stand_in_line,algorithm_init_fzsf:()=>algorithm_algorithm_init_fzsf,algorithm_init_hxdb:()=>algorithm_algorithm_init_hxdb,algorithm_init_jttl:()=>algorithm_algorithm_init_jttl,algorithm_move_recent:()=>algorithm_algorithm_move_recent,algorithm_new_path:()=>algorithm_algorithm_new_path,algorithm_next_book:()=>algorithm_algorithm_next_book,algorithm_no_left:()=>algorithm_algorithm_no_left,algorithm_no_path:()=>algorithm_algorithm_no_path,algorithm_no_ring2:()=>algorithm_algorithm_no_ring2,algorithm_not_home:()=>algorithm_algorithm_not_home,algorithm_not_school:()=>algorithm_algorithm_not_school,algorithm_number_add:()=>algorithm_algorithm_number_add,algorithm_number_zero:()=>algorithm_algorithm_number_zero,algorithm_prepare:()=>algorithm_algorithm_prepare,algorithm_prepare2:()=>algorithm_algorithm_prepare2,algorithm_prepare_2_1:()=>algorithm_algorithm_prepare_2_1,algorithm_prepare_2_2:()=>algorithm_algorithm_prepare_2_2,algorithm_print_book2:()=>algorithm_algorithm_print_book2,algorithm_print_jttl_answer:()=>algorithm_algorithm_print_jttl_answer,algorithm_print_number:()=>algorithm_algorithm_print_number,algorithm_print_path:()=>algorithm_algorithm_print_path,algorithm_print_path2:()=>algorithm_algorithm_print_path2,algorithm_rabbit_add:()=>algorithm_algorithm_rabbit_add,algorithm_rabbit_number_in_range:()=>algorithm_algorithm_rabbit_number_in_range,algorithm_rabbit_zero:()=>algorithm_algorithm_rabbit_zero,algorithm_return_path:()=>algorithm_algorithm_return_path,algorithm_set_path:()=>algorithm_algorithm_set_path,algorithm_two_left:()=>algorithm_algorithm_two_left,algorithm_void_path:()=>algorithm_algorithm_void_path,algorithm_yes_ring2:()=>algorithm_algorithm_yes_ring2,hanoi_init:()=>algorithm_hanoi_init,hanoi_init_offline:()=>algorithm_hanoi_init_offline,hanoi_move:()=>algorithm_hanoi_move});var generators_communicate_namespaceObject={};__webpack_require__.r(generators_communicate_namespaceObject),__webpack_require__.d(generators_communicate_namespaceObject,{requests_attribute:()=>communicate_requests_attribute,requests_get:()=>communicate_requests_get,requests_get_old:()=>communicate_requests_get_old,requests_method:()=>communicate_requests_method,requests_post:()=>communicate_requests_post});var generators_data_namespaceObject={};__webpack_require__.r(generators_data_namespaceObject),__webpack_require__.d(generators_data_namespaceObject,{array_create:()=>data_array_create,array_toarray:()=>data_array_toarray,dataframe_aggregate_func:()=>data_dataframe_aggregate_func,dataframe_create:()=>data_dataframe_create,dataframe_create_from_index:()=>data_dataframe_create_from_index,dataframe_create_from_one_index:()=>data_dataframe_create_from_one_index,dataframe_fillna:()=>data_dataframe_fillna,dataframe_get:()=>data_dataframe_get,dataframe_groupby:()=>data_dataframe_groupby,dataframe_head_tail:()=>data_dataframe_head_tail,dataframe_info:()=>data_dataframe_info,dataframe_median:()=>data_dataframe_median,dataframe_select:()=>data_dataframe_select,dataframe_sort_values:()=>data_dataframe_sort_values,matrix_multiplication:()=>data_matrix_multiplication,matrix_transpose:()=>data_matrix_transpose,numpy_argmin_template_match:()=>data_numpy_argmin_template_match,numpy_astype:()=>data_numpy_astype,numpy_c_:()=>data_numpy_c_,numpy_dot:()=>data_numpy_dot,numpy_linalg_det:()=>data_numpy_linalg_det,numpy_linalg_inv:()=>data_numpy_linalg_inv,numpy_max:()=>data_numpy_max,numpy_mean:()=>data_numpy_mean,numpy_mean_digit:()=>data_numpy_mean_digit,numpy_min:()=>data_numpy_min,numpy_ones:()=>data_numpy_ones,numpy_random_random:()=>data_numpy_random_random,numpy_reshape:()=>data_numpy_reshape,numpy_shape:()=>data_numpy_shape,numpy_size:()=>data_numpy_size,numpy_square:()=>data_numpy_square,numpy_std:()=>data_numpy_std,numpy_sum:()=>data_numpy_sum,numpy_trig:()=>data_numpy_trig,pandas_drop_columns:()=>data_pandas_drop_columns,pandas_dropna:()=>data_pandas_dropna,pandas_readcsv:()=>data_pandas_readcsv,pl_axes:()=>data_pl_axes,pl_bar:()=>data_pl_bar,pl_hist:()=>data_pl_hist,pl_label:()=>data_pl_label,pl_legend:()=>data_pl_legend,pl_pie:()=>data_pl_pie,pl_plot:()=>data_pl_plot,pl_plot_bar:()=>data_pl_plot_bar,pl_plot_easy:()=>data_pl_plot_easy,pl_plot_scatter:()=>data_pl_plot_scatter,pl_plot_xy:()=>data_pl_plot_xy,pl_savefig:()=>data_pl_savefig,pl_show:()=>data_pl_show,pl_subplot:()=>data_pl_subplot,pl_text:()=>data_pl_text,pl_ticks:()=>data_pl_ticks,pl_title:()=>data_pl_title,plot_axes:()=>data_plot_axes,plot_bar:()=>data_plot_bar,plot_cla:()=>data_plot_cla,plot_hist:()=>data_plot_hist,plot_label:()=>data_plot_label,plot_legend:()=>data_plot_legend,plot_pie:()=>data_plot_pie,plot_plot:()=>data_plot_plot,plot_plot_bar:()=>data_plot_plot_bar,plot_plot_easy:()=>data_plot_plot_easy,plot_plot_scatter:()=>data_plot_plot_scatter,plot_plot_xy:()=>data_plot_plot_xy,plot_savefig:()=>data_plot_savefig,plot_show:()=>data_plot_show,plot_subplot:()=>data_plot_subplot,plot_text:()=>data_plot_text,plot_ticks:()=>data_plot_ticks,plot_title:()=>data_plot_title,py_sum:()=>data_py_sum,pylab_imshow:()=>data_pylab_imshow,series_create:()=>data_series_create,series_create_from_index:()=>data_series_create_from_index,series_create_from_text:()=>data_series_create_from_text,series_get_num:()=>data_series_get_num,series_index_value:()=>data_series_index_value});var generators_datastructure_namespaceObject={};__webpack_require__.r(generators_datastructure_namespaceObject),__webpack_require__.d(generators_datastructure_namespaceObject,{ds_add_node_by_attr:()=>datastructure_ds_add_node_by_attr,ds_add_node_by_name:()=>datastructure_ds_add_node_by_name,ds_create_linkedlist:()=>datastructure_ds_create_linkedlist,ds_create_node:()=>datastructure_ds_create_node,ds_del_node_by_attr:()=>datastructure_ds_del_node_by_attr,ds_del_node_by_name:()=>datastructure_ds_del_node_by_name,ds_get_node_attr:()=>datastructure_ds_get_node_attr,ds_reverse_linkedlist:()=>datastructure_ds_reverse_linkedlist,ds_set_node_attr:()=>datastructure_ds_set_node_attr});var generators_factory_namespaceObject={};__webpack_require__.r(generators_factory_namespaceObject),__webpack_require__.d(generators_factory_namespaceObject,{factory_block:()=>factory_factory_block,factory_block_return:()=>factory_factory_block_return,factory_block_return_with_textarea:()=>factory_factory_block_return_with_textarea,factory_block_with_textarea:()=>factory_factory_block_with_textarea,factory_callMethod_noreturn:()=>factory_factory_callMethod_noreturn,factory_callMethod_return:()=>factory_factory_callMethod_return,factory_declare:()=>factory_factory_declare,factory_from_import:()=>factory_factory_from_import,factory_function_noreturn:()=>factory_factory_function_noreturn,factory_function_return:()=>factory_factory_function_return,factory_import:()=>factory_factory_import});var generators_hardware_namespaceObject={};__webpack_require__.r(generators_hardware_namespaceObject),__webpack_require__.d(generators_hardware_namespaceObject,{hardware_arduino_analog_read:()=>hardware_hardware_arduino_analog_read,hardware_arduino_analog_write:()=>hardware_hardware_arduino_analog_write,hardware_arduino_digital_read:()=>hardware_hardware_arduino_digital_read,hardware_arduino_digital_write:()=>hardware_hardware_arduino_digital_write,hardware_arduino_start:()=>hardware_hardware_arduino_start,inout_highlow:()=>hardware_inout_highlow});var generators_inout_namespaceObject={};__webpack_require__.r(generators_inout_namespaceObject),__webpack_require__.d(generators_inout_namespaceObject,{inout_input:()=>inout_inout_input,inout_print:()=>inout_inout_print,inout_print_end:()=>inout_inout_print_end,inout_print_inline:()=>inout_inout_print_inline,inout_print_many:()=>inout_inout_print_many,inout_type_input:()=>inout_inout_type_input,pyinout_type_input:()=>inout_pyinout_type_input});var generators_iot_namespaceObject={};__webpack_require__.r(generators_iot_namespaceObject),__webpack_require__.d(generators_iot_namespaceObject,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>iot_IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE,IOT_EMQX_PING:()=>iot_IOT_EMQX_PING,IOT_FORMATTING:()=>iot_IOT_FORMATTING,IOT_FORMAT_STRING:()=>iot_IOT_FORMAT_STRING,IOT_MIXIO_NTP:()=>iot_IOT_MIXIO_NTP,IOT_MIXIO_PUBLISH:()=>iot_IOT_MIXIO_PUBLISH,IOT_MIXIO_SUBSCRIBE:()=>iot_IOT_MIXIO_SUBSCRIBE,IOT_MIXIO_UNSUBSCRIBE:()=>iot_IOT_MIXIO_UNSUBSCRIBE,iot_mixio_check:()=>iot_iot_mixio_check,iot_mixio_connect:()=>iot_iot_mixio_connect,iot_mixio_connect_only:()=>iot_iot_mixio_connect_only,iot_mixio_disconnect:()=>iot_iot_mixio_disconnect,iot_mixio_format_msg:()=>iot_iot_mixio_format_msg,iot_mixio_format_topic:()=>iot_iot_mixio_format_topic,iot_mixly_key:()=>iot_iot_mixly_key,iot_mixly_key_py:()=>iot_iot_mixly_key_py});var generators_pins_namespaceObject={};__webpack_require__.r(generators_pins_namespaceObject),__webpack_require__.d(generators_pins_namespaceObject,{pins_analog_read:()=>pins_pins_analog_read,pins_analog_write:()=>pins_pins_analog_write,pins_digital:()=>pins_digital,pins_digital_read:()=>pins_pins_digital_read,pins_digital_write:()=>pins_pins_digital_write});var generators_serial_namespaceObject={};__webpack_require__.r(generators_serial_namespaceObject),__webpack_require__.d(generators_serial_namespaceObject,{serial_close:()=>serial_serial_close,serial_open:()=>serial_serial_open,serial_read_b:()=>serial_serial_read_b,serial_write:()=>serial_serial_write});var generators_sklearn_namespaceObject={};__webpack_require__.r(generators_sklearn_namespaceObject),__webpack_require__.d(generators_sklearn_namespaceObject,{sklearn_DecisionTreeClassifier_Regressor:()=>sklearn_sklearn_DecisionTreeClassifier_Regressor,sklearn_GaussianNB:()=>sklearn_sklearn_GaussianNB,sklearn_KMeans:()=>sklearn_sklearn_KMeans,sklearn_KMeans_fit:()=>sklearn_sklearn_KMeans_fit,sklearn_KNeighborsClassifier_Regressor:()=>sklearn_sklearn_KNeighborsClassifier_Regressor,sklearn_LinearRegression:()=>sklearn_sklearn_LinearRegression,sklearn_RandomForestClassifier_Regressor:()=>sklearn_sklearn_RandomForestClassifier_Regressor,sklearn_Ridge:()=>sklearn_sklearn_Ridge,sklearn_cluster_centers_labels_inertia:()=>sklearn_sklearn_cluster_centers_labels_inertia,sklearn_coef_intercept:()=>sklearn_sklearn_coef_intercept,sklearn_data_target:()=>sklearn_sklearn_data_target,sklearn_fit:()=>sklearn_sklearn_fit,sklearn_fit_no_target:()=>sklearn_sklearn_fit_no_target,sklearn_load:()=>sklearn_sklearn_load,sklearn_make_blobs:()=>sklearn_sklearn_make_blobs,sklearn_make_classification:()=>sklearn_sklearn_make_classification,sklearn_make_regression:()=>sklearn_sklearn_make_regression,sklearn_pca:()=>sklearn_sklearn_pca,sklearn_pca_fit_transform:()=>sklearn_sklearn_pca_fit_transform,sklearn_predict:()=>sklearn_sklearn_predict,sklearn_save_load_model:()=>sklearn_sklearn_save_load_model,sklearn_score:()=>sklearn_sklearn_score,sklearn_score_no_target:()=>sklearn_sklearn_score_no_target,sklearn_train_test_split:()=>sklearn_sklearn_train_test_split,sklearn_train_test_split_no_target:()=>sklearn_sklearn_train_test_split_no_target});var generators_system_namespaceObject={};__webpack_require__.r(generators_system_namespaceObject),__webpack_require__.d(generators_system_namespaceObject,{controls_end_program:()=>system_controls_end_program,controls_millis:()=>generators_system_controls_millis,time_localtime:()=>system_time_localtime});var generators_turtle_namespaceObject={};__webpack_require__.r(generators_turtle_namespaceObject),__webpack_require__.d(generators_turtle_namespaceObject,{turtle_bgcolor:()=>turtle_turtle_bgcolor,turtle_bgcolor_hex:()=>turtle_turtle_bgcolor_hex,turtle_bgcolor_hex_new:()=>turtle_turtle_bgcolor_hex_new,turtle_circle:()=>turtle_turtle_circle,turtle_circle_advanced:()=>turtle_turtle_circle_advanced,turtle_clear:()=>turtle_turtle_clear,turtle_clone:()=>turtle_turtle_clone,turtle_color:()=>turtle_turtle_color,turtle_color_hex:()=>turtle_turtle_color_hex,turtle_color_seclet:()=>turtle_turtle_color_seclet,turtle_create:()=>turtle_turtle_create,turtle_done:()=>turtle_turtle_done,turtle_exitonclick:()=>turtle_turtle_exitonclick,turtle_fill:()=>turtle_turtle_fill,turtle_fillcolor:()=>turtle_turtle_fillcolor,turtle_fillcolor_hex:()=>turtle_turtle_fillcolor_hex,turtle_fillcolor_hex_new:()=>turtle_turtle_fillcolor_hex_new,turtle_getscreen:()=>turtle_turtle_getscreen,turtle_goto:()=>turtle_turtle_goto,turtle_listen:()=>turtle_turtle_listen,turtle_move:()=>turtle_turtle_move,turtle_numinput:()=>turtle_turtle_numinput,turtle_onclick:()=>turtle_turtle_onclick,turtle_onkey:()=>turtle_turtle_onkey,turtle_ontimer:()=>turtle_turtle_ontimer,turtle_pencolor:()=>turtle_turtle_pencolor,turtle_pencolor_hex:()=>turtle_turtle_pencolor_hex,turtle_pencolor_hex_new:()=>turtle_turtle_pencolor_hex_new,turtle_penup:()=>turtle_turtle_penup,turtle_pos_shape:()=>turtle_turtle_pos_shape,turtle_rotate:()=>turtle_turtle_rotate,turtle_screen_delay:()=>turtle_turtle_screen_delay,turtle_screen_savefig:()=>turtle_turtle_screen_savefig,turtle_setheading:()=>turtle_turtle_setheading,turtle_setxy:()=>turtle_turtle_setxy,turtle_shape:()=>turtle_turtle_shape,turtle_shapesize:()=>turtle_turtle_shapesize,turtle_size:()=>turtle_turtle_size,turtle_size_speed:()=>turtle_turtle_size_speed,turtle_speed:()=>turtle_turtle_speed,turtle_textinput:()=>turtle_turtle_textinput,turtle_visible:()=>turtle_turtle_visible,turtle_write:()=>turtle_turtle_write,turtle_write_format:()=>turtle_turtle_write_format,turtle_write_format_skulpt:()=>turtle_turtle_write_format_skulpt});const external_Blockly_namespaceObject=Blockly,external_Mixly_namespaceObject=Mixly,Variables={NAME_TYPE:"VARIABLE",allVariables:function(e){var t;if(e.getDescendants)t=e.getDescendants();else{if(!e.getAllBlocks)throw"Not Block or Workspace: "+e;t=e.getAllBlocks()}for(var n=Object.create(null),a=0;a1&&(s+=a)):n=s}else n="i";return n}},variables=Variables; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Names{constructor(e,t){if(this.variablePrefix_=t||"",this.reservedDict_=Object.create(null),e)for(var n=e.split(","),a=0;a0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_if_if");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_if_elseif");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_if_else");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_if_elseif":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_if_else":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+e).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_range={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},controls_forEach={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("LIST").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_whileUntil={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return{WHILE:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},controls_try_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var e=document.createElement("mutation");return this.elseifCount_&&e.setAttribute("elseif",this.elseifCount_),this.elseCount_&&e.setAttribute("else",1),e},domToMutation:function(e){var t=this,n=[],a=[];this.elseCount_&&this.removeInput("ELSE");for(var _=this.elseifCount_;_>0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_try");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_except");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_finally");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_except":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_finally":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+e).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_flow_statements={init:function(){this.setColour(LOOPS_HUE);var e=new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(e,"FLOW").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var e=t.getFieldValue("FLOW");return{BREAK:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[e]}))},onchange:function(){if(this.workspace){var e=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type||"do_while"==t.type){e=!0;break}t=t.getSurroundParent()}while(t);e?this.setWarningText(null):this.setWarningText(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},controls_for={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_for_range={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};controls_whileUntil.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],controls_flow_statements.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const controls_if_if={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},controls_if_elseif={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},controls_if_else={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},controls_try={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},controls_except={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},controls_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},controls_repeat_ext={init:function(){this.jsonInit({message0:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:LOOPS_HUE,tooltip:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},controls_lambda={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STAT),this.setOutput(!0)}},controls_pass={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},controls_thread={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},do_while={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LOOPS_HUE),this.setTooltip("do-while loop"),this.setHelpUrl("")}},garbage_collection={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},get_mem_alloc={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},get_mem_free={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},get_unique_identifier={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET+external_Blockly_namespaceObject.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_GET_UNIQUE_IDEN)}},datetime_fromtimestamp={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},gene_unique_identifier={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},MATH_HUE=230;external_Blockly_namespaceObject.FieldTextInput.math_number_validator=function(e){return String(e)},external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank=function(e){if(""===e)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(e)?String(e):null};const math_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_constant={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},math_constant_mp={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},math_arithmetic={init:function(){this.setColour(MATH_HUE),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_selfcalcu={init:function(){this.setColour(MATH_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_bit={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},math_trig={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{SIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_SIN,COS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_COS,TAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},math_dec={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_BIN,"bin"],[external_Blockly_namespaceObject.Msg.MATH_OCT,"oct"],[external_Blockly_namespaceObject.Msg.MATH_HEX,"hex"]];this.setColour(MATH_HUE),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{bin:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_BIN,oct:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_OCT,hex:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_HEX}[e]}))}},math_to_int={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"],[external_Blockly_namespaceObject.Msg.MATH_ABS,"fabs"],[external_Blockly_namespaceObject.Msg.MATH_SQRT,"sqrt"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{sqrt:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_SQ,round:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[e]}))}},math_max_min={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_MAX,"max"],[external_Blockly_namespaceObject.Msg.MIXLY_MIN,"min"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{max:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAX,min:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MIN}[e]}))}},math_number_base_conversion={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_TWO,"two"],[external_Blockly_namespaceObject.Msg.MATH_EIGHT,"eight"],[external_Blockly_namespaceObject.Msg.MATH_TEN,"ten"],[external_Blockly_namespaceObject.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(MATH_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_ZHW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP2").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),n={two:external_Blockly_namespaceObject.Msg.MATH_Before_two,eight:external_Blockly_namespaceObject.Msg.MATH_Before_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Before_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Before_sixteen},a=t.getFieldValue("OP2"),_={two:external_Blockly_namespaceObject.Msg.MATH_Behind_two,eight:external_Blockly_namespaceObject.Msg.MATH_Behind_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Behind_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Behind_sixteen};return n[e]+_[a]}))}},math_random={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_INT,"int"],[external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_RANDOM).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TYPE"),n={int:external_Blockly_namespaceObject.Msg.LANG_MATH_INT,float:external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT_RANDOM};return external_Blockly_namespaceObject.Msg.MATH_RANDOM_INT_TOOLTIP+n[e]}))}},math_constrain={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_CONSTRAIN_TOOLTIP)}},math_map={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAP)}},math_indexer_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_random_seed={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},math_round={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ROUND).appendField(external_Blockly_namespaceObject.Msg.TEXT_KEEP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_ROUND_NEW_TOOLTIP)}},text_to_number={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_BITES,"b"],[external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"bti"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[e]}))}},text_to_number_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[e]}))}},base_map=math_map,turn_to_int={init:function(){this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},generate_cartesian_product={init:function(){this.setColour(MATH_HUE),this.itemCount_=1,this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PRODUCT+external_Blockly_namespaceObject.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("lists_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a1&&"\\"===e.charAt(0)){var t=e.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(e).substring(0,2);if("x"===t&&"0"===e.charAt(2)&&"B"===e.charAt(3))return String(e).substring(0,4)}return String(e).substring(0,1)};const text_char={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput("",external_Blockly_namespaceObject.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(e){if(1==e)var t="../../media/quote2.png";else t="../../media/quote3.png";return new external_Blockly_namespaceObject.FieldImage(t,7,12,'"')}},text_join={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ascii_to_char={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},char_to_ascii={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},number_to_text={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},text_length={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},text_char_at2={init:function(){this.WHERE_OPTIONS=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM+1+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET,"MODE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=e.getFieldValue("WHERE"),a="";switch(t+" "+n){case"GET FROM_START":case"GET FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(a+=" "+external_Blockly_namespaceObject.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",external_Blockly_namespaceObject.Msg.ONE_BASED_INDEXING?"#1":"#0")),a}));var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHERE"),n={FROM_START:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM};return external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+n[e]+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at",t),e},domToMutation:function(e){var t="true"==e.getAttribute("statement");this.updateStatement_(t),e="false"!=e.getAttribute("at"),this.updateAt_(e)},updateStatement_:function(e){e!=!this.outputConnection&&(this.unplug(!0,!0),e?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(e){this.removeInput("AT"),this.removeInput("ORDINAL",!0),e?(this.appendValueInput("AT").setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new external_Blockly_namespaceObject.FieldDropdown(this.WHERE_OPTIONS,(function(t){var n="FROM_START"==t||"FROM_END"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},text_char_at={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)}},text_random_char={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},text_substring2={init:function(){this.WHERE_OPTIONS_1=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT1").type==external_Blockly_namespaceObject.INPUT_VALUE;e.setAttribute("at1",t);var n=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",n),e},domToMutation:function(e){var t="true"==e.getAttribute("at1"),n="true"==e.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,n)},updateAt_:function(e,t){this.removeInput("AT"+e),this.removeInput("ORDINAL"+e,!0),t?(this.appendValueInput("AT"+e).setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+e).appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+e);var n=new external_Blockly_namespaceObject.FieldDropdown(this["WHERE_OPTIONS_"+e],(function(n){var a="FROM_START"==n||"FROM_END"==n;if(a!=t){var _=this.sourceBlock_;return _.updateAt_(e,a),_.setFieldValue(n,"WHERE"+e),null}}));this.getInput("AT"+e).appendField(n,"WHERE"+e),1==e&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},text_substring={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},text_equals_starts_ends={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_EQUALS,"==="],[external_Blockly_namespaceObject.Msg.MIXLY_STARTSWITH,"startswith"],[external_Blockly_namespaceObject.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},text_compare_to={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO_HELP)}},text_capital={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_UPPER,"upper"],[external_Blockly_namespaceObject.Msg.TEXT_TITLE,"title"],[external_Blockly_namespaceObject.Msg.TEXT_CAPITALIZE,"capitalize"],[external_Blockly_namespaceObject.Msg.TEXT_SWAPCASE,"swapcase"],[external_Blockly_namespaceObject.Msg.TEXT_LOWER,"lower"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CAPITAL");return{upper:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[e]}))}},text_center={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_LJUST,"ljust"],[external_Blockly_namespaceObject.Msg.TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_RJUST,"rjust"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},text_find={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},text_join_seq={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},text_replace={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},text_split={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},text_strip={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH,"strip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"lstrip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{strip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[e]}))}},text_format={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("text_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_create_with_container={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},dicts_create_with_item={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dicts_keys={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_KEYS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},dicts_get={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_TOOLTIP)}},dicts_get_default={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},dicts_add_or_change={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dicts_delete={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP)}},dicts_update={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT2").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_clear={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_CLEAR),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_items={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_ITEMS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},dicts_values={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_VALUES),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dicts_length={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dicts_deldict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_DELDICT),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_add_change_del={init:function(){this.MODE=[[external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t="";switch(e.getFieldValue("WHERE")){case"INSERT":t=external_Blockly_namespaceObject.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",t),e},domToMutation:function(e){var t="true"==e.getAttribute("at2");this.updateAt_(t)},updateAt_:function(e){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),e?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new external_Blockly_namespaceObject.FieldDropdown(this.MODE,(function(t){var n="INSERT"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},dicts_pop={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},dicts_setdefault={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dicts_create_with_noreturn={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("dicts_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_todict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dicts_to_json={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},json_to_dicts={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dicts_to_to={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dicts_to_json2={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},LOGIC_HUE=210,logic_compare={init:function(){var e=external_Blockly_namespaceObject.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{EQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[e]})),this.prevBlocks_=[null,null]}},logic_compare_continous={init:function(){var e=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP1"),this.appendValueInput("C").appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},logic_operation={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_AND,"AND"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_OR,"OR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_NOR,"NOR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{AND:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[e]}))}},logic_negate={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},logic_boolean={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TOOLTIP)}},logic_null={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LOGIC_NULL),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NULL_TOOLTIP)}},logic_true_or_false={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},logic_is_in={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_APPEND_TO,"in"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.IN)}},logic_is={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},logic_tobool={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},STORAGE_HUE=0,storage_open_file_with_os={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("fn").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},storage_fileopen={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},storage_fileopen_new={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_fileopen_new_encoding={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_file_write={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},storage_get_contents_without_para={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},storage_get_contents={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+a}))}},storage_get_a_line={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MICROBIT_PYTHON_TYPE)}},storage_can_write_ornot={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.HTML_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},storage_get_filename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},storage_close_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},storage_list_all_files={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const storage_delete_file={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},storage_get_file_size={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},storage_file_tell={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},storage_file_seek={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+_+"x"+a}))}},storage_get_current_dir={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},storage_make_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("PATH").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET+{mkdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},storage_rename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},storage_change_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},storage_is_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_FILE,"isfile"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},sdcard_use_spi_init={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("SPISUB").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP+external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sdcard_mount={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},procedures_defnoreturn={init:function(){var e=external_Blockly_namespaceObject.Procedures.findLegalName("",this),t=new external_Blockly_namespaceObject.FieldTextInput(e,external_Blockly_namespaceObject.Procedures.rename);t.setSpellcheck(!1),this.appendDummyInput().appendField(t,"NAME").appendField("","PARAMS"),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(e){this.hasStatements_!==e&&(e?(this.appendStatementInput("STACK").appendField(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=e)},updateParams_:function(){var e="";this.arguments_.length&&(e=external_Blockly_namespaceObject.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),external_Blockly_namespaceObject.Events.disable();try{this.setFieldValue(e,"PARAMS")}finally{external_Blockly_namespaceObject.Events.enable()}},mutationToDom:function(e){var t=external_Blockly_namespaceObject.utils.xml.createElement("mutation");e&&t.setAttribute("name",this.getFieldValue("NAME"));for(var n=0;n"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},html_form={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_FORM_CONTENT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_TEXT,"text"],[external_Blockly_namespaceObject.Msg.HTML_EMAIL,"email"],[external_Blockly_namespaceObject.Msg.HTML_NUMBER,"number"],[external_Blockly_namespaceObject.Msg.HTML_PASSWORD,"password"],[external_Blockly_namespaceObject.Msg.HTML_CHECKBOX,"checkbox"],[external_Blockly_namespaceObject.Msg.HTML_RADIOBUTTON,"radiobutton"],[external_Blockly_namespaceObject.Msg.HTML_BUTTON,"button"],[external_Blockly_namespaceObject.Msg.HTML_COLOUR,"colour"],[external_Blockly_namespaceObject.Msg.HTML_DATE,"date"],[external_Blockly_namespaceObject.Msg.HTML_LOCALTIME,"local time"],[external_Blockly_namespaceObject.Msg.HTML_FILE,"file"],[external_Blockly_namespaceObject.Msg.HTML_HIDDEN,"hidden"],[external_Blockly_namespaceObject.Msg.HTML_IMAGE,"image"],[external_Blockly_namespaceObject.Msg.HTML_MONTH,"month"],[external_Blockly_namespaceObject.Msg.HTML_RANGE,"range"],[external_Blockly_namespaceObject.Msg.HTML_RESET,"reset"],[external_Blockly_namespaceObject.Msg.HTML_SEARCH,"search"],[external_Blockly_namespaceObject.Msg.HTML_SUBMIT,"submit"],[external_Blockly_namespaceObject.Msg.HTML_TELEPHONENUMBER,"telephone number"],[external_Blockly_namespaceObject.Msg.HTML_TIME,"time"],[external_Blockly_namespaceObject.Msg.HTML_URL,"url"],[external_Blockly_namespaceObject.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_NAME).appendField(new external_Blockly_namespaceObject.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_VALUE).appendField(new external_Blockly_namespaceObject.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_content={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_color={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_text={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_TEXT).appendField(new external_Blockly_namespaceObject.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UTILITY_HUE=160,raw_table={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTable(""),"TEXT")}},raw_block={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT")}},raw_expression={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},raw_empty={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},text_comment={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendTitle("Comment:").appendTitle(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},type_check={init:function(){this.setColour(UTILITY_HUE),this.appendValueInput("VALUE").appendField(external_Blockly_namespaceObject.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},text_print_multiple={init:function(){this.setColour(UTILITY_HUE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=external_Blockly_namespaceObject.Block.obtain(e,"text_print_multiple_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a= stop:"," yield start"," start -= abs(step)"])};if(e=function(e,t,n){return"("+e+" <= "+t+") and "+o()+"("+e+", "+t+", "+n+") or "+p()+"("+e+", "+t+", "+n+")"},external_Blockly_namespaceObject.isNumber(a)&&external_Blockly_namespaceObject.isNumber(_)&&external_Blockly_namespaceObject.isNumber(l))a=parseFloat(a),_=parseFloat(_),l=Math.abs(parseFloat(l)),0==a%1&&0==_%1&&0==l%1?(a<=_?(_++,e=0==a&&1==l?_:a+", "+_,1!=l&&(e+=", "+l)):e=a+", "+--_+", -"+l,e="range("+e+")"):(e=a<_?o():p(),e+="("+a+", "+_+", "+l+")");else{var r=function(e,a){if(external_Blockly_namespaceObject.isNumber(e))e=parseFloat(e);else{var _=t.variableDB_.getDistinctName(n+a,external_Blockly_namespaceObject.Variables.NAME_TYPE);i+=_+" = "+e+"\n",e=_}return e};a=r(a,"_start"),_=r(_,"_end");r(l,"_inc"),e="number"==typeof a&&"number"==typeof _?a<_?o(0,_):p(0,_):e(a,_,l)}return i+="for "+n+" in "+e+":\n"+s},control_controls_for_range=function(e,t){var n=t.variableDB_.getName(e.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.valueToCode(e,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(e,"TO",t.ORDER_NONE)||"0",l=t.valueToCode(e,"STEP",t.ORDER_NONE)||"1",s=t.statementToCode(e,"DO"),i=t.addLoopTrap(s,e.id)||t.PASS;return t.setups_.mixly_range="def mixly_range(start, stop, step):\n for i in range(start, stop + 1, step):\n yield i\n\n","for "+n+" in mixly_range("+a+", "+_+", "+l+"):\n"+i},control_controls_whileUntil=function(e,t){var n="UNTIL"==e.getFieldValue("MODE"),a=t.valueToCode(e,"BOOL",t.ORDER_NONE)||"False",_=t.statementToCode(e,"DO");return n&&(a="not "+a),"while "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_flow_statements=function(e){switch(e.getFieldValue("FLOW")){case"BREAK":return"break\n";case"CONTINUE":return"continue\n"}throw"Unknown flow statement."},control_controls_delay=function(e,t){return"sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},Panic_with_status_code=function(e,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},controls_millis=function(e,t){t.definitions_.import_time="import time";return["time.time()",t.ORDER_ATOMIC]},control_reset=function(e,t){return t.definitions_.import_microbit="from microbit import *","reset()\n"},controls_interrupts=function(){return"interrupts();\n"},controls_nointerrupts=function(){return"noInterrupts();\n"},control_controls_forEach=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"''",a=t.valueToCode(e,"LIST",t.ORDER_RELATIONAL)||"[]",_=t.statementToCode(e,"DO");return"for "+n+" in "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_range=function(e,t){return["range("+(t.valueToCode(this,"FROM",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"TO",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"STEP",t.ORDER_NONE)||"1")+")",t.ORDER_ATOMIC]},control_controls_lambda=function(e,t){var n="lambda "+(t.valueToCode(e,"BOOL",t.ORDER_NONE)||"None")+": "+(t.statementToCode(e,"DO")||"pass");return[n=n.replace("\n","").replace(" ",""),t.ORDER_ATOMIC]},time_sleep=function(e,t){return t.definitions_.import_time="import time","time.sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},control_controls_pass=function(){return"pass\n"},control_controls_thread=function(e,t){t.definitions_.import__thread="import _thread";var n=t.valueToCode(this,"VAR",t.ORDER_NONE)||"None";return"_thread.start_new_thread("+t.variableDB_.getName(t.valueToCode(this,"callback",t.ORDER_NONE)||"None",external_Blockly_namespaceObject.Procedures.NAME_TYPE)+", "+n+")\n"},control_do_while=function(e,t){var n=t.valueToCode(this,"select_data",t.ORDER_NONE)||"False",a=t.statementToCode(this,"input_data");return a="true"==this.getFieldValue("type")?a+" if ("+n+"):\n break\n":a+" if not ("+n+"):\n break\n","while True:\n"+(a=t.addLoopTrap(a,this.id)||t.PASS)},control_controls_repeat_ext=function(e,t){var n=t.valueToCode(this,"TIMES",t.ORDER_ATOMIC),a=t.statementToCode(e,"DO");return"for _my_variable in range("+n+"):\n"+(a=t.addLoopTrap(a,e.id)||t.PASS)},control_garbage_collection=function(e,t){t.definitions_.import_gc="import gc";return"gc.collect()\n"},control_get_mem_alloc=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_alloc()",t.ORDER_ATOMIC]},control_get_mem_free=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_free()",t.ORDER_ATOMIC]},control_get_unique_identifier=function(e,t){t.definitions_.import_machine="import machine";return["machine.unique_id()",t.ORDER_ATOMIC]},controls_repeat=control_controls_repeat_ext,control_datetime_fromtimestamp=function(e,t){return t.definitions_.import_datatime="import datatime",["datatime.datatime.fromtimestamp("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},control_gene_unique_identifier=function(e,t){var n=external_Mixly_namespaceObject.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+n+"uuid"]="from "+n+" import uuid";return["uuid()",t.ORDER_ATOMIC]},math_math_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_constant=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_constant_mp=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_bit=function(e,t){var n=this.getFieldValue("OP"),a=t.ORDER_ATOMIC;return["("+(t.valueToCode(this,"A",a)||"0")+n+(t.valueToCode(this,"B",a)||"0")+")",a]},math_math_arithmetic=function(e,t){var n=(a={ADD:[" + ",t.ORDER_ADDITIVE],MINUS:[" - ",t.ORDER_ADDITIVE],MULTIPLY:[" * ",t.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",t.ORDER_MULTIPLICATIVE],QUYU:[" % ",t.ORDER_MULTIPLICATIVE],ZHENGCHU:[" // ",t.ORDER_MULTIPLICATIVE],POWER:[" ** ",t.ORDER_EXPONENTIATION]}[e.getFieldValue("OP")])[0],a=a[1];return[(t.valueToCode(e,"A",a)||"0")+n+(e=t.valueToCode(e,"B",a)||"0"),a]},math_math_selfcalcu=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_RELATIONAL)||"0",a=t.valueToCode(this,"B",t.ORDER_RELATIONAL)||"0";switch(this.getFieldValue("OP")){case"ADD":var _="+=";break;case"MINUS":_="-=";break;case"MULTIPLY":_="*=";break;case"DIVIDE":_="/=";break;case"QUYU":_="%=";break;case"ZHENGCHU":_="//=";break;case"POWER":_="**="}return n+" "+_+" "+a+"\n"},math_single=function(e,t){var n,a=e.getFieldValue("OP");if("NEG"==a)return["-"+(n=t.valueToCode(e,"NUM",t.ORDER_UNARY_SIGN)||"0"),t.ORDER_UNARY_SIGN];switch(t.definitions_.import_math="import math",e="SIN"==a||"COS"==a||"TAN"==a?t.valueToCode(e,"NUM",t.ORDER_MULTIPLICATIVE)||"0":t.valueToCode(e,"NUM",t.ORDER_NONE)||"0",a){case"ABS":n="math.fabs("+e+")";break;case"ROOT":n="math.sqrt("+e+")";break;case"LN":n="math.log("+e+")";break;case"LOG10":n="math.log10("+e+")";break;case"EXP":n="math.exp("+e+")";break;case"POW10":n="math.pow(10,"+e+")";break;case"ROUND":n="round("+e+")";break;case"ROUNDUP":n="math.ceil("+e+")";break;case"ROUNDDOWN":n="math.floor("+e+")";break;case"SIN":n="math.sin("+e+")";break;case"COS":n="math.cos("+e+")";break;case"TAN":n="math.tan("+e+")";break;case"++":n="++("+e+")";break;case"--":n="--("+e+")";break;case"-":n="-("+e+")"}if(n)return[n,t.ORDER_EXPONENTIATION];switch(a){case"ASIN":n="math.degrees(math.asin("+e+"))";break;case"ACOS":n="math.degrees(math.acos("+e+"))";break;case"ATAN":n="math.degrees(math.atan("+e+"))"}return[n,t.ORDER_MULTIPLICATIVE]},math_math_trig=math_single,math_math_dec=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+")",t.ORDER_ATOMIC]},math_math_to_int=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=this.getFieldValue("OP"),_="";return"round"===a?_=a+"("+n+")":(_="math."+a+"("+n+")",t.definitions_.import_math="import math"),[_,t.ORDER_ATOMIC]},math_math_max_min=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=t.valueToCode(this,"B",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+", "+a+")",t.ORDER_ATOMIC]},math_math_random=function(e,t){t.definitions_.import_random="import random";var n=this.getFieldValue("TYPE"),a=t.valueToCode(this,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(this,"TO",t.ORDER_NONE)||"0";if("int"==n)var l="random.randint("+a+", "+_+")";else if("float"==n)l="random.uniform("+a+", "+_+")";return[l,t.ORDER_UNARY_POSTFIX]},math_math_map=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE),a=t.valueToCode(this,"fromLow",t.ORDER_ATOMIC),_=t.valueToCode(this,"fromHigh",t.ORDER_ATOMIC),l=t.valueToCode(this,"toLow",t.ORDER_ATOMIC),s=t.valueToCode(this,"toHigh",t.ORDER_ATOMIC);return t.definitions_.import_mixpy_math_map="from mixpy import math_map",["math_map("+n+", "+a+", "+_+", "+l+", "+s+")",t.ORDER_NONE]},math_math_constrain=function(e,t){return["min(max("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"LOW",t.ORDER_NONE)||"0")+"), "+(t.valueToCode(this,"HIGH",t.ORDER_NONE)||"0")+")",t.ORDER_UNARY_POSTFIX]},math_math_number_base_conversion=function(e,t){var n=e.getFieldValue("OP"),a=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0",_=e.getFieldValue("OP2");t.definitions_.import_math="import math";var l="",s="10";if("two"==n?s="2":"eight"==n?s="8":"ten"==n?s="10":"sixteen"==n&&(s="16"),"two"==_?l="bin":"eight"==_?l="oct":"ten"==_?l="":"sixteen"==_&&(l="hex"),""==l)var i="int(str("+a+"), "+s+")";else i=l+"(int(str("+a+"), "+s+"))";return[i,t.ORDER_ATOMIC]},math_math_random_seed=function(e,t){return t.definitions_.import_random="import random","random.seed("+(t.valueToCode(this,"NUM",t.ORDER_NONE)||"0")+");\n"},math_math_indexer_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_round=function(e,t){return["round("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"VAR",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},math_text_to_number=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:"bti"==n?["int.from_bytes("+a+',"big")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_text_to_number_skulpt=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_base_map=math_math_map,math_turn_to_int=function(e,t){return t.definitions_.import_hexlify="from ubinascii import hexlify",["hexlify("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+").decode()",t.ORDER_ATOMIC]},math_generate_cartesian_product=function(e,t){t.definitions_.import_itertools="import itertools";let n=t.valueToCode(this,"REPEAT",t.ORDER_ATOMIC),a=new Array(this.itemCount_);for(let e=0;e",GTE:">="};const logic_logic_operation=function(e,t){var n=this.getFieldValue("OP"),a="&&"==n?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,_=t.valueToCode(this,"A",a)||"False",l=t.valueToCode(this,"B",a)||"False";if("AND"==n)var s=_+" and "+l;else if("OR"==n)s=_+" or "+l;else if("NOR"==n)s="not("+_+"^"+l+")";else s=_+"^"+l;return[s,a]},logic_logic_negate=function(e,t){var n=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",n)||"False"),n]},logic_logic_boolean=function(e,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},logic_logic_null=function(e,t){return["None",t.ORDER_ATOMIC]},logic_logic_true_or_false=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+n+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},logic_logic_is_in=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_is=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_tobool=function(e,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},storage_storage_open_file_with_os=function(e,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},storage_storage_fileopen=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},storage_storage_fileopen_new=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},storage_storage_fileopen_new_encoding=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},storage_storage_file_write=function(e,t){var n=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+n+")\n"},storage_storage_get_contents_without_para=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},storage_storage_get_contents=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_get_a_line=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_can_write_ornot=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},storage_storage_get_filename=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},storage_storage_close_file=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},storage_storage_list_all_files=function(e,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},storage_storage_delete_file=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_file_size=function(e,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_file_tell=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},storage_storage_file_seek=function(e,t){var n=this.getFieldValue("MODE"),a=0;return a="start"==n?0:"current"==n?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+a+")\n"},storage_storage_change_dir=function(e,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_current_dir=function(e,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},storage_storage_make_dir=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},storage_storage_rename=function(e,t){return t.definitions_.import_os="import os","os.rename("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+","+t.valueToCode(this,"NEWFILE",t.ORDER_ATOMIC)+")\n"},storage_storage_is_file=function(e,t){t.definitions_.import_os="import os";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",t.ORDER_ATOMIC]},storage_sdcard_use_spi_init=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = sdcard.SDCard("+t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC)+","+t.valueToCode(this,"PINSUB",t.ORDER_ATOMIC)+")\n"},storage_sdcard_mount=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard","os.mount("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"DIR",t.ORDER_ATOMIC)+")\n"},procedures_procedures_defreturn=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("NAME"),external_Blockly_namespaceObject.Procedures.NAME_TYPE),a=(this.getInput("STACK")&&t.statementToCode(this,"STACK"))??" pass\n";t.INFINITE_LOOP_TRAP&&(a=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+a);var _=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";_&&(_=" return "+_+"\n");for(var l=[],s=0;s\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},html_html_title=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"\n"+n+"\n"},html_html_head_body=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");if("head"==a)var _="<"+a+'>\n\t\n'+n+"\n";else _="<"+a+">\n"+n+"\n";return _},html_html_content=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"<"+a+">\n"+n+"\n"},html_html_content_more=function(e,t){var n=t.statementToCode(this,"DO"),a=t.valueToCode(this,"style"),_=this.getFieldValue("LEVEL");return"<"+_+" "+a+" >\n"+n+"\n"},html_html_style=function(e,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},html_html_form=function(e,t){return'"},html_html_style_content=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},html_html_text=function(){return this.getFieldValue("TEXT")+"\n"},utility_raw_block=function(e){return e.getFieldValue("TEXT")+"\n"},utility_raw_expression=function(e,t){return[e.getFieldValue("TEXT"),t.ORDER_ATOMIC]},utility_raw_empty=function(e,t){return(t.valueToCode(e,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},utility_raw_table=function(){return""},utility_type_check=function(e,t){return["type("+(t.valueToCode(e,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},utility_function_call=function(e,t){for(var n=e.getFieldValue("NAME"),a=e.hasReturn_,_=new Array(e.itemCount_),l=0;l0?t.join("\n")+n.join("\n")+a.join("\n")+s.join("\n")+i.join("")+e+"while True:\n"+o.join("")+p.join("\n"):t.join("\n")+n.join("\n")+a.join("\n")+s.join("\n")+i.join("")+e+p.join("\n")},Python.scrubNakedValue=function(e){return e+"\n"},Python.quote_=function(e){var t="'";return-1!==(e=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===e.indexOf('"')?t='"':e=e.replace(/'/g,"\\'")),t+e+t},Python.multiline_quote_=function(e){return"'''"+(e=e.replace(/'''/g,"\\'\\'\\'"))+"'''"},Python.scrub_=function(e,t,n){var a="";if(!e.outputConnection||!e.outputConnection.targetConnection){(l=e.getCommentText())&&(l=external_Blockly_namespaceObject.utils.string.wrap(l,Python.COMMENT_WRAP-3),a+=Python.prefixLines(l+"\n","# "));for(var _=0;_0?"int("+i+" + "+_+")":_<0?"int("+i+" - "+-_+")":"int("+i+")",a&&(i="-"+i)),i};const AI_HUE=205,AI_ChooseAndGet={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},AI_client={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech,"AipSpeech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace,"AipFace"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"AipOcr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AI_Speech_synthesis={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Speech_asr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_File).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},AI_Face_match={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"1"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"2"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_webImage,"webImage"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_idcard,"idcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_receipt,"receipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_form,"tableRecognition"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_passport,"passport"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Sim={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"1").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"2").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_lexer,"lexer"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_depParser,"depParser"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_keyword,"keyword"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic,"topic"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Func_sim={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Topic={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_newsSummary={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_summary).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_LEN).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_audio={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},AI_photo={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},AI_result={init:function(){this.setColour(AI_HUE),this.appendValueInput("AI").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_RESULT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"Image"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr,"Speech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match,"Face"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"Ocr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},ALGORITHM_HUE="#526FC3",algorithm_prepare={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_find_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_new_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},algorithm_set_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_del_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_return_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},algorithm_print_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_current_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},algorithm_no_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_1={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_move_recent={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_not_home={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},algorithm_not_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},algorithm_print_path2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hanoi_init={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_move={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_all_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_all_books_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_first_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},algorithm_yes_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},algorithm_next_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_two_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},algorithm_divide_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_half_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_book2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_book_scale={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new external_Blockly_namespaceObject.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_number_zero={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_number_add={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_number={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_book_num={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField("n"+external_Blockly_namespaceObject.Msg.MIXLY_VALUE2).appendField(new external_Blockly_namespaceObject.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_divide={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_init_jttl={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_zero={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_number_in_range={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_chick_calculate={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_check_feet={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_print_jttl_answer={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_fzsf={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc_first_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_compare={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_set_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_move={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_hxdb={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_init_soldier={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new external_Blockly_namespaceObject.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_stand_in_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("使士兵").appendField(new external_Blockly_namespaceObject.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_last_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("剩余").appendField(new external_Blockly_namespaceObject.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_result={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_init_offline={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},algorithm_get_current_location={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_void_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},algorithm_color_seclet={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},COMMUNICATE_HUE="#3288dd",requests_get_old={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("DOMAIN").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET).appendField(new external_Blockly_namespaceObject.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},requests_get={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS).appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_post={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS+external_Blockly_namespaceObject.Msg.OLED_STRING),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_attribute={init:function(){this.appendValueInput("VAL");var e=[[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},requests_method={init:function(){this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},CV_HUE="f0a559",cv_read_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_show_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_write_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_waitkey={init:function(){this.setColour(CV_HUE),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+external_Blockly_namespaceObject.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},cv_destroy_all={init:function(){this.setColour(CV_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_line_rect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_CV_RECT,"rectangle"],[external_Blockly_namespaceObject.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_text={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new external_Blockly_namespaceObject.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_face_classifier={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect_all={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},DATA_HUE=170,series_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_one_index={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"index"],[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_text={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new external_Blockly_namespaceObject.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_index_value={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.SERIES_INDEX,"index"],[external_Blockly_namespaceObject.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.SERIES_INDEX_VALUE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"INDEX_VALUE"),this.setOutput(!0,"List");var t=this;this.setTooltip((function(){var e=t.getFieldValue("INDEX_VALUE");return{index:external_Blockly_namespaceObject.Msg.SERIES_INDEX_TOOLTIP,value:external_Blockly_namespaceObject.Msg.HTML_VALUE_TOOLTIP}[e]}))}},series_get_num={init:function(){this.setColour(DATA_HUE),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TUPLE_GET_INDEX_TOOLTIP)}},pl_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},array_create={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SPLITBYDOU).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pl_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},pl_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},pl_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},numpy_trig={init:function(){var e=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(DATA_HUE),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},pl_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pandas_readcsv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_get={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"column"],[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},pl_savefig={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},pl_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},array_toarray={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},plot_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},plot_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},plot_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},plot_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},plot_savefig={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},plot_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},numpy_shape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},numpy_reshape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},numpy_astype={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new external_Blockly_namespaceObject.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},pylab_imshow={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new external_Blockly_namespaceObject.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},numpy_mean_digit={init:function(){this.setColour(DATA_HUE),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},numpy_argmin_template_match={init:function(){this.setColour(DATA_HUE),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},numpy_mean={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},numpy_std={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},pandas_dropna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},pandas_drop_columns={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},numpy_ones={init:function(){this.setColour(DATA_HUE),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},numpy_c_={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},numpy_linalg_det={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},matrix_transpose={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},matrix_multiplication={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},numpy_linalg_inv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},dataframe_median={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},dataframe_fillna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new external_Blockly_namespaceObject.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},dataframe_info={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},numpy_min={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},numpy_max={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},numpy_size={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},numpy_dot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},numpy_square={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},numpy_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},numpy_random_random={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},py_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},dataframe_sort_values={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("排序方式").appendField(new external_Blockly_namespaceObject.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_head_tail={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("获取").appendField(new external_Blockly_namespaceObject.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_select={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_groupby={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_aggregate_func={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},plot_cla={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DS_HUE=80,ds_create_linkedlist={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new external_Blockly_namespaceObject.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("ds_create_linkedlist_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:"name"),"KEY"+t).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ds_create_linkedlist_container={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},ds_create_linkedlist_item={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},ds_create_node={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_USE).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_TOOLTIP)}},ds_get_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},ds_set_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},ds_add_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_add_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_del_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_del_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_reverse_linkedlist={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},FACTORY_HUE="#777777",factory_from_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("from ").appendField(new external_Blockly_namespaceObject.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_function_noreturn={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("items",this.itemCount_);for(var t=0;tt?e[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},iot_publish_container={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iot_publish_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_create_with_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_mixio_connect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIFI_USERNAME).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_IOT_PASSWORD).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PROJECT).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_MIXIO_PUBLISH={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(external_Blockly_namespaceObject.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},IOT_MIXIO_SUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_MSG).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IOT_MIXIO_UNSUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MSG.stop+external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},iot_mixio_disconnect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_connect_only={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_check={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_format_topic={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},iot_mixio_format_msg={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},IOT_FORMATTING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IOT_FORMAT_STRING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},IOT_EMQX_PING={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IOT_MIXIO_NTP={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+external_Blockly_namespaceObject.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixly_key_py={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},iot_mixly_key={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iot_client_onboard={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iot_http_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME).appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_http_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_mqtt_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_INIT_SUBSCRIBE).appendField(external_Blockly_namespaceObject.MQTT_Topic).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mqtt_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_onenetconnect=iot_onenet_connect,iot_onenetdisconnect=iot_onenet_disconnect,iot_checkonenet=iot_onenet_check,iot_publish=iot_onenet_publish,PINS_HUE=230,pins_digital_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},pins_digital_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pins_analog_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},pins_analog_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},SERIAL_HUE=40,serial_open={init:function(){this.setColour(SERIAL_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN)).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SERIAL_BEGIN).appendField(new external_Blockly_namespaceObject.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},serial_write={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},serial_read_b={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},serial_close={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},SKLEARN_HUE=80,sklearn_make_classification={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_regression={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_blobs={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_load={init:function(){var e=[[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.LOAD).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"type").appendField(new external_Blockly_namespaceObject.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("name"))&&this.setTitleValue(t,"name")}},sklearn_data_target={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SET),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.EIGENVALUES,"data"],[external_Blockly_namespaceObject.Msg.LABEL_VALUE,"target"],[external_Blockly_namespaceObject.Msg.FEATURE,"feature_names"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_LinearRegression={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_Ridge={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_DecisionTreeClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_RandomForestClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KNeighborsClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KNN_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_GaussianNB={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_pca={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_pca_fit_transform={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans_fit={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_predict={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_coef_intercept={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck(null).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_COEF,"coef_"],[external_Blockly_namespaceObject.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_cluster_centers_labels_inertia={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[external_Blockly_namespaceObject.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_save_load_model={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("sklearn").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_SAVE_MODEL,"dump"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},SYSTEM_HUE=120,base_delay={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY+"("+external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_controls_millis={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},time_localtime={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},system_Panic_with_status_code={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("STATUS_CODE",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_reset={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},controls_mstimer2={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("TIME").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_start={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_stop={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},system_time_sleep={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},TURTLE_HUE=180,turtle_create={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_done={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_exitonclick={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_move={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_forward,"forward"],[external_Blockly_namespaceObject.Msg.blockpy_backward,"backward"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},turtle_rotate={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_left,"left"],[external_Blockly_namespaceObject.Msg.blockpy_right,"right"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_rotate).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{left:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[e]}))}},turtle_setheading={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_delay={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_goto={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_setxy={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},turtle_pos_shape={init:function(){this.setColour(TURTLE_HUE);var e=[[external_Blockly_namespaceObject.Msg.TURTLE_POS,"pos"],[external_Blockly_namespaceObject.Msg.TURTLE_SHAPE,"shape"],[external_Blockly_namespaceObject.Msg.TURTLE_HEADING,"heading"],[external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_POS_SHAPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR");var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pos:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[e]})),this.setOutput(!0),this.setInputsInline(!0)}},turtle_clear={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_reset,"reset"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_home,"home"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))}},turtle_penup={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_penup,"penup"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{penup:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[e]}))}},turtle_fill={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_beginfill,"begin"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_endfill,"end"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{begin:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[e]}))}},turtle_size_speed={init:function(){this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"TUR");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_size,"pensize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pensize:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[e]}))}},turtle_size={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_size),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_speed={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_speed),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_circle={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_dot,"dot"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_draw).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{circle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[e]}))}},turtle_circle_advanced={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},turtle_visible={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_hide,"hideturtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{hideturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[e]}))}},turtle_bgcolor={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_clone={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_CLONE),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},turtle_bgcolor_hex_new={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR1").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_bgcolor_hex={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_shape={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_arrow,"arrow"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_turtle,"turtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_square,"square"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_triangle,"triangle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_shape).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_SHAPE_TOOLTIP)}},turtle_shapesize={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},turtle_numinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_NUMINPUT_TOOLTIP)}},turtle_textinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},turtle_write={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_color_seclet={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},turtle_getscreen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new external_Blockly_namespaceObject.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_onkey={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},turtle_onclick={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},turtle_ontimer={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},turtle_listen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_savefig={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},ai_AI_ChooseAndGet=function(e,t){var n=this.getFieldValue("TYPE");return t.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",t.ORDER_ATOMIC]},ai_AI_client=function(e,t){var n=this.getFieldValue("CTYPE");return t.definitions_.import_aip="import aip",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = aip."+n+"("+t.valueToCode(this,"API_KEY",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"SECRET_KEY",t.ORDER_ATOMIC)+")\n"},ai_AI_Speech_synthesis=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".synthesis("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Speech_asr=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".asr("+(t.valueToCode(this,"FILE",t.ORDER_ATOMIC)||'""')+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Face_match=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".match("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"VAR2",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Ocr=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Sim=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR1",t.ORDER_ATOMIC),_=t.valueToCode(this,"STR2",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+","+_+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Topic=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".topic("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ai_AI_Nlp_newsSummary=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".newsSummary("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"LEN",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Ocr_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func_sim=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_audio=function(e,t){return t.definitions_.import_audio="import audio","audio.audio_record("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"TIME",t.ORDER_ATOMIC)||"0")+")\n"},ai_AI_photo=function(e,t){return t.definitions_.import_audio="import cam","cam.photo_capture("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"BUT",t.ORDER_ATOMIC)||'""')+")\n"},ai_AI_result=function(e,t){var n=t.valueToCode(this,"AI",t.ORDER_ASSIGNMENT)||"0",a=this.getFieldValue("CTYPE");if("Image"==a)var _=n+'["result"][0]["keyword"]';if("Speech"==a)_=n+'["result"][0]';if("Face"==a||"OcrSimilarity"==a)_=n+'["score"]';if("Ocr"==a)_=n+'["words_result"]';return[_,t.ORDER_ATOMIC]},algorithm_algorithm_prepare=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},algorithm_algorithm_add_school=function(){return"path = [1]\nmask.show()\ncar = sprite.Sprite('xnie', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},algorithm_algorithm_find_path=function(e,t){t.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},algorithm_algorithm_new_path=function(e,t){return["flag == 1",t.ORDER_ATOMIC]},algorithm_algorithm_set_path=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},algorithm_algorithm_add_path=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},algorithm_algorithm_del_path=function(e,t){t.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},algorithm_algorithm_return_path=function(){var e="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return e="house[f].hide()\ndrive(path[len(path) - 1])\n"+e},algorithm_algorithm_no_left=function(e,t){return["len(path) == 7",t.ORDER_ATOMIC]},algorithm_algorithm_print_path=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},algorithm_algorithm_prepare2=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nbarricade = sprite.Sprite('barricade', 610, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},algorithm_algorithm_current_school=function(e,t){return["f == 1",t.ORDER_ATOMIC]},algorithm_algorithm_no_path=function(){return"print('没有符合条件的路线')\n"},algorithm_algorithm_prepare_2_1=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_prepare_2_2=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_move_recent=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},algorithm_algorithm_not_home=function(e,t){return["name[now] != '小科家'",t.ORDER_ATOMIC]},algorithm_algorithm_not_school=function(e,t){return["name[now] != '学校'",t.ORDER_ATOMIC]},algorithm_algorithm_print_path2=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},algorithm_hanoi_init=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var a="print('层数过高!不得高于6层!')\nexit()\n";else a="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return a},algorithm_hanoi_move=function(e,t){var n=t.valueToCode(this,"FROM_NUM",t.ORDER_ATOMIC)||"0",a=t.valueToCode(this,"TO_NUM",t.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${a}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${a}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${a}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${a}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${a}*200+200, 400-len(_Hanoi[${a}])*27, 0.2)\n _Hanoi[${a}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},algorithm_algorithm_all_books_sequence=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},algorithm_algorithm_all_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},algorithm_algorithm_first_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},algorithm_algorithm_no_ring2=function(e,t){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",t.ORDER_ATOMIC]},algorithm_algorithm_yes_ring2=function(e,t){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",t.ORDER_ATOMIC]},algorithm_algorithm_next_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},algorithm_algorithm_two_left=function(e,t){return["len(list)>=2",t.ORDER_ATOMIC]},algorithm_algorithm_divide_books=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},algorithm_algorithm_get_half_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_delete_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_print_book2=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},algorithm_algorithm_book_scale=function(e,t){var n=this.getFieldValue("NUM");return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},algorithm_algorithm_number_zero=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},algorithm_algorithm_number_add=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},algorithm_algorithm_print_number=function(e,t){t.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},algorithm_algorithm_init_jttl=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},algorithm_algorithm_rabbit_zero=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},algorithm_algorithm_rabbit_number_in_range=function(e,t){return["_rabbit < _head",t.ORDER_ATOMIC]},algorithm_algorithm_chick_calculate=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},algorithm_algorithm_check_feet=function(e,t){return["_rabbit*4 + _chick*2 == _foot",t.ORDER_ATOMIC]},algorithm_algorithm_print_jttl_answer=function(e,t){t.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},algorithm_algorithm_rabbit_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},algorithm_algorithm_init_fzsf=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},algorithm_algorithm_fz_calc=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const a=[0,[1,3],[2,4],[5,7],[6]];var _="";return _+=`_S${n}.show()\ntime.sleep(1)\n`,_+=4!=n?`_Slen[${n}] = _Llen[${a[n][0]}] + _Llen[${a[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},algorithm_algorithm_fz_compare=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,t.ORDER_ATOMIC]},algorithm_algorithm_fz_set_min=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),a="";return a+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},algorithm_algorithm_fz_move=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},algorithm_algorithm_init_hxdb=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},algorithm_algorithm_hxdb_init_soldier=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},algorithm_algorithm_hxdb_stand_in_line=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},algorithm_algorithm_hxdb_last_line=function(e,t){return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,t.ORDER_ATOMIC]},algorithm_algorithm_hxdb_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},algorithm_algorithm_hxdb_result=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},algorithm_hanoi_init_offline=function(e,t){t.definitions_.import_turtle="import turtle",t.definitions_.import_time="import time",t.definitions_.import_math="import math";var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),a=this.getFieldValue("NUM");return t.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",t.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",t.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,t.ORDER_ATOMIC]},data_dataframe_groupby=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.groupby(by=${t.valueToCode(e,"KEY",t.ORDER_ATOMIC)||"'tag'"})`,t.ORDER_ATOMIC]},data_dataframe_aggregate_func=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.${e.getFieldValue("TYPE")}()`,t.ORDER_ATOMIC]},data_plot_cla=function(e,t){t.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},datastructure_ds_create_linkedlist=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.variableDB_.getName(this.getFieldValue("TYPE"),external_Blockly_namespaceObject.Variables.NAME_TYPE),_="class "+a+":\n";_+=" def __init__(self):\n";for(var l=new Array(this.itemCount_),s=0;s0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+_).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_if_if");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_if_elseif");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_if_else");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_if_elseif":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_if_else":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+e).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_range={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},controls_forEach={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("LIST").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_whileUntil={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return{WHILE:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:external_Blockly_namespaceObject.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[t]}))}},controls_try_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var e=document.createElement("mutation");return this.elseifCount_&&e.setAttribute("elseif",this.elseifCount_),this.elseCount_&&e.setAttribute("else",1),e},domToMutation:function(e){var t=this,n=[],a=[];this.elseCount_&&this.removeInput("ELSE");for(var _=this.elseifCount_;_>0;_--)t.getInputTargetBlock("IF"+_)&&t.getInputTargetBlock("IF"+_).previousConnection?n[_]=t.getInputTargetBlock("IF"+_).previousConnection:n[_]=null,this.removeInput("IF"+_),t.getInputTargetBlock("DO"+_)&&t.getInputTargetBlock("DO"+_).previousConnection?a[_]=t.getInputTargetBlock("DO"+_).previousConnection:a[_]=null,this.removeInput("DO"+_);this.elseifCount_=parseInt(e.getAttribute("elseif"),10),this.elseCount_=parseInt(e.getAttribute("else"),10);for(_=1;_<=this.elseifCount_;_++)this.appendValueInput("IF"+_).setCheck([Boolean,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+_).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY);for(_=n.length-2;_>0;_--)n[_]&&n[_].reconnect(this,"IF"+_);for(_=a.length-2;_>0;_--)a[_]&&a[_].reconnect(this,"DO"+_)},decompose:function(e){var t=e.newBlock("controls_try");t.initSvg();for(var n=t.getInput("STACK").connection,a=1;a<=this.elseifCount_;a++){var _=e.newBlock("controls_except");_.initSvg(),n.connect(_.previousConnection),n=_.nextConnection}if(this.elseCount_){var l=e.newBlock("controls_finally");l.initSvg(),n.connect(l.previousConnection)}return t},compose:function(e){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var t=this.elseifCount_;t>0;t--)this.removeInput("IF"+t),this.removeInput("DO"+t);this.elseifCount_=0;for(var n=e.getInputTargetBlock("STACK"),a=[null],_=[null],l=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,a.push(n.valueConnection_),_.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,l=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(a,_,l)},saveConnections:function(e){for(var t=e.getInputTargetBlock("STACK"),n=1;t;){switch(t.type){case"controls_except":var a=this.getInput("IF"+n),_=this.getInput("DO"+n);t.valueConnection_=a&&a.connection.targetConnection,t.statementConnection_=_&&_.connection.targetConnection,n++;break;case"controls_finally":_=this.getInput("ELSE");t.statementConnection_=_&&_.connection.targetConnection;break;default:throw"Unknown block type."}t=t.nextConnection&&t.nextConnection.targetBlock()}},rebuildShape_:function(){var e=[null],t=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var a=1;this.getInput("IF"+a);){var _=this.getInput("IF"+a),l=this.getInput("DO"+a);console.log(_.connection.targetConnection),e.push(_.connection.targetConnection),t.push(l.connection.targetConnection),a++}this.updateShape_(),this.reconnectChildBlocks_(e,t,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var e=1;this.getInput("IF"+e);)this.removeInput("IF"+e),this.removeInput("DO"+e),e++;for(e=1;e<=this.elseifCount_;e++)this.appendValueInput("IF"+e).setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+e).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(e,t,n){for(var a=1;a<=this.elseifCount_;a++)e[a]&&e[a].reconnect(this,"IF"+a),t[a]&&t[a].reconnect(this,"DO"+a);n&&n.reconnect(this,"ELSE")}},controls_flow_statements={init:function(){this.setColour(LOOPS_HUE);var e=new external_Blockly_namespaceObject.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(e,"FLOW").appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var t=this;this.setTooltip((function(){var e=t.getFieldValue("FLOW");return{BREAK:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:external_Blockly_namespaceObject.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[e]}))},onchange:function(){if(this.workspace){var e=!1,t=this;do{if("controls_repeat"==t.type||"controls_for"==t.type||"controls_forEach"==t.type||"controls_repeat_ext"==t.type||"controls_whileUntil"==t.type||"do_while"==t.type){e=!0;break}t=t.getSurroundParent()}while(t);e?this.setWarningText(null):this.setWarningText(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},controls_for={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},controls_for_range={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new external_Blockly_namespaceObject.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){return external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",e.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}};controls_whileUntil.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],controls_flow_statements.OPERATORS=[[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const controls_if_if={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},controls_if_elseif={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},controls_if_else={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},controls_try={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},controls_except={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},controls_finally={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},controls_repeat_ext={init:function(){this.jsonInit({message0:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:LOOPS_HUE,tooltip:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},controls_lambda={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STAT),this.setOutput(!0)}},controls_pass={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},controls_thread={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},do_while={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_REPEAT+external_Blockly_namespaceObject.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(external_Blockly_namespaceObject.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[external_Blockly_namespaceObject.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LOOPS_HUE),this.setTooltip("do-while loop"),this.setHelpUrl("")}},garbage_collection={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},get_mem_alloc={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},get_mem_free={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},get_unique_identifier={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET+external_Blockly_namespaceObject.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_GET_UNIQUE_IDEN)}},datetime_fromtimestamp={init:function(){this.setColour(LOOPS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},gene_unique_identifier={init:function(){this.setColour(LOOPS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},MATH_HUE=230;external_Blockly_namespaceObject.FieldTextInput.math_number_validator=function(e){return String(e)},external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank=function(e){if(""===e)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(e)?String(e):null};const math_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_constant={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[t]}))}},math_constant_mp={init:function(){this.setColour(MATH_HUE);this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CONSTANT");return{pi:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[t]}))}},math_arithmetic={init:function(){this.setColour(MATH_HUE),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_selfcalcu={init:function(){this.setColour(MATH_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{ADD:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:external_Blockly_namespaceObject.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:external_Blockly_namespaceObject.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[t]}))}},math_bit={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},math_trig={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{SIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_SIN,COS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_COS,TAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:external_Blockly_namespaceObject.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_LN}[t]}))}},math_dec={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_BIN,"bin"],[external_Blockly_namespaceObject.Msg.MATH_OCT,"oct"],[external_Blockly_namespaceObject.Msg.MATH_HEX,"hex"]];this.setColour(MATH_HUE),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{bin:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_BIN,oct:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_OCT,hex:external_Blockly_namespaceObject.Msg.MATH_DEC_TOOLTIP_HEX}[e]}))}},math_to_int={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"],[external_Blockly_namespaceObject.Msg.MATH_ABS,"fabs"],[external_Blockly_namespaceObject.Msg.MATH_SQRT,"sqrt"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{sqrt:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_SQ,round:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:external_Blockly_namespaceObject.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[e]}))}},math_max_min={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_MAX,"max"],[external_Blockly_namespaceObject.Msg.MIXLY_MIN,"min"]];this.setColour(MATH_HUE),this.appendValueInput("A").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{max:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAX,min:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MIN}[e]}))}},math_number_base_conversion={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MATH_TWO,"two"],[external_Blockly_namespaceObject.Msg.MATH_EIGHT,"eight"],[external_Blockly_namespaceObject.Msg.MATH_TEN,"ten"],[external_Blockly_namespaceObject.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(MATH_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MATH_ZHW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP2").appendField(external_Blockly_namespaceObject.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),n={two:external_Blockly_namespaceObject.Msg.MATH_Before_two,eight:external_Blockly_namespaceObject.Msg.MATH_Before_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Before_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Before_sixteen},a=t.getFieldValue("OP2"),_={two:external_Blockly_namespaceObject.Msg.MATH_Behind_two,eight:external_Blockly_namespaceObject.Msg.MATH_Behind_eight,ten:external_Blockly_namespaceObject.Msg.MATH_Behind_ten,sixteen:external_Blockly_namespaceObject.Msg.MATH_Behind_sixteen};return n[e]+_[a]}))}},math_random={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LANG_MATH_INT,"int"],[external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_RANDOM).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TYPE"),n={int:external_Blockly_namespaceObject.Msg.LANG_MATH_INT,float:external_Blockly_namespaceObject.Msg.LANG_MATH_FLOAT_RANDOM};return external_Blockly_namespaceObject.Msg.MATH_RANDOM_INT_TOOLTIP+n[e]}))}},math_constrain={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_CONSTRAIN_TOOLTIP)}},math_map={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_MAP)}},math_indexer_number={init:function(){this.setColour(MATH_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("0",external_Blockly_namespaceObject.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_NUMBER_TOOLTIP)}},math_random_seed={init:function(){this.setColour(MATH_HUE),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},math_round={init:function(){this.setColour(MATH_HUE),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ROUND).appendField(external_Blockly_namespaceObject.Msg.TEXT_KEEP),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MATH_ROUND_NEW_TOOLTIP)}},text_to_number={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_BITES,"b"],[external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"bti"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[e]}))}},text_to_number_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TO_INT,"int"],[external_Blockly_namespaceObject.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{int:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[e]}))}},base_map=math_map,turn_to_int={init:function(){this.setColour(MATH_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.LANG_MATH_BYTE+external_Blockly_namespaceObject.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},generate_cartesian_product={init:function(){this.setColour(MATH_HUE),this.itemCount_=1,this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PRODUCT+external_Blockly_namespaceObject.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("lists_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a1&&"\\"===e.charAt(0)){var t=e.charAt(1);if("0"===t||"b"===t||"f"===t||"n"===t||"r"===t||"t"===t||"\\"===t||"'"===t)return String(e).substring(0,2);if("x"===t&&"0"===e.charAt(2)&&"B"===e.charAt(3))return String(e).substring(0,4)}return String(e).substring(0,1)};const text_char={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput("",external_Blockly_namespaceObject.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(e){if(1==e)var t="../../media/quote2.png";else t="../../media/quote3.png";return new external_Blockly_namespaceObject.FieldImage(t,7,12,'"')}},text_join={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ascii_to_char={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},char_to_ascii={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},number_to_text={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},text_length={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},text_char_at2={init:function(){this.WHERE_OPTIONS=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM+1+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET,"MODE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=e.getFieldValue("WHERE"),a="";switch(t+" "+n){case"GET FROM_START":case"GET FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":a=external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(a+=" "+external_Blockly_namespaceObject.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",external_Blockly_namespaceObject.Msg.ONE_BASED_INDEXING?"#1":"#0")),a}));var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHERE"),n={FROM_START:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:external_Blockly_namespaceObject.Msg.TEXT_GET_INDEX_RANDOM};return external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+n[e]+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("statement",!this.outputConnection);var t=this.getInput("AT").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at",t),e},domToMutation:function(e){var t="true"==e.getAttribute("statement");this.updateStatement_(t),e="false"!=e.getAttribute("at"),this.updateAt_(e)},updateStatement_:function(e){e!=!this.outputConnection&&(this.unplug(!0,!0),e?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(e){this.removeInput("AT"),this.removeInput("ORDINAL",!0),e?(this.appendValueInput("AT").setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var t=new external_Blockly_namespaceObject.FieldDropdown(this.WHERE_OPTIONS,(function(t){var n="FROM_START"==t||"FROM_END"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT").appendField(t,"WHERE"),external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},text_char_at={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFRETURN_RETURN+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START+"n"+external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)}},text_random_char={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},text_substring2={init:function(){this.WHERE_OPTIONS_1=[[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT1").type==external_Blockly_namespaceObject.INPUT_VALUE;e.setAttribute("at1",t);var n=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",n),e},domToMutation:function(e){var t="true"==e.getAttribute("at1"),n="true"==e.getAttribute("at2");this.updateAt_(1,t),this.updateAt_(2,n)},updateAt_:function(e,t){this.removeInput("AT"+e),this.removeInput("ORDINAL"+e,!0),t?(this.appendValueInput("AT"+e).setCheck(Number),external_Blockly_namespaceObject.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+e).appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+e);var n=new external_Blockly_namespaceObject.FieldDropdown(this["WHERE_OPTIONS_"+e],(function(n){var a="FROM_START"==n||"FROM_END"==n;if(a!=t){var _=this.sourceBlock_;return _.updateAt_(e,a),_.setFieldValue(n,"WHERE"+e),null}}));this.getInput("AT"+e).appendField(n,"WHERE"+e),1==e&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},text_substring={init:function(){this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_GET+" "+external_Blockly_namespaceObject.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(external_Blockly_namespaceObject.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},text_equals_starts_ends={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_EQUALS,"==="],[external_Blockly_namespaceObject.Msg.MIXLY_STARTSWITH,"startswith"],[external_Blockly_namespaceObject.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},text_compare_to={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_COMPARETO_HELP)}},text_capital={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_UPPER,"upper"],[external_Blockly_namespaceObject.Msg.TEXT_TITLE,"title"],[external_Blockly_namespaceObject.Msg.TEXT_CAPITALIZE,"capitalize"],[external_Blockly_namespaceObject.Msg.TEXT_SWAPCASE,"swapcase"],[external_Blockly_namespaceObject.Msg.TEXT_LOWER,"lower"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CAPITAL").setCheck(String),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CAPITAL");return{upper:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[e]}))}},text_center={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_LJUST,"ljust"],[external_Blockly_namespaceObject.Msg.TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_RJUST,"rjust"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(external_Blockly_namespaceObject.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},text_find={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},text_join_seq={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},text_replace={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},text_split={init:function(){this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},text_strip={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH,"strip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"lstrip"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(TEXTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"TOWHAT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("TOWHAT");return{strip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[e]}))}},text_format={init:function(){this.setColour(TEXTS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("text_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_create_with_container={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},dicts_create_with_item={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dicts_keys={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_KEYS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},dicts_get={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_TOOLTIP)}},dicts_get_default={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},dicts_add_or_change={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dicts_delete={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP)}},dicts_update={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT2").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(external_Blockly_namespaceObject.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MID),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_clear={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_CLEAR),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_items={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_ITEMS),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},dicts_values={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_VALUES),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dicts_length={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LENGTH),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dicts_deldict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICT_DELDICT),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dicts_add_change_del={init:function(){this.MODE=[[external_Blockly_namespaceObject.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(external_Blockly_namespaceObject.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t="";switch(e.getFieldValue("WHERE")){case"INSERT":t=external_Blockly_namespaceObject.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":t=external_Blockly_namespaceObject.Msg.DICTS_DELETE_TOOLTIP}return t}))},mutationToDom:function(){var e=document.createElement("mutation"),t=this.getInput("AT2").type==external_Blockly_namespaceObject.INPUT_VALUE;return e.setAttribute("at2",t),e},domToMutation:function(e){var t="true"==e.getAttribute("at2");this.updateAt_(t)},updateAt_:function(e){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),e?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var t=new external_Blockly_namespaceObject.FieldDropdown(this.MODE,(function(t){var n="INSERT"==t;if(n!=e){var a=this.sourceBlock_;return a.updateAt_(n),a.setFieldValue(t,"WHERE"),null}}));this.getInput("AT2").appendField(t,"WHERE")}},dicts_pop={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setTooltip(external_Blockly_namespaceObject.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},dicts_setdefault={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_SETDEFAULT_TOOLTIP)}},dicts_create_with_noreturn={init:function(){this.setColour(DICTS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("dicts_create_with_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:0==t?'"key"':'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dicts_todict={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dicts_to_json={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},json_to_dicts={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dicts_to_to={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dicts_to_json2={init:function(){this.setColour(DICTS_HUE),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},LOGIC_HUE=210,logic_compare={init:function(){var e=external_Blockly_namespaceObject.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{EQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:external_Blockly_namespaceObject.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[e]})),this.prevBlocks_=[null,null]}},logic_compare_continous={init:function(){var e=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],t=external_Blockly_namespaceObject.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP1"),this.appendValueInput("C").appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"OP2"),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},logic_operation={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_AND,"AND"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_OR,"OR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_NOR,"NOR"],[external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{AND:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:external_Blockly_namespaceObject.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[e]}))}},logic_negate={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},logic_boolean={init:function(){var e=[[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(LOGIC_HUE),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_BOOLEAN_TOOLTIP)}},logic_null={init:function(){this.setColour(LOGIC_HUE),this.setOutput(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.LOGIC_NULL),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NULL_TOOLTIP)}},logic_true_or_false={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(external_Blockly_namespaceObject.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},logic_is_in={init:function(){var e=[[external_Blockly_namespaceObject.Msg.TEXT_APPEND_TO,"in"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.IN)}},logic_is={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(LOGIC_HUE),this.appendValueInput("A"),this.appendValueInput("B").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},logic_tobool={init:function(){this.setColour(LOGIC_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},STORAGE_HUE=0,storage_open_file_with_os={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("fn").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},storage_fileopen={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},storage_fileopen_new={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_fileopen_new_encoding={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE).appendField(new external_Blockly_namespaceObject.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_USE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,l=external_Blockly_namespaceObject.Msg.MIXLY_BELONG,s=external_Blockly_namespaceObject.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[t]+l+a+_+s}))}},storage_file_write={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_STRING+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},storage_get_contents_without_para={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},storage_get_contents={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[t]+"x"+a}))}},storage_get_a_line={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MICROBIT_PYTHON_TYPE)}},storage_can_write_ornot={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.HTML_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},storage_get_filename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},storage_close_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},storage_list_all_files={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const storage_delete_file={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},storage_get_file_size={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},storage_file_tell={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},storage_file_seek={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck("Variable").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE"),n=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,a=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,_=external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[t]+_+"x"+a}))}},storage_get_current_dir={init:function(){this.setColour(STORAGE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},storage_make_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("PATH").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_ESP32_SET+{mkdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},storage_rename={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},storage_change_dir={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},storage_is_file={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_FILE,"isfile"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let e=this;this.setTooltip((function(){var t=e.getFieldValue("MODE");return external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[t]}))}},sdcard_use_spi_init={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("SPISUB").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP+external_Blockly_namespaceObject.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sdcard_mount={init:function(){this.setColour(STORAGE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},procedures_defnoreturn={init:function(){var e=external_Blockly_namespaceObject.Procedures.findLegalName("",this),t=new external_Blockly_namespaceObject.FieldTextInput(e,external_Blockly_namespaceObject.Procedures.rename);t.setSpellcheck(!1),this.appendDummyInput().appendField(t,"NAME").appendField("","PARAMS"),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(e){this.hasStatements_!==e&&(e?(this.appendStatementInput("STACK").appendField(external_Blockly_namespaceObject.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=e)},updateParams_:function(){var e="";this.arguments_.length&&(e=external_Blockly_namespaceObject.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),external_Blockly_namespaceObject.Events.disable();try{this.setFieldValue(e,"PARAMS")}finally{external_Blockly_namespaceObject.Events.enable()}},mutationToDom:function(e){var t=external_Blockly_namespaceObject.utils.xml.createElement("mutation");e&&t.setAttribute("name",this.getFieldValue("NAME"));for(var n=0;n"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},html_form={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_FORM_CONTENT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.HTML_TEXT,"text"],[external_Blockly_namespaceObject.Msg.HTML_EMAIL,"email"],[external_Blockly_namespaceObject.Msg.HTML_NUMBER,"number"],[external_Blockly_namespaceObject.Msg.HTML_PASSWORD,"password"],[external_Blockly_namespaceObject.Msg.HTML_CHECKBOX,"checkbox"],[external_Blockly_namespaceObject.Msg.HTML_RADIOBUTTON,"radiobutton"],[external_Blockly_namespaceObject.Msg.HTML_BUTTON,"button"],[external_Blockly_namespaceObject.Msg.HTML_COLOUR,"colour"],[external_Blockly_namespaceObject.Msg.HTML_DATE,"date"],[external_Blockly_namespaceObject.Msg.HTML_LOCALTIME,"local time"],[external_Blockly_namespaceObject.Msg.HTML_FILE,"file"],[external_Blockly_namespaceObject.Msg.HTML_HIDDEN,"hidden"],[external_Blockly_namespaceObject.Msg.HTML_IMAGE,"image"],[external_Blockly_namespaceObject.Msg.HTML_MONTH,"month"],[external_Blockly_namespaceObject.Msg.HTML_RANGE,"range"],[external_Blockly_namespaceObject.Msg.HTML_RESET,"reset"],[external_Blockly_namespaceObject.Msg.HTML_SEARCH,"search"],[external_Blockly_namespaceObject.Msg.HTML_SUBMIT,"submit"],[external_Blockly_namespaceObject.Msg.HTML_TELEPHONENUMBER,"telephone number"],[external_Blockly_namespaceObject.Msg.HTML_TIME,"time"],[external_Blockly_namespaceObject.Msg.HTML_URL,"url"],[external_Blockly_namespaceObject.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_NAME).appendField(new external_Blockly_namespaceObject.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_VALUE).appendField(new external_Blockly_namespaceObject.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_content={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_style_color={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTextInput("property"),"KEY").appendField(":").appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},html_text={init:function(){this.setColour(HTML_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_TEXT).appendField(new external_Blockly_namespaceObject.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UTILITY_HUE=160,raw_table={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldTable(""),"TEXT")}},raw_block={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT")}},raw_expression={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},raw_empty={init:function(){this.setColour(UTILITY_HUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},text_comment={init:function(){this.setColour(UTILITY_HUE),this.appendDummyInput().appendTitle("Comment:").appendTitle(new external_Blockly_namespaceObject.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},type_check={init:function(){this.setColour(UTILITY_HUE),this.appendValueInput("VALUE").appendField(external_Blockly_namespaceObject.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},text_print_multiple={init:function(){this.setColour(UTILITY_HUE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=external_Blockly_namespaceObject.Block.obtain(e,"text_print_multiple_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;a= stop:"," yield start"," start -= abs(step)"])};if(e=function(e,t,n){return"("+e+" <= "+t+") and "+o()+"("+e+", "+t+", "+n+") or "+p()+"("+e+", "+t+", "+n+")"},external_Blockly_namespaceObject.isNumber(a)&&external_Blockly_namespaceObject.isNumber(_)&&external_Blockly_namespaceObject.isNumber(l))a=parseFloat(a),_=parseFloat(_),l=Math.abs(parseFloat(l)),0==a%1&&0==_%1&&0==l%1?(a<=_?(_++,e=0==a&&1==l?_:a+", "+_,1!=l&&(e+=", "+l)):e=a+", "+--_+", -"+l,e="range("+e+")"):(e=a<_?o():p(),e+="("+a+", "+_+", "+l+")");else{var r=function(e,a){if(external_Blockly_namespaceObject.isNumber(e))e=parseFloat(e);else{var _=t.variableDB_.getDistinctName(n+a,external_Blockly_namespaceObject.Variables.NAME_TYPE);i+=_+" = "+e+"\n",e=_}return e};a=r(a,"_start"),_=r(_,"_end");r(l,"_inc"),e="number"==typeof a&&"number"==typeof _?a<_?o(0,_):p(0,_):e(a,_,l)}return i+="for "+n+" in "+e+":\n"+s},control_controls_for_range=function(e,t){var n=t.variableDB_.getName(e.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.valueToCode(e,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(e,"TO",t.ORDER_NONE)||"0",l=t.valueToCode(e,"STEP",t.ORDER_NONE)||"1",s=t.statementToCode(e,"DO"),i=t.addLoopTrap(s,e.id)||t.PASS;return t.setups_.mixly_range="def mixly_range(start, stop, step):\n for i in range(start, stop + 1, step):\n yield i\n\n","for "+n+" in mixly_range("+a+", "+_+", "+l+"):\n"+i},control_controls_whileUntil=function(e,t){var n="UNTIL"==e.getFieldValue("MODE"),a=t.valueToCode(e,"BOOL",t.ORDER_NONE)||"False",_=t.statementToCode(e,"DO");return n&&(a="not "+a),"while "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_flow_statements=function(e){switch(e.getFieldValue("FLOW")){case"BREAK":return"break\n";case"CONTINUE":return"continue\n"}throw"Unknown flow statement."},control_controls_delay=function(e,t){return"sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},Panic_with_status_code=function(e,t){return"panic("+(t.valueToCode(this,"STATUS_CODE",t.ORDER_ATOMIC)||"1000")+")\n"},controls_millis=function(e,t){t.definitions_.import_time="import time";return["time.time()",t.ORDER_ATOMIC]},control_reset=function(e,t){return t.definitions_.import_microbit="from microbit import *","reset()\n"},controls_interrupts=function(){return"interrupts();\n"},controls_nointerrupts=function(){return"noInterrupts();\n"},control_controls_forEach=function(e,t){var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"''",a=t.valueToCode(e,"LIST",t.ORDER_RELATIONAL)||"[]",_=t.statementToCode(e,"DO");return"for "+n+" in "+a+":\n"+(_=t.addLoopTrap(_,e.id)||t.PASS)},control_controls_range=function(e,t){return["range("+(t.valueToCode(this,"FROM",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"TO",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"STEP",t.ORDER_NONE)||"1")+")",t.ORDER_ATOMIC]},control_controls_lambda=function(e,t){var n="lambda "+(t.valueToCode(e,"BOOL",t.ORDER_NONE)||"None")+": "+(t.statementToCode(e,"DO")||"pass");return[n=n.replace("\n","").replace(" ",""),t.ORDER_ATOMIC]},time_sleep=function(e,t){return t.definitions_.import_time="import time","time.sleep("+(t.valueToCode(this,"DELAY_TIME",t.ORDER_ATOMIC)||"1000")+")\n"},control_controls_pass=function(){return"pass\n"},control_controls_thread=function(e,t){t.definitions_.import__thread="import _thread";var n=t.valueToCode(this,"VAR",t.ORDER_NONE)||"None";return"_thread.start_new_thread("+t.variableDB_.getName(t.valueToCode(this,"callback",t.ORDER_NONE)||"None",external_Blockly_namespaceObject.Procedures.NAME_TYPE)+", "+n+")\n"},control_do_while=function(e,t){var n=t.valueToCode(this,"select_data",t.ORDER_NONE)||"False",a=t.statementToCode(this,"input_data");return a="true"==this.getFieldValue("type")?a+" if ("+n+"):\n break\n":a+" if not ("+n+"):\n break\n","while True:\n"+(a=t.addLoopTrap(a,this.id)||t.PASS)},control_controls_repeat_ext=function(e,t){var n=t.valueToCode(this,"TIMES",t.ORDER_ATOMIC),a=t.statementToCode(e,"DO");return"for _my_variable in range("+n+"):\n"+(a=t.addLoopTrap(a,e.id)||t.PASS)},control_garbage_collection=function(e,t){t.definitions_.import_gc="import gc";return"gc.collect()\n"},control_get_mem_alloc=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_alloc()",t.ORDER_ATOMIC]},control_get_mem_free=function(e,t){t.definitions_.import_gc="import gc";return["gc.mem_free()",t.ORDER_ATOMIC]},control_get_unique_identifier=function(e,t){t.definitions_.import_machine="import machine";return["machine.unique_id()",t.ORDER_ATOMIC]},controls_repeat=control_controls_repeat_ext,control_datetime_fromtimestamp=function(e,t){return t.definitions_.import_datatime="import datatime",["datatime.datatime.fromtimestamp("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},control_gene_unique_identifier=function(e,t){var n=external_Mixly_namespaceObject.Boards.getSelectedBoardKey().split(":")[2];t.definitions_["import_"+n+"uuid"]="from "+n+" import uuid";return["uuid()",t.ORDER_ATOMIC]},math_math_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_constant=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_constant_mp=function(e,t){return t.definitions_.import_math="import math",["math."+this.getFieldValue("CONSTANT"),t.ORDER_ATOMIC]},math_math_bit=function(e,t){var n=this.getFieldValue("OP"),a=t.ORDER_ATOMIC;return["("+(t.valueToCode(this,"A",a)||"0")+n+(t.valueToCode(this,"B",a)||"0")+")",a]},math_math_arithmetic=function(e,t){var n=(a={ADD:[" + ",t.ORDER_ADDITIVE],MINUS:[" - ",t.ORDER_ADDITIVE],MULTIPLY:[" * ",t.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",t.ORDER_MULTIPLICATIVE],QUYU:[" % ",t.ORDER_MULTIPLICATIVE],ZHENGCHU:[" // ",t.ORDER_MULTIPLICATIVE],POWER:[" ** ",t.ORDER_EXPONENTIATION]}[e.getFieldValue("OP")])[0],a=a[1];return[(t.valueToCode(e,"A",a)||"0")+n+(e=t.valueToCode(e,"B",a)||"0"),a]},math_math_selfcalcu=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_RELATIONAL)||"0",a=t.valueToCode(this,"B",t.ORDER_RELATIONAL)||"0";switch(this.getFieldValue("OP")){case"ADD":var _="+=";break;case"MINUS":_="-=";break;case"MULTIPLY":_="*=";break;case"DIVIDE":_="/=";break;case"QUYU":_="%=";break;case"ZHENGCHU":_="//=";break;case"POWER":_="**="}return n+" "+_+" "+a+"\n"},math_single=function(e,t){var n,a=e.getFieldValue("OP");if("NEG"==a)return["-"+(n=t.valueToCode(e,"NUM",t.ORDER_UNARY_SIGN)||"0"),t.ORDER_UNARY_SIGN];switch(t.definitions_.import_math="import math",e="SIN"==a||"COS"==a||"TAN"==a?t.valueToCode(e,"NUM",t.ORDER_MULTIPLICATIVE)||"0":t.valueToCode(e,"NUM",t.ORDER_NONE)||"0",a){case"ABS":n="math.fabs("+e+")";break;case"ROOT":n="math.sqrt("+e+")";break;case"LN":n="math.log("+e+")";break;case"LOG10":n="math.log10("+e+")";break;case"EXP":n="math.exp("+e+")";break;case"POW10":n="math.pow(10,"+e+")";break;case"ROUND":n="round("+e+")";break;case"ROUNDUP":n="math.ceil("+e+")";break;case"ROUNDDOWN":n="math.floor("+e+")";break;case"SIN":n="math.sin("+e+")";break;case"COS":n="math.cos("+e+")";break;case"TAN":n="math.tan("+e+")";break;case"++":n="++("+e+")";break;case"--":n="--("+e+")";break;case"-":n="-("+e+")"}if(n)return[n,t.ORDER_EXPONENTIATION];switch(a){case"ASIN":n="math.degrees(math.asin("+e+"))";break;case"ACOS":n="math.degrees(math.acos("+e+"))";break;case"ATAN":n="math.degrees(math.atan("+e+"))"}return[n,t.ORDER_MULTIPLICATIVE]},math_math_trig=math_single,math_math_dec=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+")",t.ORDER_ATOMIC]},math_math_to_int=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=this.getFieldValue("OP"),_="";return"round"===a?_=a+"("+n+")":(_="math."+a+"("+n+")",t.definitions_.import_math="import math"),[_,t.ORDER_ATOMIC]},math_math_max_min=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_NONE)||"0",a=t.valueToCode(this,"B",t.ORDER_NONE)||"0";return[this.getFieldValue("OP")+"("+n+", "+a+")",t.ORDER_ATOMIC]},math_math_random=function(e,t){t.definitions_.import_random="import random";var n=this.getFieldValue("TYPE"),a=t.valueToCode(this,"FROM",t.ORDER_NONE)||"0",_=t.valueToCode(this,"TO",t.ORDER_NONE)||"0";if("int"==n)var l="random.randint("+a+", "+_+")";else if("float"==n)l="random.uniform("+a+", "+_+")";return[l,t.ORDER_UNARY_POSTFIX]},math_math_map=function(e,t){var n=t.valueToCode(this,"NUM",t.ORDER_NONE),a=t.valueToCode(this,"fromLow",t.ORDER_ATOMIC),_=t.valueToCode(this,"fromHigh",t.ORDER_ATOMIC),l=t.valueToCode(this,"toLow",t.ORDER_ATOMIC),s=t.valueToCode(this,"toHigh",t.ORDER_ATOMIC);return t.definitions_.import_mixpy_math_map="from mixpy import math_map",["math_map("+n+", "+a+", "+_+", "+l+", "+s+")",t.ORDER_NONE]},math_math_constrain=function(e,t){return["min(max("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"LOW",t.ORDER_NONE)||"0")+"), "+(t.valueToCode(this,"HIGH",t.ORDER_NONE)||"0")+")",t.ORDER_UNARY_POSTFIX]},math_math_number_base_conversion=function(e,t){var n=e.getFieldValue("OP"),a=t.valueToCode(this,"NUM",t.ORDER_NONE)||"0",_=e.getFieldValue("OP2");t.definitions_.import_math="import math";var l="",s="10";if("two"==n?s="2":"eight"==n?s="8":"ten"==n?s="10":"sixteen"==n&&(s="16"),"two"==_?l="bin":"eight"==_?l="oct":"ten"==_?l="":"sixteen"==_&&(l="hex"),""==l)var i="int(str("+a+"), "+s+")";else i=l+"(int(str("+a+"), "+s+"))";return[i,t.ORDER_ATOMIC]},math_math_random_seed=function(e,t){return t.definitions_.import_random="import random","random.seed("+(t.valueToCode(this,"NUM",t.ORDER_NONE)||"0")+");\n"},math_math_indexer_number=function(e,t){var n=this.getFieldValue("NUM");return[n,n<0?t.ORDER_UNARY_PREFIX:t.ORDER_ATOMIC]},math_math_round=function(e,t){return["round("+(t.valueToCode(this,"VALUE",t.ORDER_NONE)||"0")+", "+(t.valueToCode(this,"VAR",t.ORDER_NONE)||"0")+")",t.ORDER_ATOMIC]},math_text_to_number=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:"bti"==n?["int.from_bytes("+a+',"big")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_text_to_number_skulpt=function(e,t){var n=this.getFieldValue("TOWHAT"),a=t.valueToCode(this,"VAR",t.ORDER_ATOMIC);return"b"==n?[a+'.encode("utf-8")',t.ORDER_ATOMIC]:[n+"("+a+")",t.ORDER_ATOMIC]},math_base_map=math_math_map,math_turn_to_int=function(e,t){return t.definitions_.import_hexlify="from ubinascii import hexlify",["hexlify("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+").decode()",t.ORDER_ATOMIC]},math_generate_cartesian_product=function(e,t){t.definitions_.import_itertools="import itertools";let n=t.valueToCode(this,"REPEAT",t.ORDER_ATOMIC),a=new Array(this.itemCount_);for(let e=0;e",GTE:">="};const logic_logic_operation=function(e,t){var n=this.getFieldValue("OP"),a="&&"==n?t.ORDER_LOGICAL_AND:t.ORDER_LOGICAL_OR,_=t.valueToCode(this,"A",a)||"False",l=t.valueToCode(this,"B",a)||"False";if("AND"==n)var s=_+" and "+l;else if("OR"==n)s=_+" or "+l;else if("NOR"==n)s="not("+_+"^"+l+")";else s=_+"^"+l;return[s,a]},logic_logic_negate=function(e,t){var n=t.ORDER_UNARY_PREFIX;return["not "+(t.valueToCode(this,"BOOL",n)||"False"),n]},logic_logic_boolean=function(e,t){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",t.ORDER_ATOMIC]},logic_logic_null=function(e,t){return["None",t.ORDER_ATOMIC]},logic_logic_true_or_false=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"False";return["("+(t.valueToCode(this,"B",t.ORDER_ATOMIC)||"False")+" if "+n+" else "+(t.valueToCode(this,"C",t.ORDER_ATOMIC)||"False")+")",t.ORDER_ATOMIC]},logic_logic_is_in=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_is=function(e,t){var n=t.valueToCode(this,"A",t.ORDER_ATOMIC)||"''",a=t.valueToCode(this,"B",t.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+a,t.ORDER_ATOMIC]},logic_logic_tobool=function(e,t){return["bool("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||"0")+")",t.ORDER_ATOMIC]},storage_storage_open_file_with_os=function(e,t){return t.definitions_.import_os="import os","os.startfile("+t.valueToCode(this,"fn",t.ORDER_ATOMIC)+")\n"},storage_storage_fileopen=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+" = open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},storage_storage_fileopen_new=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",t.ORDER_ATOMIC]},storage_storage_fileopen_new_encoding=function(e,t){return["open("+t.valueToCode(this,"FILENAME",t.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',t.ORDER_ATOMIC]},storage_storage_file_write=function(e,t){var n=t.valueToCode(this,"data",t.ORDER_ATOMIC);return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".write("+n+")\n"},storage_storage_get_contents_without_para=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"()",t.ORDER_ATOMIC]},storage_storage_get_contents=function(e,t){var n=this.getFieldValue("MODE");return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+"."+n+"("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_get_a_line=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".readline("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_can_write_ornot=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".writable()",t.ORDER_ATOMIC]},storage_storage_get_filename=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".name()",t.ORDER_ATOMIC]},storage_storage_close_file=function(e,t){return t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".close()\n"},storage_storage_list_all_files=function(e,t){t.definitions_.import_os="import os";return["os.listdir()",t.ORDER_ATOMIC]},storage_storage_delete_file=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_file_size=function(e,t){return t.definitions_.import_os="import os",["os.path.getsize("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},storage_storage_file_tell=function(e,t){return[t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".tell()",t.ORDER_ATOMIC]},storage_storage_file_seek=function(e,t){var n=this.getFieldValue("MODE"),a=0;return a="start"==n?0:"current"==n?1:2,t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+".seek("+t.valueToCode(this,"SIZE",t.ORDER_ATOMIC)+","+a+")\n"},storage_storage_change_dir=function(e,t){return t.definitions_.import_os="import os","os.chdir("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+")\n"},storage_storage_get_current_dir=function(e,t){t.definitions_.import_os="import os";return["os.getcwd()",t.ORDER_ATOMIC]},storage_storage_make_dir=function(e,t){return t.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+t.valueToCode(this,"PATH",t.ORDER_ATOMIC)+")\n"},storage_storage_rename=function(e,t){return t.definitions_.import_os="import os","os.rename("+t.valueToCode(this,"FILE",t.ORDER_ATOMIC)+","+t.valueToCode(this,"NEWFILE",t.ORDER_ATOMIC)+")\n"},storage_storage_is_file=function(e,t){t.definitions_.import_os="import os";var n=t.valueToCode(this,"FILE",t.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",t.ORDER_ATOMIC]},storage_sdcard_use_spi_init=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = sdcard.SDCard("+t.valueToCode(this,"SPISUB",t.ORDER_ATOMIC)+","+t.valueToCode(this,"PINSUB",t.ORDER_ATOMIC)+")\n"},storage_sdcard_mount=function(e,t){return t.definitions_.import_os="import os",t.definitions_.import_sdcard="import sdcard","os.mount("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"DIR",t.ORDER_ATOMIC)+")\n"},procedures_procedures_defreturn=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("NAME"),external_Blockly_namespaceObject.Procedures.NAME_TYPE),a=(this.getInput("STACK")&&t.statementToCode(this,"STACK"))??" pass\n";t.INFINITE_LOOP_TRAP&&(a=t.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+a);var _=t.valueToCode(this,"RETURN",t.ORDER_NONE)||"";_&&(_=" return "+_+"\n");for(var l=[],s=0;s\n\n\n\t\n"+t.statementToCode(this,"HEAD")+"\n\n"+t.statementToCode(this,"BODY")+"\n\n'''",t.ORDER_ATOMIC]},html_html_title=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"\n"+n+"\n"},html_html_head_body=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");if("head"==a)var _="<"+a+'>\n\t\n'+n+"\n";else _="<"+a+">\n"+n+"\n";return _},html_html_content=function(e,t){var n=t.statementToCode(this,"DO"),a=this.getFieldValue("LEVEL");return"<"+a+">\n"+n+"\n"},html_html_content_more=function(e,t){var n=t.statementToCode(this,"DO"),a=t.valueToCode(this,"style"),_=this.getFieldValue("LEVEL");return"<"+_+" "+a+" >\n"+n+"\n"},html_html_style=function(e,t){return['style="'+t.statementToCode(this,"STYLE")+'"',t.ORDER_ATOMIC]},html_html_form=function(e,t){return'"},html_html_style_content=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},html_html_text=function(){return this.getFieldValue("TEXT")+"\n"},utility_raw_block=function(e){return e.getFieldValue("TEXT")+"\n"},utility_raw_expression=function(e,t){return[e.getFieldValue("TEXT"),t.ORDER_ATOMIC]},utility_raw_empty=function(e,t){return(t.valueToCode(e,"VALUE",t.ORDER_ATOMIC)||"")+"\n"},utility_raw_table=function(){return""},utility_type_check=function(e,t){return["type("+(t.valueToCode(e,"VALUE",t.ORDER_MEMBER)||"___")+")",t.ORDER_ATOMIC]},utility_function_call=function(e,t){for(var n=e.getFieldValue("NAME"),a=e.hasReturn_,_=new Array(e.itemCount_),l=0;l0?t.join("\n")+n.join("\n")+a.join("\n")+s.join("\n")+i.join("")+e+"while True:\n"+o.join("")+p.join("\n"):t.join("\n")+n.join("\n")+a.join("\n")+s.join("\n")+i.join("")+e+p.join("\n")},Python.scrubNakedValue=function(e){return e+"\n"},Python.quote_=function(e){var t="'";return-1!==(e=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===e.indexOf('"')?t='"':e=e.replace(/'/g,"\\'")),t+e+t},Python.multiline_quote_=function(e){return"'''"+(e=e.replace(/'''/g,"\\'\\'\\'"))+"'''"},Python.scrub_=function(e,t,n){var a="";if(!e.outputConnection||!e.outputConnection.targetConnection){(l=e.getCommentText())&&(l=external_Blockly_namespaceObject.utils.string.wrap(l,Python.COMMENT_WRAP-3),a+=Python.prefixLines(l+"\n","# "));for(var _=0;_0?"int("+i+" + "+_+")":_<0?"int("+i+" - "+-_+")":"int("+i+")",a&&(i="-"+i)),i};const AI_HUE=205,AI_ChooseAndGet={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[external_Blockly_namespaceObject.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},AI_client={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETUP).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech,"AipSpeech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace,"AipFace"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"AipOcr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AI_Speech_synthesis={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Speech_asr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_File).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_ImageClassify_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},AI_Face_match={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"1"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image+"2"+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify_Image).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Ocr_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_webImage,"webImage"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_idcard,"idcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_receipt,"receipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_form,"tableRecognition"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_passport,"passport"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Sim={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_FUNC).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"1").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.OLED_STRING+"2").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_Func={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_lexer,"lexer"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_depParser,"depParser"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_keyword,"keyword"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic,"topic"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Func_sim={init:function(){this.setColour(AI_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},AI_Nlp_Topic={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_topic).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_Nlp_newsSummary={init:function(){this.setColour(AI_HUE),this.appendValueInput("SUB").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_summary).appendField(external_Blockly_namespaceObject.Msg.MIXLY_Client).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Content).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(external_Blockly_namespaceObject.Msg.MIXLY_LIST_LEN).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},AI_audio={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},AI_photo={init:function(){this.setColour(AI_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},AI_result={init:function(){this.setColour(AI_HUE),this.appendValueInput("AI").appendField(external_Blockly_namespaceObject.Msg.MIXPY_AI_RESULT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_AipImageClassify,"Image"],[external_Blockly_namespaceObject.Msg.MIXLY_AipSpeech_asr,"Speech"],[external_Blockly_namespaceObject.Msg.MIXLY_AipFace_match,"Face"],[external_Blockly_namespaceObject.Msg.MIXLY_AipOcr,"Ocr"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.LOGIC_NEGATE_TOOLTIP)}},ALGORITHM_HUE="#526FC3",algorithm_prepare={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_find_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_new_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},algorithm_set_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_add_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_del_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_return_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},algorithm_print_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_current_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},algorithm_no_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_1={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_prepare_2_2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_move_recent={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_not_home={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},algorithm_not_school={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},algorithm_print_path2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hanoi_init={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_move={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_all_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_all_books_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_first_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_no_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},algorithm_yes_ring2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},algorithm_next_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_two_left={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},algorithm_divide_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_half_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_book={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_delete_books2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_book2={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_book_scale={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new external_Blockly_namespaceObject.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_number_zero={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_number_add={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_number={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_get_book_num={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField("n"+external_Blockly_namespaceObject.Msg.MIXLY_VALUE2).appendField(new external_Blockly_namespaceObject.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_sequence={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_print_divide={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_init_jttl={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_zero={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_number_in_range={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_chick_calculate={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_check_feet={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_print_jttl_answer={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_rabbit_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_fzsf={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("计算").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_calc_first_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_compare={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_set_min={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("设置").appendField(new external_Blockly_namespaceObject.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_fz_move={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_init_hxdb={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_init_soldier={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new external_Blockly_namespaceObject.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_stand_in_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("使士兵").appendField(new external_Blockly_namespaceObject.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_last_line={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("剩余").appendField(new external_Blockly_namespaceObject.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_add={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},algorithm_hxdb_result={init:function(){this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setTooltip(""),this.setHelpUrl("")}},hanoi_init_offline={init:function(){this.appendDummyInput().appendField("准备").appendField(new external_Blockly_namespaceObject.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ALGORITHM_HUE),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},algorithm_get_current_location={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},algorithm_void_path={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},algorithm_color_seclet={init:function(){this.setColour(ALGORITHM_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},COMMUNICATE_HUE="#3288dd",requests_get_old={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("DOMAIN").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET).appendField(new external_Blockly_namespaceObject.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},requests_get={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS).appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_post={init:function(){this.setColour(COMMUNICATE_HUE),this.appendValueInput("URL").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS+external_Blockly_namespaceObject.Msg.OLED_STRING),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},requests_attribute={init:function(){this.appendValueInput("VAL");var e=[[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[external_Blockly_namespaceObject.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[external_Blockly_namespaceObject.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},requests_method={init:function(){this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(COMMUNICATE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_CONDUCT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},CV_HUE="f0a559",cv_read_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_show_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_write_image={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_waitkey={init:function(){this.setColour(CV_HUE),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+external_Blockly_namespaceObject.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},cv_destroy_all={init:function(){this.setColour(CV_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cv_line_rect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_CV_RECT,"rectangle"],[external_Blockly_namespaceObject.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_text={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new external_Blockly_namespaceObject.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},cv_face_classifier={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},cv_face_detect_all={init:function(){this.setColour(CV_HUE),this.appendValueInput("FILE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},DATA_HUE=170,series_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_one_index={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"index"],[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_create_from_index={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(external_Blockly_namespaceObject.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(external_Blockly_namespaceObject.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_create_from_text={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new external_Blockly_namespaceObject.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},series_index_value={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.SERIES_INDEX,"index"],[external_Blockly_namespaceObject.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.SERIES_INDEX_VALUE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"INDEX_VALUE"),this.setOutput(!0,"List");var t=this;this.setTooltip((function(){var e=t.getFieldValue("INDEX_VALUE");return{index:external_Blockly_namespaceObject.Msg.SERIES_INDEX_TOOLTIP,value:external_Blockly_namespaceObject.Msg.HTML_VALUE_TOOLTIP}[e]}))}},series_get_num={init:function(){this.setColour(DATA_HUE),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TUPLE_GET_INDEX_TOOLTIP)}},pl_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},array_create={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FROM").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SPLITBYDOU).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pl_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},pl_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},pl_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},pl_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pl_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},numpy_trig={init:function(){var e=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_ROUND,"round"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_CEIL,"ceil"],[external_Blockly_namespaceObject.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(DATA_HUE),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"OP"),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},pl_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},pandas_readcsv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILENAME").appendField(external_Blockly_namespaceObject.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},dataframe_get={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.DATAFRAME_COLUMN,"column"],[external_Blockly_namespaceObject.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},pl_savefig={init:function(){this.setColour(DATA_HUE),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},pl_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},array_toarray={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},plot_plot_easy={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_show={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_axes={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_legend={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_title={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_label={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_SET_LABEL).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("LABEL").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_DISPLAY_DRAW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{plot:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[e]}))}},plot_plot_scatter={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],t=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_SCATTER).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},plot_plot_xy={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],t=[[external_Blockly_namespaceObject.Msg.COLOUR_RGB_BLUE,"b"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_GREEN,"g"],[external_Blockly_namespaceObject.Msg.COLOUR_RGB_RED,"r"],[external_Blockly_namespaceObject.Msg.COLOUR_CYAN,"c"],[external_Blockly_namespaceObject.Msg.COLOUR_MAGENTA,"m"],[external_Blockly_namespaceObject.Msg.COLOUR_YELLOW,"y"],[external_Blockly_namespaceObject.Msg.COLOUR_BLACK,"k"],[external_Blockly_namespaceObject.Msg.COLOUR_WHITE,"w"]],n=[[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"LINE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_bar={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"ALIGN"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.HTML_COLOUR).appendField(new external_Blockly_namespaceObject.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_pie={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE).appendField(external_Blockly_namespaceObject.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"autopct"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},plot_hist={init:function(){this.setColour(DATA_HUE),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_HIST).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},plot_ticks={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.appendValueInput("A").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},plot_subplot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},plot_savefig={init:function(){this.setColour(DATA_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},plot_text={init:function(){this.setColour(DATA_HUE);var e=[[external_Blockly_namespaceObject.Msg.TEXT_TRIM_LEFT,"right"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.TEXT_TRIM_RIGHT,"left"]],t=[[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOP,"bottom"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_CENTER,"center"],[external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_SETTING).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_HOR).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"HALIGN"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_VER).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_PL_TEXT_TOOLTIP)}},numpy_shape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},numpy_reshape={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},numpy_astype={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new external_Blockly_namespaceObject.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},pylab_imshow={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new external_Blockly_namespaceObject.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},numpy_mean_digit={init:function(){this.setColour(DATA_HUE),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},numpy_argmin_template_match={init:function(){this.setColour(DATA_HUE),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},numpy_mean={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},numpy_std={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},pandas_dropna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},pandas_drop_columns={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},numpy_ones={init:function(){this.setColour(DATA_HUE),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},numpy_c_={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},numpy_linalg_det={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},matrix_transpose={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},matrix_multiplication={init:function(){this.setColour(DATA_HUE),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},numpy_linalg_inv={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},dataframe_median={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},dataframe_fillna={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new external_Blockly_namespaceObject.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},dataframe_info={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},numpy_min={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},numpy_max={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new external_Blockly_namespaceObject.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},numpy_size={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},numpy_dot={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},numpy_square={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},numpy_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},numpy_random_random={init:function(){this.setColour(DATA_HUE),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},py_sum={init:function(){this.setColour(DATA_HUE),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},dataframe_sort_values={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("排序方式").appendField(new external_Blockly_namespaceObject.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_head_tail={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("获取").appendField(new external_Blockly_namespaceObject.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_select={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_groupby={init:function(){this.setColour(DATA_HUE),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},dataframe_aggregate_func={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},plot_cla={init:function(){this.setColour(DATA_HUE),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DS_HUE=80,ds_create_linkedlist={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new external_Blockly_namespaceObject.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var e=document.createElement("mutation");return e.setAttribute("items",this.itemCount_),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute("items"),10),this.updateShape_()},decompose:function(e){var t=e.newBlock("ds_create_linkedlist_container");t.initSvg();for(var n=t.getInput("STACK").connection,a=0;at?e[t]:"name"),"KEY"+t).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},ds_create_linkedlist_container={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},ds_create_linkedlist_item={init:function(){this.setColour(DS_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},ds_create_node={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_USE).appendField(new external_Blockly_namespaceObject.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_CREATE_NODE_TOOLTIP)}},ds_get_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},ds_set_node_attr={init:function(){this.setColour(DS_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AIP_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},ds_add_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_add_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE);var e=[[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_BEFORE,"before"],[external_Blockly_namespaceObject.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_TOOLTIP)}},ds_del_node_by_name={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_del_node_by_attr={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_ATTR).appendField(new external_Blockly_namespaceObject.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_AS),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},ds_reverse_linkedlist={init:function(){this.setColour(DS_HUE),this.appendValueInput("NODE").appendField(external_Blockly_namespaceObject.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(external_Blockly_namespaceObject.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DS_DEL_NODE_TOOLTIP)}},FACTORY_HUE="#777777",factory_from_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("from ").appendField(new external_Blockly_namespaceObject.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_import={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField("import ").appendField(new external_Blockly_namespaceObject.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},factory_function_noreturn={init:function(){this.setColour(FACTORY_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new external_Blockly_namespaceObject.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var e=document.createElement("mutation");e.setAttribute("items",this.itemCount_);for(var t=0;tt?e[t]:'"key'+(t+1)+'"'),"KEY"+t).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},iot_publish_container={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iot_publish_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_create_with_item={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iot_mixio_connect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_WIFI_USERNAME).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_IOT_PASSWORD).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PROJECT).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_MIXIO_PUBLISH={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(external_Blockly_namespaceObject.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},IOT_MIXIO_SUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE+external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_MSG).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IOT_MIXIO_UNSUBSCRIBE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(external_Blockly_namespaceObject.Msg.MSG.stop+external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},iot_mixio_disconnect={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_connect_only={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_check={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixio_format_topic={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},iot_mixio_format_msg={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},IOT_FORMATTING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IOT_FORMAT_STRING={init:function(){this.setColour(IOT_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},IOT_EMQX_PING={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IOT_MIXIO_NTP={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+external_Blockly_namespaceObject.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(external_Blockly_namespaceObject.Msg.MIXLY_EMQX_SERVER).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(external_Blockly_namespaceObject.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mixly_key_py={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(e){if(e==this.RTL)var t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new external_Blockly_namespaceObject.FieldImage(t,12,12,'"')}},iot_mixly_key={init:function(){this.VISITOR_ID=external_Mixly_namespaceObject.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(IOT_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const e=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==e&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iot_client_onboard={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MixIO").appendField(external_Blockly_namespaceObject.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},iot_http_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME).appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_http_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("HTTP"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_mqtt_client={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(external_Blockly_namespaceObject.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_INIT_SUBSCRIBE).appendField(external_Blockly_namespaceObject.MQTT_Topic).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(external_Blockly_namespaceObject.Msg.MIXLY_OPEN_DEBUG).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iot_mqtt_data={init:function(){this.setColour(IOT_HUE),this.appendDummyInput().appendField("MQTT"+external_Blockly_namespaceObject.Msg.MIXLY_Client).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_LEN,"client_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[external_Blockly_namespaceObject.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},iot_onenetconnect=iot_onenet_connect,iot_onenetdisconnect=iot_onenet_disconnect,iot_checkonenet=iot_onenet_check,iot_publish=iot_onenet_publish,PINS_HUE=230,pins_digital_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},pins_digital_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pins_analog_write={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},pins_analog_read={init:function(){this.setColour(PINS_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(external_Mixly_namespaceObject.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},SERIAL_HUE=40,serial_open={init:function(){this.setColour(SERIAL_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldLabel(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN)).appendField(new external_Blockly_namespaceObject.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SERIAL_BEGIN).appendField(new external_Blockly_namespaceObject.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},serial_write={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},serial_read_b={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},serial_close={init:function(){this.setColour(SERIAL_HUE),this.appendValueInput("SER"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},SKLEARN_HUE=80,sklearn_make_classification={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_regression={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_make_blobs={init:function(){this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_load={init:function(){var e=[[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.LOAD).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"type").appendField(new external_Blockly_namespaceObject.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("name"))&&this.setTitleValue(t,"name")}},sklearn_data_target={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SET),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.EIGENVALUES,"data"],[external_Blockly_namespaceObject.Msg.LABEL_VALUE,"target"],[external_Blockly_namespaceObject.Msg.FEATURE,"feature_names"],[external_Blockly_namespaceObject.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_train_test_split_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_LinearRegression={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_Ridge={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_DecisionTreeClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_RandomForestClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KNeighborsClassifier_Regressor={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KNN_INIT).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[external_Blockly_namespaceObject.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_GaussianNB={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_pca={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_pca_fit_transform={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_KMeans_fit={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_fit_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_predict={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_score_no_target={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_coef_intercept={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).setCheck(null).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_COEF,"coef_"],[external_Blockly_namespaceObject.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_cluster_centers_labels_inertia={init:function(){this.appendDummyInput().appendField("sklearn "+external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_GET).appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[external_Blockly_namespaceObject.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[external_Blockly_namespaceObject.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},sklearn_save_load_model={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("sklearn").appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.SKLEARN_SAVE_MODEL,"dump"],[external_Blockly_namespaceObject.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+external_Blockly_namespaceObject.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(SKLEARN_HUE),this.setTooltip(""),this.setHelpUrl("")}},SYSTEM_HUE=120,base_delay={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY+"("+external_Blockly_namespaceObject.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_controls_millis={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},time_localtime={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new external_Blockly_namespaceObject.FieldDropdown([[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[external_Blockly_namespaceObject.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},system_Panic_with_status_code={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("STATUS_CODE",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},system_reset={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},controls_mstimer2={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("TIME").setCheck(Number).setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_start={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},controls_mstimer2_stop={init:function(){this.setColour(SYSTEM_HUE),this.appendDummyInput().appendField("MsTimer2").appendField(external_Blockly_namespaceObject.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},system_time_sleep={init:function(){this.setColour(SYSTEM_HUE),this.appendValueInput("DELAY_TIME",Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},TURTLE_HUE=180,turtle_create={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_create).appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_done={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_exitonclick={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_move={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_forward,"forward"],[external_Blockly_namespaceObject.Msg.blockpy_backward,"backward"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},turtle_rotate={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_left,"left"],[external_Blockly_namespaceObject.Msg.blockpy_right,"right"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_rotate).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{left:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[e]}))}},turtle_setheading={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_delay={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_MILLIS),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_goto={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_setxy={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_X,"x"],[external_Blockly_namespaceObject.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},turtle_pos_shape={init:function(){this.setColour(TURTLE_HUE);var e=[[external_Blockly_namespaceObject.Msg.TURTLE_POS,"pos"],[external_Blockly_namespaceObject.Msg.TURTLE_SHAPE,"shape"],[external_Blockly_namespaceObject.Msg.TURTLE_HEADING,"heading"],[external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_POS_SHAPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR");var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pos:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[e]})),this.setOutput(!0),this.setInputsInline(!0)}},turtle_clear={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_reset,"reset"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_home,"home"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))}},turtle_penup={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_penup,"penup"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{penup:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[e]}))}},turtle_fill={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_beginfill,"begin"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_endfill,"end"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{begin:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[e]}))}},turtle_size_speed={init:function(){this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldTextInput("tina"),"TUR");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_size,"pensize"],[external_Blockly_namespaceObject.Msg.MIXLY_SPEED,"speed"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{pensize:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[e]}))}},turtle_size={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_size),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_speed={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_set_speed),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_circle={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_dot,"dot"]];this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_draw).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{circle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[e]}))}},turtle_circle_advanced={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},turtle_visible={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_hide,"hideturtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{hideturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[e]}))}},turtle_bgcolor={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_clone={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.TURTLE_CLONE),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},turtle_bgcolor_hex_new={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex_new={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor).appendField(new external_Blockly_namespaceObject.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_color_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR1").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_bgcolor_hex={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_pencolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_fillcolor_hex={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_shape={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var e=[[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_arrow,"arrow"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_turtle,"turtle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_circle,"circle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_square,"square"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_triangle,"triangle"],[external_Blockly_namespaceObject.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_shape).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_SHAPE_TOOLTIP)}},turtle_shapesize={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},turtle_numinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_NUMINPUT_TOOLTIP)}},turtle_textinput={init:function(){this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(TURTLE_HUE),this.appendValueInput("TITLE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},turtle_write={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_write_format_skulpt={init:function(){var e=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],t=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(TURTLE_HUE),this.appendValueInput("VAR").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new external_Blockly_namespaceObject.FieldDropdown(e),"MOVE"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new external_Blockly_namespaceObject.FieldDropdown(t),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new external_Blockly_namespaceObject.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.TURTLE_WRITE_TOOLTIP)}},turtle_color_seclet={init:function(){this.setColour(TURTLE_HUE),this.appendDummyInput("").setAlign(external_Blockly_namespaceObject.inputs.Align.RIGHT).appendField(new external_Blockly_namespaceObject.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},turtle_getscreen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new external_Blockly_namespaceObject.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(e,t){external_Blockly_namespaceObject.Names.equals(e,this.getFieldValue("VAR"))&&this.setTitleValue(t,"VAR")}},turtle_onkey={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},turtle_onclick={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},turtle_ontimer={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(external_Blockly_namespaceObject.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(external_Blockly_namespaceObject.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},turtle_listen={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendDummyInput().appendField(external_Blockly_namespaceObject.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},turtle_screen_savefig={init:function(){this.setColour(TURTLE_HUE),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(external_Blockly_namespaceObject.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(external_Blockly_namespaceObject.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},ai_AI_ChooseAndGet=function(e,t){var n=this.getFieldValue("TYPE");return t.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",t.ORDER_ATOMIC]},ai_AI_client=function(e,t){var n=this.getFieldValue("CTYPE");return t.definitions_.import_aip="import aip",t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+" = aip."+n+"("+t.valueToCode(this,"API_KEY",t.ORDER_ATOMIC)+", "+t.valueToCode(this,"SECRET_KEY",t.ORDER_ATOMIC)+")\n"},ai_AI_Speech_synthesis=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".synthesis("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Speech_asr=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".asr("+(t.valueToCode(this,"FILE",t.ORDER_ATOMIC)||'""')+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Face_match=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".match("+t.valueToCode(this,"VAR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"VAR2",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Ocr=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"ADDR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Sim=function(e,t){t.definitions_.import_aip="import aip";var n=t.valueToCode(this,"SUB",t.ORDER_ATOMIC),a=t.valueToCode(this,"STR1",t.ORDER_ATOMIC),_=t.valueToCode(this,"STR2",t.ORDER_ATOMIC);return[n+"."+t.valueToCode(this,"FUNC",t.ORDER_ATOMIC)+"("+a+","+_+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_Nlp_Topic=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".topic("+t.valueToCode(this,"STR1",t.ORDER_ATOMIC)+","+t.valueToCode(this,"STR2",t.ORDER_ATOMIC)+")",t.ORDER_ATOMIC]},ai_AI_Nlp_newsSummary=function(e,t){return t.definitions_.import_aip="import aip",[t.valueToCode(this,"SUB",t.ORDER_ATOMIC)+".newsSummary("+t.valueToCode(this,"STR",t.ORDER_ATOMIC)+","+t.valueToCode(this,"LEN",t.ORDER_ATOMIC)+", options="+(t.valueToCode(this,"ATTR",t.ORDER_ATOMIC)||"{}")+")",t.ORDER_ATOMIC]},ai_AI_ImageClassify_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Ocr_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_Nlp_Func_sim=function(e,t){return[this.getFieldValue("TYPE"),t.ORDER_ATOMIC]},ai_AI_audio=function(e,t){return t.definitions_.import_audio="import audio","audio.audio_record("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"TIME",t.ORDER_ATOMIC)||"0")+")\n"},ai_AI_photo=function(e,t){return t.definitions_.import_audio="import cam","cam.photo_capture("+(t.valueToCode(this,"VAR",t.ORDER_ATOMIC)||'""')+","+(t.valueToCode(this,"BUT",t.ORDER_ATOMIC)||'""')+")\n"},ai_AI_result=function(e,t){var n=t.valueToCode(this,"AI",t.ORDER_ASSIGNMENT)||"0",a=this.getFieldValue("CTYPE");if("Image"==a)var _=n+'["result"][0]["keyword"]';if("Speech"==a)_=n+'["result"][0]';if("Face"==a||"OcrSimilarity"==a)_=n+'["score"]';if("Ocr"==a)_=n+'["words_result"]';return[_,t.ORDER_ATOMIC]},algorithm_algorithm_prepare=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},algorithm_algorithm_add_school=function(){return"path = [1]\nmask.show()\ncar = sprite.Sprite('xnie', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},algorithm_algorithm_find_path=function(e,t){t.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},algorithm_algorithm_new_path=function(e,t){return["flag == 1",t.ORDER_ATOMIC]},algorithm_algorithm_set_path=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},algorithm_algorithm_add_path=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},algorithm_algorithm_del_path=function(e,t){t.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},algorithm_algorithm_return_path=function(){var e="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return e="house[f].hide()\ndrive(path[len(path) - 1])\n"+e},algorithm_algorithm_no_left=function(e,t){return["len(path) == 7",t.ORDER_ATOMIC]},algorithm_algorithm_print_path=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},algorithm_algorithm_prepare2=function(e,t){t.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nbarricade = sprite.Sprite('barricade', 610, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},algorithm_algorithm_current_school=function(e,t){return["f == 1",t.ORDER_ATOMIC]},algorithm_algorithm_no_path=function(){return"print('没有符合条件的路线')\n"},algorithm_algorithm_prepare_2_1=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_prepare_2_2=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},algorithm_algorithm_move_recent=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},algorithm_algorithm_not_home=function(e,t){return["name[now] != '小科家'",t.ORDER_ATOMIC]},algorithm_algorithm_not_school=function(e,t){return["name[now] != '学校'",t.ORDER_ATOMIC]},algorithm_algorithm_print_path2=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},algorithm_hanoi_init=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var a="print('层数过高!不得高于6层!')\nexit()\n";else a="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return a},algorithm_hanoi_move=function(e,t){var n=t.valueToCode(this,"FROM_NUM",t.ORDER_ATOMIC)||"0",a=t.valueToCode(this,"TO_NUM",t.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${a}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${a}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${a}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${a}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${a}*200+200, 400-len(_Hanoi[${a}])*27, 0.2)\n _Hanoi[${a}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},algorithm_algorithm_all_books_sequence=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},algorithm_algorithm_all_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},algorithm_algorithm_first_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},algorithm_algorithm_no_ring2=function(e,t){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",t.ORDER_ATOMIC]},algorithm_algorithm_yes_ring2=function(e,t){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",t.ORDER_ATOMIC]},algorithm_algorithm_next_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},algorithm_algorithm_two_left=function(e,t){return["len(list)>=2",t.ORDER_ATOMIC]},algorithm_algorithm_divide_books=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},algorithm_algorithm_get_half_books=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_delete_book=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},algorithm_algorithm_print_book2=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},algorithm_algorithm_book_scale=function(e,t){var n=this.getFieldValue("NUM");return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},algorithm_algorithm_number_zero=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},algorithm_algorithm_number_add=function(e,t){t.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},algorithm_algorithm_print_number=function(e,t){t.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},algorithm_algorithm_init_jttl=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},algorithm_algorithm_rabbit_zero=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},algorithm_algorithm_rabbit_number_in_range=function(e,t){return["_rabbit < _head",t.ORDER_ATOMIC]},algorithm_algorithm_chick_calculate=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},algorithm_algorithm_check_feet=function(e,t){return["_rabbit*4 + _chick*2 == _foot",t.ORDER_ATOMIC]},algorithm_algorithm_print_jttl_answer=function(e,t){t.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},algorithm_algorithm_rabbit_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},algorithm_algorithm_init_fzsf=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},algorithm_algorithm_fz_calc=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const a=[0,[1,3],[2,4],[5,7],[6]];var _="";return _+=`_S${n}.show()\ntime.sleep(1)\n`,_+=4!=n?`_Slen[${n}] = _Llen[${a[n][0]}] + _Llen[${a[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},algorithm_algorithm_fz_compare=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,t.ORDER_ATOMIC]},algorithm_algorithm_fz_set_min=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),a="";return a+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},algorithm_algorithm_fz_move=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},algorithm_algorithm_init_hxdb=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},algorithm_algorithm_hxdb_init_soldier=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},algorithm_algorithm_hxdb_stand_in_line=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},algorithm_algorithm_hxdb_last_line=function(e,t){return t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,t.ORDER_ATOMIC]},algorithm_algorithm_hxdb_add=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},algorithm_algorithm_hxdb_result=function(e,t){t.definitions_.import_time="import time",t.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},algorithm_hanoi_init_offline=function(e,t){t.definitions_.import_turtle="import turtle",t.definitions_.import_time="import time",t.definitions_.import_math="import math";var n=t.valueToCode(this,"VAR",t.ORDER_ATOMIC),a=this.getFieldValue("NUM");return t.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",t.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",t.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,t.ORDER_ATOMIC]},data_dataframe_groupby=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.groupby(by=${t.valueToCode(e,"KEY",t.ORDER_ATOMIC)||"'tag'"})`,t.ORDER_ATOMIC]},data_dataframe_aggregate_func=function(e,t){return[`${t.valueToCode(e,"DICT",t.ORDER_ATOMIC)||"df"}.${e.getFieldValue("TYPE")}()`,t.ORDER_ATOMIC]},data_plot_cla=function(e,t){t.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},datastructure_ds_create_linkedlist=function(e,t){var n=t.variableDB_.getName(this.getFieldValue("VAR"),external_Blockly_namespaceObject.Variables.NAME_TYPE),a=t.variableDB_.getName(this.getFieldValue("TYPE"),external_Blockly_namespaceObject.Variables.NAME_TYPE),_="class "+a+":\n";_+=" def __init__(self):\n";for(var l=new Array(this.itemCount_),s=0;sreponsegethttps://mixio.org/api/v1/getData?user=demo@mixly.org&password=b81e53f441d90152cdfb9731c5db92da&project=通用演示&topic=光照强度&num=10Hellotextreponsemydict{"name":"Mixly","color":"green"}textreponse0,1,2,3mydictdataiHelloi{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5vcmcvYXBpL3YxL2dldERhdGE/dXNlcj1kZW1vQG1peGx5Lm9yZyZwYXNzd29yZD1iODFlNTNmNDQxZDkwMTUyY2RmYjk3MzFjNWRiOTJkYSZwcm9qZWN0PemAmueUqOa8lOekuiZ0b3BpYz3lhYnnhaflvLrluqYmbnVtPTEwJykKcHJpbnQocmVwb25zZS50ZXh0KQpteWRpY3QgPSBqc29uLmxvYWRzKHJlcG9uc2UudGV4dCkKZm9yIGkgaW4gbXlkaWN0WydkYXRhJ106CiAgICBwcmludChpKQo= \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/18-3 数据处理(python).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/18-3 数据处理(python).mix new file mode 100644 index 00000000..a7c82d49 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/18-3 数据处理(python).mix @@ -0,0 +1 @@ +reponsegethttps://mixio.org/api/v1/getData?user=demo@mixly.org&password=b81e53f441d90152cdfb9731c5db92da&project=通用演示&topic=光照强度&num=10ttextreponseHellotmydict{"name":"Mixly","color":"green"}tmylistxmydictdata0,1,2,3mylistii0floatidf1mylistdf1Truedf1Hello平均光照:Mixlyxmeandf1columndf1Hello最大光照:Mixlyxtaildf11Hello最小光照:Mixlyxheaddf11Hellodf1GTcolumndf1160.4Hellodf1{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCmltcG9ydCBwYW5kYXMKCgpyZXBvbnNlID0gcmVxdWVzdHMuZ2V0KCdodHRwczovL21peGlvLm9yZy9hcGkvdjEvZ2V0RGF0YT91c2VyPWRlbW9AbWl4bHkub3JnJnBhc3N3b3JkPWI4MWU1M2Y0NDFkOTAxNTJjZGZiOTczMWM1ZGI5MmRhJnByb2plY3Q96YCa55So5ryU56S6JnRvcGljPeWFieeFp+W8uuW6piZudW09MTAnKQp0ID0gcmVwb25zZS50ZXh0CnByaW50KHQpCm15ZGljdCA9IGpzb24ubG9hZHModCkKbXlsaXN0ID0gbGlzdChteWRpY3RbJ2RhdGEnXSkKZm9yIGkgaW4gbXlsaXN0OgogICAgaVsn5YC8J10gPSBmbG9hdChpWyflgLwnXSkKZGYxID0gcGFuZGFzLkRhdGFGcmFtZShteWxpc3QpCmRmMSA9IGRmMS5zb3J0X3ZhbHVlcyhieT0n5YC8JywgYXNjZW5kaW5nPVRydWUpCnByaW50KCgn5bmz5Z2H5YWJ54Wn77yaJyArIHN0cihkZjFbJ+WAvCddLm1lYW4oKSkpKQpwcmludCgoJ+acgOWkp+WFieeFp++8micgKyBzdHIoZGYxLnRhaWwoMSkpKSkKcHJpbnQoKCfmnIDlsI/lhYnnhafvvJonICsgc3RyKGRmMS5oZWFkKDEpKSkpCnByaW50KGRmMVsoZGYxWyflgLwnXSA+IDE2MC40KV0pCnByaW50KGRmMSkK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/19-3 数据可视化(python).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/19-3 数据可视化(python).mix new file mode 100644 index 00000000..96f98014 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/19-3 数据可视化(python).mix @@ -0,0 +1 @@ +reponsegethttps://mixio.org/api/v1/getData?user=demo@mixly.org&password=b81e53f441d90152cdfb9731c5db92da&project=通用演示&topic=光照强度&num=10ttextreponseHellotmydict{"name":"Mixly","color":"green"}tmylistxmydictdatadf1mylistxtimeylightplot1,2,3,4df1时间5,6,7,8df1{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKaW1wb3J0IHBhbmRhcwppbXBvcnQgcHlsYWIKCgpyZXBvbnNlID0gcmVxdWVzdHMuZ2V0KCdodHRwczovL21peGlvLm9yZy9hcGkvdjEvZ2V0RGF0YT91c2VyPWRlbW9AbWl4bHkub3JnJnBhc3N3b3JkPWI4MWU1M2Y0NDFkOTAxNTJjZGZiOTczMWM1ZGI5MmRhJnByb2plY3Q96YCa55So5ryU56S6JnRvcGljPeWFieeFp+W8uuW6piZudW09MTAnKQp0ID0gcmVwb25zZS50ZXh0CnByaW50KHQpCm15ZGljdCA9IGpzb24ubG9hZHModCkKbXlsaXN0ID0gbGlzdChteWRpY3RbJ2RhdGEnXSkKcGx0LmNsYSgpCmRmMSA9IHBhbmRhcy5EYXRhRnJhbWUobXlsaXN0KQpweWxhYi54bGFiZWwoJ3RpbWUnLCBmb250cHJvcGVydGllcyA9ICJTVFNvbmciKQpweWxhYi55bGFiZWwoJ2xpZ2h0JywgZm9udHByb3BlcnRpZXMgPSAiU1RTb25nIikKcHlsYWIucGxvdChkZjFbJ+aXtumXtCddLGRmMVsn5YC8J10pCnB5bGFiLnNob3coKQo= \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/22-2 身高记录仪系统分析端(python).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/22-2 身高记录仪系统分析端(python).mix new file mode 100644 index 00000000..97d36e01 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/22-2 身高记录仪系统分析端(python).mix @@ -0,0 +1 @@ +reponsegethttps://mixio.org/api/v1/getData?user=demo@mixly.org&password=b81e53f441d90152cdfb9731c5db92da&project=%E9%80%9A%E7%94%A8%E6%BC%94%E7%A4%BA&topic=%E5%AD%A6%E7%94%9F%E4%BF%A1%E6%81%AF&num=10Hellotextreponsemydict{"name":"Mixly","color":"green"}textreponsemylistmydictdata0,1,2,3mylistiHellomydicti{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5vcmcvYXBpL3YxL2dldERhdGE/dXNlcj1kZW1vQG1peGx5Lm9yZyZwYXNzd29yZD1iODFlNTNmNDQxZDkwMTUyY2RmYjk3MzFjNWRiOTJkYSZwcm9qZWN0PSVFOSU4MCU5QSVFNyU5NCVBOCVFNiVCQyU5NCVFNyVBNCVCQSZ0b3BpYz0lRTUlQUQlQTYlRTclOTQlOUYlRTQlQkYlQTElRTYlODElQUYmbnVtPTEwJykKcHJpbnQocmVwb25zZS50ZXh0KQpteWRpY3QgPSBqc29uLmxvYWRzKHJlcG9uc2UudGV4dCkKbXlsaXN0ID0gbXlkaWN0WydkYXRhJ10KZm9yIGkgaW4gbXlsaXN0OgogICAgcHJpbnQoaVsn5YC8J10pCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/22-22 手速测试仪系统分析端(python).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/22-22 手速测试仪系统分析端(python).mix new file mode 100644 index 00000000..9464ef79 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/22-22 手速测试仪系统分析端(python).mix @@ -0,0 +1 @@ +reponsegethttps://mixio.mixly.cn/api/v1/getData?user=demo@mixly.org&password=b81e53f441d90152cdfb9731c5db92da&project=%E9%80%9A%E7%94%A8%E6%BC%94%E7%A4%BA&topic=%E5%AD%A6%E7%94%9F%E4%BF%A1%E6%81%AF&num=10Hellotextreponsemydict{"name":"Mixly","color":"green"}textreponsemylistmydictdata0,1,2,3mylistiHellomydicti{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5taXhseS5jbi9hcGkvdjEvZ2V0RGF0YT91c2VyPWRlbW9AbWl4bHkub3JnJnBhc3N3b3JkPWI4MWU1M2Y0NDFkOTAxNTJjZGZiOTczMWM1ZGI5MmRhJnByb2plY3Q9JUU5JTgwJTlBJUU3JTk0JUE4JUU2JUJDJTk0JUU3JUE0JUJBJnRvcGljPSVFNSVBRCVBNiVFNyU5NCU5RiVFNCVCRiVBMSVFNiU4MSVBRiZudW09MTAnKQpwcmludChyZXBvbnNlLnRleHQpCm15ZGljdCA9IGpzb24ubG9hZHMocmVwb25zZS50ZXh0KQpteWxpc3QgPSBteWRpY3RbJ2RhdGEnXQpmb3IgaSBpbiBteWxpc3Q6CiAgICBwcmludChpWyflgLwnXSkK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/9-1 利用HTTP获取互联网中的数据(python).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/9-1 利用HTTP获取互联网中的数据(python).mix new file mode 100644 index 00000000..fec14a71 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/9-1 利用HTTP获取互联网中的数据(python).mix @@ -0,0 +1 @@ +reponsegethttps://mixio.mixly.cn/api/v1/getData?user=@4DDJ53C9&password=MixIO_public&project=default&topic=%E5%85%89%E7%85%A7&num=10Hellotextreponsemydict{"name":"Mixly","color":"green"}textreponse0,1,2,3mydictdataiHelloi{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9taXhpby5taXhseS5jbi9hcGkvdjEvZ2V0RGF0YT91c2VyPUA0RERKNTNDOSZwYXNzd29yZD1NaXhJT19wdWJsaWMmcHJvamVjdD1kZWZhdWx0JnRvcGljPSVFNSU4NSU4OSVFNyU4NSVBNyZudW09MTAnKQpwcmludChyZXBvbnNlLnRleHQpCm15ZGljdCA9IGpzb24ubG9hZHMocmVwb25zZS50ZXh0KQpmb3IgaSBpbiBteWRpY3RbJ2RhdGEnXToKICAgIHByaW50KGkpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/9-2 解析数据(python).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/9-2 解析数据(python).mix new file mode 100644 index 00000000..5088f5fb --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/八年级/9-2 解析数据(python).mix @@ -0,0 +1 @@ +reponsegethttps://api.seniverse.com/v3/weather/now.json?key=S-aQOUspDKoNviXm6&location=beijing&language=zh-Hans&unit=cmydict{"name":"Mixly","color":"green"}textreponse城市mydictresults0locationname天气mydictresults0nowtext温度mydictresults0nowtemperature城市:城市天气:天气温度:温度{}aW1wb3J0IHJlcXVlc3RzCmltcG9ydCBqc29uCgoKcmVwb25zZSA9IHJlcXVlc3RzLmdldCgnaHR0cHM6Ly9hcGkuc2VuaXZlcnNlLmNvbS92My93ZWF0aGVyL25vdy5qc29uP2tleT1TLWFRT1VzcERLb052aVhtNiZsb2NhdGlvbj1iZWlqaW5nJmxhbmd1YWdlPXpoLUhhbnMmdW5pdD1jJykKbXlkaWN0ID0ganNvbi5sb2FkcyhyZXBvbnNlLnRleHQpCuWfjuW4giA9IG15ZGljdFsncmVzdWx0cyddWzBdWydsb2NhdGlvbiddWyduYW1lJ10K5aSp5rCUID0gbXlkaWN0WydyZXN1bHRzJ11bMF1bJ25vdyddWyd0ZXh0J10K5rip5bqmID0gbXlkaWN0WydyZXN1bHRzJ11bMF1bJ25vdyddWyd0ZW1wZXJhdHVyZSddCnByaW50KCfln47luILvvJonLCDln47luIIpCnByaW50KCflpKnmsJTvvJonLCDlpKnmsJQpCnByaW50KCfmuKnluqbvvJonLCDmuKnluqYpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第10课.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第10课.mix new file mode 100644 index 00000000..06be21a5 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第10课.mix @@ -0,0 +1 @@ +目标数58WHILETRUEnint猜一个整数:LTn目标数猜小了!请继续。GTn目标数猜大了!请继续。恭喜,猜对了!BREAK{}X0U3XzlCX0FFX0U2X0EwXzg3X0U2Xzk1X0IwID0gNTgKd2hpbGUgVHJ1ZToKICAgIG4gPSBpbnQoaW5wdXQoJ+eMnOS4gOS4quaVtOaVsO+8micpKQogICAgaWYgbiA8IF9FN185Ql9BRV9FNl9BMF84N19FNl85NV9CMDoKICAgICAgICBwcmludCgn54yc5bCP5LqG77yB6K+357un57ut44CCJyxlbmQgPSIiKQogICAgZWxpZiBuID4gX0U3XzlCX0FFX0U2X0EwXzg3X0U2Xzk1X0IwOgogICAgICAgIHByaW50KCfnjJzlpKfkuobvvIHor7fnu6fnu63jgIInLGVuZCA9IiIpCiAgICBlbHNlOgogICAgICAgIHByaW50KCfmga3llpzvvIznjJzlr7nkuobvvIEnLGVuZCA9IiIpCiAgICAgICAgYnJlYWsK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/判断平年与闰年.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/判断平年与闰年.mix new file mode 100644 index 00000000..1340fff8 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/判断平年与闰年.mix @@ -0,0 +1 @@ +yearint请输入一个年份:ANDEQQUYU1year40NEQQUYU1year4100year这是闰年EQQUYU1year4000year这是闰年year这是平年{}eWVhciA9IGludChpbnB1dCgn6K+36L6T5YWl5LiA5Liq5bm05Lu977yaJykpCmlmIHllYXIgJSA0ID09IDAgYW5kIHllYXIgJSA0ICE9IDEwMDoKICAgIHByaW50KHllYXIsICfov5nmmK/pl7DlubQnKQplbGlmIHllYXIgJSA0MDAgPT0gMDoKICAgIHByaW50KHllYXIsICfov5nmmK/pl7DlubQnKQplbHNlOgogICAgcHJpbnQoeWVhciwgJ+i/meaYr+W5s+W5tCcpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/根据输入的气温给出提示.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/根据输入的气温给出提示.mix new file mode 100644 index 00000000..071e4455 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/根据输入的气温给出提示.mix @@ -0,0 +1 @@ +temperaturefloat请输入气温:LTtemperature15今天有点冷,要穿厚一些的衣服LTELTE15xtemperature30今天有点气候宜人,适合穿春秋装今天有点热,要穿薄一些的衣服并适当防晒{}dGVtcGVyYXR1cmUgPSBmbG9hdChpbnB1dCgn6K+36L6T5YWl5rCU5rip77yaJykpCmlmIHRlbXBlcmF0dXJlIDwgMTU6CiAgICBwcmludCgn5LuK5aSp5pyJ54K55Ya377yM6KaB56m/5Y6a5LiA5Lqb55qE6KGj5pyNJyxlbmQgPSIiKQplbGlmIDE1IDw9IHRlbXBlcmF0dXJlIDw9IDMwOgogICAgcHJpbnQoJ+S7iuWkqeacieeCueawlOWAmeWunOS6uu+8jOmAguWQiOepv+aYpeeni+ijhScsZW5kID0iIikKZWxzZToKICAgIHByaW50KCfku4rlpKnmnInngrnng63vvIzopoHnqb/oloTkuIDkupvnmoTooaPmnI3lubbpgILlvZPpmLLmmZInLGVuZCA9IiIpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/购买火车票.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/购买火车票.mix new file mode 100644 index 00000000..991bc382 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第12课/购买火车票.mix @@ -0,0 +1 @@ +nlint请输入乘车人的年龄:GTEnl14nl岁,请购买全价票LTELT6xnl14nl岁,请购买儿童优惠票nl岁,由持票成年人免费携带{}bmwgPSBpbnQoaW5wdXQoJ+ivt+i+k+WFpeS5mOi9puS6uueahOW5tOm+hO+8micpKQppZiBubCA+PSAxNDoKICAgIHByaW50KG5sLCAn5bKB77yM6K+36LSt5Lmw5YWo5Lu356WoJykKZWxpZiA2IDw9IG5sIDwgMTQ6CiAgICBwcmludChubCwgJ+Wyge+8jOivt+i0reS5sOWEv+erpeS8mOaDoOelqCcpCmVsc2U6CiAgICBwcmludChubCwgJ+Wyge+8jOeUseaMgeelqOaIkOW5tOS6uuWFjei0ueaQuuW4picpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/从1数到100.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/从1数到100.mix new file mode 100644 index 00000000..bad4b09a --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/从1数到100.mix @@ -0,0 +1 @@ +c1WHILETRUELTEc100HellocADDac1{}YyA9IDEKd2hpbGUgYyA8PSAxMDA6CiAgICBwcmludChjLGVuZCA9IiIpCiAgICBjICs9IDEK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/数数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/数数.mix new file mode 100644 index 00000000..fc45f64f --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/数数.mix @@ -0,0 +1 @@ +starti0trueiADD1i1GTEMINUS11start1end开始时间18029start开始时间18029end经历时间MINUS1end1start{}aW1wb3J0IHRpbWUKaW1wb3J0IGRhdGF0aW1lCgoKc3RhcnQgPSB0aW1lLnRpbWUoKQppID0gMAp3aGlsZSBUcnVlOgogICAgaSA9IGkgKyAxCiAgICBpZiAodGltZS50aW1lKCkgLSBzdGFydCA+PSAxKToKICAgICAgICBicmVhawplbmQgPSB0aW1lLnRpbWUoKQpwcmludCgn5byA5aeL5pe26Ze0JywgZGF0YXRpbWUuZGF0YXRpbWUuZnJvbXRpbWVzdGFtcChzdGFydCkpCnByaW50KCflvIDlp4vml7bpl7QnLCBkYXRhdGltZS5kYXRhdGltZS5mcm9tdGltZXN0YW1wKGVuZCkpCnByaW50KCfnu4/ljobml7bpl7QnLCBlbmQgLSBzdGFydCkK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/输出1-n的所有偶数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/输出1-n的所有偶数.mix new file mode 100644 index 00000000..9c1dd752 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/输出1-n的所有偶数.mix @@ -0,0 +1 @@ +nint请输入自然数n:c2WHILETRUELTEcnHellocADDac2{}biA9IGludChpbnB1dCgn6K+36L6T5YWl6Ieq54S25pWwbu+8micpKQpjID0gMgp3aGlsZSBjIDw9IG46CiAgICBwcmludChjLGVuZCA9IiIpCiAgICBjICs9IDIK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/输出1-n能被5整除的数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/输出1-n能被5整除的数.mix new file mode 100644 index 00000000..cd347ab7 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第13课/输出1-n能被5整除的数.mix @@ -0,0 +1 @@ +nint请输入自然数n:c1WHILETRUELTEcnEQQUYU1c50HellocADDac1{}biA9IGludChpbnB1dCgn6K+36L6T5YWl6Ieq54S25pWwbu+8micpKQpjID0gMQp3aGlsZSBjIDw9IG46CiAgICBpZiBjICUgNSA9PSAwOgogICAgICAgIHByaW50KGMsZW5kID0iIikKICAgIGMgKz0gMQo= \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/三位密码锁.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/三位密码锁.mix new file mode 100644 index 00000000..c73bd69b --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/三位密码锁.mix @@ -0,0 +1 @@ +0,1,2,30101i0,1,2,30101ji3j{}Zm9yIGkgaW4gcmFuZ2UoMCwgMTAsIDEpOgogICAgZm9yIGogaW4gcmFuZ2UoMCwgMTAsIDEpOgogICAgICAgIHByaW50KGksICczJywgaikK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/找到所有水仙花数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/找到所有水仙花数.mix new file mode 100644 index 00000000..69709dd0 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/找到所有水仙花数.mix @@ -0,0 +1 @@ +0,1,2,30101i0,1,2,30101j0,1,2,30101kEQADD1ADD1MULTIPLY1i1001MULTIPLY1j101kADD1ADD1POWER1i31POWER1j31POWER1k1i3j{}Zm9yIGkgaW4gcmFuZ2UoMCwgMTAsIDEpOgogICAgZm9yIGogaW4gcmFuZ2UoMCwgMTAsIDEpOgogICAgICAgIGZvciBrIGluIHJhbmdlKDAsIDEwLCAxKToKICAgICAgICAgICAgaWYgKGkgKiAxMDAgKyBqICogMTApICsgayA9PSAoaSAqKiAzICsgaiAqKiAzKSArIGsgKiogMToKICAgICAgICAgICAgICAgIHByaW50KGksICczJywgaikK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/破解时间估算.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/破解时间估算.mix new file mode 100644 index 00000000..0252f80c --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第15课/破解时间估算.mix @@ -0,0 +1 @@ +tint请输入密码每一位符号种类数:starti0WHILETRUELTMINUS11start1iADD1i1end本机用时:MINUS1end1start秒, 一共能数数inPOWER1t6密码的字符组合共nsecintDIVIDE1n1iminu4.8DIVIDE1sec602hour4.8DIVIDE1minu602用枚举法破解需要sec{}aW1wb3J0IHRpbWUKCgp0ID0gaW50KGlucHV0KCfor7fovpPlhaXlr4bnoIHmr4/kuIDkvY3nrKblj7fnp43nsbvmlbDvvJonKSkKc3RhcnQgPSB0aW1lLnRpbWUoKQppID0gMAp3aGlsZSB0aW1lLnRpbWUoKSAtIHN0YXJ0IDwgMToKICAgIGkgPSBpICsgMQplbmQgPSB0aW1lLnRpbWUoKQpwcmludCgn5pys5py655So5pe277yaJywgZW5kIC0gc3RhcnQsICfnp5IsIOS4gOWFseiDveaVsOaVsCcsIGksICfkuKonKQpuID0gdCAqKiA2CnByaW50KCflr4bnoIHnmoTlrZfnrKbnu4TlkIjlhbEnLCBuLCAn56eNJykKc2VjID0gaW50KChuIC8gaSkpCm1pbnUgPSByb3VuZChzZWMgLyA2MCwgMikKaG91ciA9IHJvdW5kKG1pbnUgLyA2MCwgMikKcHJpbnQoJ+eUqOaemuS4vuazleegtOino+mcgOimgScsIHNlYywgJ+enkicpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第16课/找出最大数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第16课/找出最大数.mix new file mode 100644 index 00000000..d5419d57 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第16课/找出最大数.mix @@ -0,0 +1 @@ +box24,91,42,108,35ccLENmylistboxamylistbox0i1WHILETRUELTiccGTmylistboxiaamylistboxiADDai1最大数为:a{}aW1wb3J0IG1hdGgKCgpib3ggPSBbMjQsOTEsNDIsMTA4LDM1XQpjYyA9IGxlbihib3gpCmEgPSBib3hbMF0KaSA9IDEKd2hpbGUgaSA8IGNjOgogICAgaWYgYm94W2ldID4gYToKICAgICAgICBhID0gYm94W2ldCiAgICBpICs9IDEKcHJpbnQoJ+acgOWkp+aVsOS4uu+8micsIGEpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第16课/找出最小数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第16课/找出最小数.mix new file mode 100644 index 00000000..a08fbfd0 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第16课/找出最小数.mix @@ -0,0 +1 @@ +box24,91,42,108,35ccLENmylistboxamylistbox0i1WHILETRUEGTiccGTmylistboxiaamylistboxiADDai1最小数为:a{}aW1wb3J0IG1hdGgKCgpib3ggPSBbMjQsOTEsNDIsMTA4LDM1XQpjYyA9IGxlbihib3gpCmEgPSBib3hbMF0KaSA9IDEKd2hpbGUgaSA+IGNjOgogICAgaWYgYm94W2ldID4gYToKICAgICAgICBhID0gYm94W2ldCiAgICBpICs9IDEKcHJpbnQoJ+acgOWwj+aVsOS4uu+8micsIGEpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第17课/从大到小的选择排序.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第17课/从大到小的选择排序.mix new file mode 100644 index 00000000..04aa281b --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第17课/从大到小的选择排序.mix @@ -0,0 +1 @@ +data64,25,12,22,11,90,88,77,55,33nLENmylistdatai0WHILETRUELTiMINUS1n1maxijADD1i1WHILETRUELTjnGTmylistdata0jmylistdata0maxmaxjjADD1j1NEQmaxiamylistdata0maxmylistdata0max0mylistdata0imylistdata0i0aiADD1i1排序后的数:data{}aW1wb3J0IG1hdGgKCgpkYXRhID0gWzY0LDI1LDEyLDIyLDExLDkwLDg4LDc3LDU1LDMzXQpuID0gbGVuKGRhdGEpCmkgPSAwCndoaWxlIGkgPCBuIC0gMToKICAgIG1heDIgPSBpCiAgICBqID0gaSArIDEKICAgIHdoaWxlIGogPCBuOgogICAgICAgIGlmIGRhdGFbal0gPiBkYXRhW21heDJdOgogICAgICAgICAgICBtYXgyID0gagogICAgICAgIGogPSBqICsgMQogICAgaWYgbWF4MiAhPSBpOgogICAgICAgIGEgPSBkYXRhW21heDJdCiAgICAgICAgZGF0YVttYXgyXSA9IGRhdGFbaV0KICAgICAgICBkYXRhW2ldID0gYQogICAgaSA9IGkgKyAxCnByaW50KCfmjpLluo/lkI7nmoTmlbDvvJonLCBkYXRhKQo= \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第17课/排序.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第17课/排序.mix new file mode 100644 index 00000000..ed2ecc34 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第17课/排序.mix @@ -0,0 +1 @@ +data64,25,12,22,11,90,88,77,55,33dataNUMERIC1dataHellodata{}ZnJvbSBtaXhweSBpbXBvcnQgbGlzdHNfc29ydAoKCmRhdGEgPSBbNjQsMjUsMTIsMjIsMTEsOTAsODgsNzcsNTUsMzNdCmRhdGEgPSBsaXN0c19zb3J0KGRhdGEsICJOVU1FUklDIiwgRmFsc2UpCnByaW50KGRhdGEsZW5kID0iIikK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第19课/冒泡排序(for循环).mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第19课/冒泡排序(for循环).mix new file mode 100644 index 00000000..17c1c6ff --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第19课/冒泡排序(for循环).mix @@ -0,0 +1 @@ +data62,3,25,129,311,93,88,156,72,29,336,858,168,108,27排序前数据:datanLENmylistdatai0WHILETRUELTiMINUS1n1j0WHILETRUELTjMINUS1MINUS1n1i1GTmylistdata0jmylistdata0ADD1j1amylistdata0jmylistdata0j0mylistdata0ADD1j1mylistdata0ADD1j10ajADD1j1ADD1i1轮遍历:dataiADD1i1排序后数据:data{}aW1wb3J0IG1hdGgKCgpkYXRhID0gWzYyLDMsMjUsMTI5LDMxMSw5Myw4OCwxNTYsNzIsMjksMzM2LDg1OCwxNjgsMTA4LDI3XQpwcmludCgn5o6S5bqP5YmN5pWw5o2u77yaJywgZGF0YSkKbiA9IGxlbihkYXRhKQppID0gMAp3aGlsZSBpIDwgbiAtIDE6CiAgICBqID0gMAogICAgd2hpbGUgaiA8IChuIC0gaSkgLSAxOgogICAgICAgIGlmIGRhdGFbal0gPiBkYXRhWyhqICsgMSldOgogICAgICAgICAgICBhID0gZGF0YVtqXQogICAgICAgICAgICBkYXRhW2pdID0gZGF0YVsoaiArIDEpXQogICAgICAgICAgICBkYXRhWyhqICsgMSldID0gYQogICAgICAgIGogPSBqICsgMQogICAgICAgIHByaW50KCfnrKwnLCBpICsgMSwgJ+i9rumBjeWOhu+8micsIGRhdGEpCiAgICBpID0gaSArIDEKcHJpbnQoJ+aOkuW6j+WQjuaVsOaNru+8micsIGRhdGEpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第19课/冒泡排序.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第19课/冒泡排序.mix new file mode 100644 index 00000000..e72dc37c --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第19课/冒泡排序.mix @@ -0,0 +1 @@ +xmmpxnLENmylistlb0,1,2,305n1i0,1,2,305MINUS1MINUS1n1i11jjGTmylistlb0jmylistlb0ADD1j1lsmylistlb0jmylistlb0j0mylistlb0ADD1j1mylistlb0ADD1j10lsADD1i1轮遍历:lblblb67,156,72,99,336,168,108,27排序前数据:lbpxlblb排序后数据:pxlb{}aW1wb3J0IG1hdGgKCmRlZiBtbXB4KHgpOgogICAgbiA9IGxlbihsYikKICAgIGZvciBpIGluIHJhbmdlKDAsIG4sIDEpOgogICAgICAgIGZvciBqIGluIHJhbmdlKDAsIChuIC0gaSkgLSAxLCAxKToKICAgICAgICAgICAgaWYgbGJbal0gPiBsYlsoaiArIDEpXToKICAgICAgICAgICAgICAgIGxzID0gbGJbal0KICAgICAgICAgICAgICAgIGxiW2pdID0gbGJbKGogKyAxKV0KICAgICAgICAgICAgICAgIGxiWyhqICsgMSldID0gbHMKICAgICAgICAgICAgcHJpbnQoJ+esrCcsIGkgKyAxLCAn6L2u6YGN5Y6G77yaJywgbGIpCiAgICByZXR1cm4gbGIKCgoKbGIgPSBbNjcsMTU2LDcyLDk5LDMzNiwxNjgsMTA4LDI3XQpwcmludCgn5o6S5bqP5YmN5pWw5o2u77yaJywgbGIpCnB4bGIgPSBtbXB4KGxiKQpwcmludCgn5o6S5bqP5ZCO5pWw5o2u77yaJywgcHhsYikK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第21课.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第21课.mix new file mode 100644 index 00000000..4fc0054c --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第21课.mix @@ -0,0 +1 @@ +a35b0WHILETRUEcADD1MULTIPLY1a21MULTIPLY1b4EQc94鸡的数量:a兔的数量:bBREAKaMINUS1a1bADD1b1{}YSA9IDM1CmIgPSAwCndoaWxlIFRydWU6CiAgICBjID0gYSAqIDIgKyBiICogNAogICAgaWYgYyA9PSA5NDoKICAgICAgICBwcmludCgn6bih55qE5pWw6YeP77yaJywgYSkKICAgICAgICBwcmludCgn5YWU55qE5pWw6YeP77yaJywgYikKICAgICAgICBicmVhawogICAgZWxzZToKICAgICAgICBhID0gYSAtIDEKICAgICAgICBiID0gYiArIDEK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第23课.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第23课.mix new file mode 100644 index 00000000..d2893673 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第23课.mix @@ -0,0 +1 @@ +F0,1,1n3WHILETRUELTEn12appendF0F0n0ADD1F0MINUS1n11F0MINUS1n2nADD1n1第12个月的兔子数量是:F12{}RiA9IFswLDEsMV0KbiA9IDMKd2hpbGUgbiA8PSAxMjoKICAgIEYuYXBwZW5kKDApCiAgICBGW25dID0gRlsobiAtIDEpXSArIEZbKG4gLSAyKV0KICAgIG4gPSBuICsgMQpwcmludCgn56ysMTLkuKrmnIjnmoTlhZTlrZDmlbDph4/mmK/vvJonLCBGWzEyXSkK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第3课.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第3课.mix new file mode 100644 index 00000000..ef0fc70d --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第3课.mix @@ -0,0 +1 @@ +xynabcmoveHelloHelloxMixly-->Mixlyyint输入汉诺塔层数:ABChanoiEQn1acMINUS1n1acbacMINUS1n1bac{}ZGVmIG1vdmUoeCwgeSk6CiAgICBwcmludCgoeCArICgnLS0+JyArIHkpKSkKCmRlZiBoYW5vaShuLCBhLCBiLCBjKToKICAgIGlmIG4gPT0gMToKICAgICAgICBtb3ZlKGEsIGMpCiAgICBlbHNlOgogICAgICAgIGhhbm9pKG4gLSAxLCBhLCBjLCBiKQogICAgICAgIG1vdmUoYSwgYykKICAgICAgICBoYW5vaShuIC0gMSwgYiwgYSwgYykKCgoKaGFub2koaW50KGlucHV0KCfovpPlhaXmsYnor7rloZTlsYLmlbDvvJonKSksICdBJywgJ0InLCAnQycpCg== \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/买水果算价格.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/买水果算价格.mix new file mode 100644 index 00000000..6977d0b0 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/买水果算价格.mix @@ -0,0 +1 @@ +afloat输入苹果的质量:bfloat输入香蕉的质量:cMULTIPLYa8.5dMULTIPLYb12.5eADDcd总金额:e{}YSA9IGZsb2F0KGlucHV0KCfovpPlhaXoi7nmnpznmoTotKjph4/vvJonKSkKYiA9IGZsb2F0KGlucHV0KCfovpPlhaXpppnolYnnmoTotKjph4/vvJonKSkKYyA9IGEgKiA4LjUKZCA9IGIgKiAxMi41CmUgPSBjICsgZApwcmludCgn5oC76YeR6aKd77yaJywgZSkK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/公园购票.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/公园购票.mix new file mode 100644 index 00000000..f5924bea --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/公园购票.mix @@ -0,0 +1 @@ +heightint请输入身高(厘米):LTheight120身高为height厘米,可以购买半价票,5元身高为height厘米,可以购买全价票,10元{}aGVpZ2h0ID0gaW50KGlucHV0KCfor7fovpPlhaXouqvpq5jvvIjljpjnsbPvvInvvJonKSkKaWYgaGVpZ2h0IDwgMTIwOgogICAgcHJpbnQoJ+i6q+mrmOS4uicsIGhlaWdodCwgJ+WOmOexs++8jOWPr+S7pei0reS5sOWNiuS7t+elqO+8jDXlhYMnKQplbHNlOgogICAgcHJpbnQoJ+i6q+mrmOS4uicsIGhlaWdodCwgJ+WOmOexs++8jOWPr+S7pei0reS5sOWFqOS7t+elqO+8jDEw5YWDJykK \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/比较两个数并输出较小数.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/比较两个数并输出较小数.mix new file mode 100644 index 00000000..37ed7626 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/比较两个数并输出较小数.mix @@ -0,0 +1 @@ +aint输入自然数a:bint输入自然数b:LTEabcacb两个数中的最小数是:c{}YSA9IGludChpbnB1dCgn6L6T5YWl6Ieq54S25pWwYTonKSkKYiA9IGludChpbnB1dCgn6L6T5YWl6Ieq54S25pWwYjonKSkKaWYgYSA8PSBiOgogICAgYyA9IGEKZWxzZToKICAgIGMgPSBiCnByaW50KCfkuKTkuKrmlbDkuK3nmoTmnIDlsI/mlbDmmK/vvJonLCBjKQo= \ No newline at end of file diff --git a/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/温度转换.mix b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/温度转换.mix new file mode 100644 index 00000000..e4aa4d74 --- /dev/null +++ b/boards/default/python_pyodide/examples/教学指南米思齐修订版/六年级/第8课/温度转换.mix @@ -0,0 +1 @@ +华氏温度float请输入一个华氏温度的值:摄氏温度DIVIDE1MULTIPLY58.5MINUS1华氏温度329对应的摄氏温度为:摄氏温度{}5Y2O5rCP5rip5bqmID0gZmxvYXQoaW5wdXQoJ+ivt+i+k+WFpeS4gOS4quWNjuawj+a4qeW6pueahOWAvO+8micpKQrmkYTmsI/muKnluqYgPSAoNSAqICjljY7msI/muKnluqYgLSAzMikpIC8gOQpwcmludCgn5a+55bqU55qE5pGE5rCP5rip5bqm5Li677yaJywg5pGE5rCP5rip5bqmKQo= \ No newline at end of file diff --git a/boards/default/python_pyodide/index.xml b/boards/default/python_pyodide/index.xml index 1d5f6ed6..53a88f31 100644 --- a/boards/default/python_pyodide/index.xml +++ b/boards/default/python_pyodide/index.xml @@ -1 +1 @@ -promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.8211001010100011005011001100020x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsetina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf'a','b','c','d'x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file +promptHelloHelloHello,HelloMixly2100,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!101802990x151100a10.998124.821100101010001100501100110002110x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyHello,mixly50*Hello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')dirmylist1,2,3,4,5mylist0mylist02mylist00mylist0101mylistmylist2mylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmylist0mytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydictresults0locationnames11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xreadme.txtffilename.txtfffilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtfilename.txtpathff0reponsehttps://mixio.mixly.cnreponsehttps://mixio.mixly.cnreponsetina20tina90tina0tina2020tina50tinatinatinatinatinatina5tinatina225tina5#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000tina#ff0000#FF0000#ff0000#FF0000tina#FF0000tina#FF0000tina#FF0000tina50tina50360tinascreenturtle.epstina10tinaMixly!tinaMixly!Arial8NUMInput a number:100100Input your nameWhat's your name?df1data.csvdfdfarrayNonearrayNonearrayarrayarraydfvalueFalsedfdf'a','b','c','d'x1.55.50.511array1array2myMatrixmyMatrixmyMatrixarraymatrix1matrix2array1array20,1,2,3xmyArraymyArraymyDimensionsmyArraymyArraymyFeatures0imagetemplatesmyArray0myArray0myArraymylistmylist0,1,2,3mydictmydict'a','b','c','d'mydict'ABCD''a','b','c','d'ser1ser10df1tagdf1tagdf11df1GTcolumndf1tag1df1tagmindf1columndf1tagser1ser11,2,3,45,6,7,81,2,3,45,6,7,820,20,20,20tag1,2,3,45,6,7,8tag1,2,3,45,6,7,80.5tag0.25,0.35,0.1,0.3'a','b','c','d'0.2,0,0,011,21,31,41,51,61,71,81,910,20,40,60,80,100211Titleaxis1,2,3,41,2,3,415581.pngimg1.jpgfacehaarcascade_frontalface_default.xmlfaceRectsimgface1.15faceRectsimgface1.15100100200200Mixlyimg2.jpgimg0img001001003imgMixly02004310020220221001001010.00.010021.0-10.0,10.0TRUEirisiris_Xiris_y0.3modelTRUEFALSEmodel1.0TRUEFALSE300modelmodel100pca2pcaXmodel5modelmodel8300modelXmodelX_trainy_trainmodelX_testy_testmodelX_testmodelmodelmodelD:/mixly/test.pkl \ No newline at end of file diff --git a/boards/default/python_pyodide/main.bundle.js b/boards/default/python_pyodide/main.bundle.js index 93745271..1110c6f6 100644 --- a/boards/default/python_pyodide/main.bundle.js +++ b/boards/default/python_pyodide/main.bundle.js @@ -8,7 +8,7 @@ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ e.read=function(t,e,n,i,s){var o,r,a=8*s-i-1,l=(1<>1,p=-7,_=n?s-1:0,d=n?-1:1,h=t[e+_];for(_+=d,o=h&(1<<-p)-1,h>>=-p,p+=a;p>0;o=256*o+t[e+_],_+=d,p-=8);for(r=o&(1<<-p)-1,o>>=-p,p+=i;p>0;r=256*r+t[e+_],_+=d,p-=8);if(0===o)o=1-u;else{if(o===l)return r?NaN:1/0*(h?-1:1);r+=Math.pow(2,i),o-=u}return(h?-1:1)*r*Math.pow(2,o-i)},e.write=function(t,e,n,i,s,o){var r,a,l,u=8*o-s-1,p=(1<>1,d=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,h=i?0:o-1,c=i?1:-1,T=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=p):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),(e+=r+_>=1?d/l:d*Math.pow(2,1-_))*l>=2&&(r++,l/=2),r+_>=p?(a=0,r=p):r+_>=1?(a=(e*l-1)*Math.pow(2,s),r+=_):(a=e*Math.pow(2,_-1)*Math.pow(2,s),r=0));s>=8;t[n+h]=255&a,h+=c,a/=256,s-=8);for(r=r<0;t[n+h]=255&r,h+=c,r/=256,u-=8);t[n+h-c]|=128*T}},5606:t=>{var e,n,i=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(e===setTimeout)return setTimeout(t,0);if((e===s||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:s}catch(t){e=s}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(t){n=o}}();var a,l=[],u=!1,p=-1;function _(){u&&a&&(u=!1,a.length?l=a.concat(l):p=-1,l.length&&d())}function d(){if(!u){var t=r(_);u=!0;for(var e=l.length;e;){for(a=l,l=[];++p1)for(var n=1;n{"use strict";n.d(e,{D:()=>i});var i=function(){function t(t){var e=this;void 0===t&&(t=!1),this.ignoreMultipleSettles=t,this.isSettled=!1,this.promise=new Promise((function(t,n){e.resolveCallback=t,e.rejectCallback=n}))}return t.prototype.markAsSettled=function(){var t=this.isSettled;if(t&&!this.ignoreMultipleSettles)throw new Error("PromiseDelegate is already settled!");return this.isSettled=!0,!t},Object.defineProperty(t.prototype,"settled",{get:function(){return this.isSettled},enumerable:!1,configurable:!0}),t.prototype.resolve=function(t){this.markAsSettled()&&this.resolveCallback(t)},t.prototype.reject=function(t){this.markAsSettled()&&this.rejectCallback(t)},t}()},2861:(t,e,n)=>{ /*! safe-buffer. MIT License. Feross Aboukhadijeh */ -var i=n(8287),s=i.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function r(t,e,n){return s(t,e,n)}s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?t.exports=i:(o(i,e),e.Buffer=r),r.prototype=Object.create(s.prototype),o(s,r),r.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return s(t,e,n)},r.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var i=s(t);return void 0!==e?"string"==typeof n?i.fill(e,n):i.fill(e):i.fill(0),i},r.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return s(t)},r.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},6944:t=>{"use strict";t.exports=path}},__webpack_module_cache__={},leafPrototypes,getProto,inProgress,dataWebpackPrefix;function __webpack_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var n=__webpack_module_cache__[t]={id:t,loaded:!1,exports:{}};return __webpack_modules__[t].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return __webpack_require__.d(e,{a:e}),e},getProto=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,__webpack_require__.t=function(t,e){if(1&e&&(t=this(t)),8&e)return t;if("object"==typeof t&&t){if(4&e&&t.__esModule)return t;if(16&e&&"function"==typeof t.then)return t}var n=Object.create(null);__webpack_require__.r(n);var i={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var s=2&e&&t;"object"==typeof s&&!~leafPrototypes.indexOf(s);s=getProto(s))Object.getOwnPropertyNames(s).forEach((e=>i[e]=()=>t[e]));return i.default=()=>t,__webpack_require__.d(n,i),n},__webpack_require__.d=(t,e)=>{for(var n in e)__webpack_require__.o(e,n)&&!__webpack_require__.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},__webpack_require__.f={},__webpack_require__.e=t=>Promise.all(Object.keys(__webpack_require__.f).reduce(((e,n)=>(__webpack_require__.f[n](t,e),e)),[])),__webpack_require__.u=t=>t+".bundle.js",__webpack_require__.miniCssF=t=>"styles/"+t+".45554be0.css",__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),inProgress={},dataWebpackPrefix="@mixly/python-pyodide:",__webpack_require__.l=(t,e,n,i)=>{if(inProgress[t])inProgress[t].push(e);else{var s,o;if(void 0!==n)for(var r=document.getElementsByTagName("script"),a=0;a{s.onerror=s.onload=null,clearTimeout(p);var i=inProgress[t];if(delete inProgress[t],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((t=>t(n))),e)return e(n)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),o&&document.head.appendChild(s)}},__webpack_require__.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{var t;__webpack_require__.g.importScripts&&(t=__webpack_require__.g.location+"");var e=__webpack_require__.g.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var i=n.length-1;i>-1&&(!t||!/^http(s?):/.test(t));)t=n[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=t})(),(()=>{if("undefined"!=typeof document){var t=t=>new Promise(((e,n)=>{var i=__webpack_require__.miniCssF(t),s=__webpack_require__.p+i;if(((t,e)=>{for(var n=document.getElementsByTagName("link"),i=0;i{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",__webpack_require__.nc&&(o.nonce=__webpack_require__.nc),o.onerror=o.onload=n=>{if(o.onerror=o.onload=null,"load"===n.type)i();else{var r=n&&n.type,a=n&&n.target&&n.target.href||e,l=new Error("Loading CSS chunk "+t+" failed.\n("+r+": "+a+")");l.name="ChunkLoadError",l.code="CSS_CHUNK_LOAD_FAILED",l.type=r,l.request=a,o.parentNode&&o.parentNode.removeChild(o),s(l)}},o.href=e,n?n.parentNode.insertBefore(o,n.nextSibling):document.head.appendChild(o)})(t,s,null,e,n)})),e={792:0};__webpack_require__.f.miniCss=(n,i)=>{e[n]?i.push(e[n]):0!==e[n]&&{317:1}[n]&&i.push(e[n]=t(n).then((()=>{e[n]=0}),(t=>{throw delete e[n],t})))}}})(),(()=>{var t={792:0};__webpack_require__.f.j=(e,n)=>{var i=__webpack_require__.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var s=new Promise(((n,s)=>i=t[e]=[n,s]));n.push(i[2]=s);var o=__webpack_require__.p+__webpack_require__.u(e),r=new Error;__webpack_require__.l(o,(n=>{if(__webpack_require__.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var s=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;r.message="Loading chunk "+e+" failed.\n("+s+": "+o+")",r.name="ChunkLoadError",r.type=s,r.request=o,i[1](r)}}),"chunk-"+e,e)}};var e=(e,n)=>{var i,s,[o,r,a]=n,l=0;if(o.some((e=>0!==t[e]))){for(i in r)__webpack_require__.o(r,i)&&(__webpack_require__.m[i]=r[i]);if(a)a(__webpack_require__)}for(e&&e(n);l{"use strict";var t={};__webpack_require__.r(t),__webpack_require__.d(t,{controls_type:()=>It,controls_typeLists:()=>mt,lists_zip:()=>Et,lists_zip_container:()=>ft,lists_zip_item:()=>gt,unpack_iterable_object:()=>Ot,variables_change:()=>ct,variables_get:()=>dt,variables_global:()=>Tt,variables_set:()=>ht});var e={};__webpack_require__.r(e),__webpack_require__.d(e,{base_setup:()=>At,controls_delay:()=>St,controls_end_program:()=>Ct,controls_except:()=>xt,controls_finally:()=>Ut,controls_flow_statements:()=>vt,controls_for:()=>wt,controls_forEach:()=>Dt,controls_for_range:()=>Ft,controls_if:()=>Lt,controls_if_else:()=>Vt,controls_if_elseif:()=>kt,controls_if_if:()=>Pt,controls_lambda:()=>Xt,controls_main:()=>Rt,controls_pass:()=>Gt,controls_range:()=>yt,controls_repeat_ext:()=>Bt,controls_thread:()=>Ht,controls_try:()=>Yt,controls_try_finally:()=>bt,controls_whileUntil:()=>Nt,datetime_fromtimestamp:()=>zt,do_while:()=>Wt,garbage_collection:()=>jt,gene_unique_identifier:()=>Qt,get_mem_alloc:()=>Kt,get_mem_free:()=>qt,get_unique_identifier:()=>$t});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{base_map:()=>Ee,generate_cartesian_product:()=>ge,math_arithmetic:()=>ne,math_bit:()=>se,math_constant:()=>te,math_constant_mp:()=>ee,math_constrain:()=>_e,math_dec:()=>re,math_indexer_number:()=>he,math_map:()=>de,math_max_min:()=>le,math_number:()=>Zt,math_number_base_conversion:()=>ue,math_random:()=>pe,math_random_seed:()=>ce,math_round:()=>Te,math_selfcalcu:()=>ie,math_to_int:()=>ae,math_trig:()=>oe,text_to_number:()=>Ie,text_to_number_skulpt:()=>me,turn_to_int:()=>fe});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{ascii_to_char:()=>Ce,char_to_ascii:()=>Le,number_to_text:()=>ye,os_system:()=>Ze,text:()=>Me,text_capital:()=>Ve,text_center:()=>Ye,text_char:()=>Ae,text_char_at:()=>be,text_char_at2:()=>Ne,text_char_at3:()=>$e,text_compareTo:()=>qe,text_compare_to:()=>ke,text_create_with_container:()=>We,text_create_with_item:()=>je,text_encode:()=>Qe,text_equals_starts_ends:()=>Pe,text_eval:()=>Je,text_find:()=>xe,text_format:()=>He,text_format_noreturn:()=>ze,text_join:()=>Se,text_join_seq:()=>Ue,text_length:()=>De,text_random_char:()=>ve,text_replace:()=>Be,text_split:()=>Xe,text_strip:()=>Ge,text_substring:()=>Fe,text_substring2:()=>we,text_substring3:()=>Ke,text_textarea:()=>Re});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{ENUMERATE:()=>kn,content_in_lists:()=>Yn,enumerate:()=>Vn,list_many_input:()=>Rn,list_tolist:()=>Ln,list_tolist2:()=>Pn,list_trig:()=>gn,lists_2d_get_col_row_data:()=>on,lists_2d_get_data_with_col_row:()=>sn,lists_append_extend:()=>_n,lists_change_to:()=>Mn,lists_change_to_general:()=>Sn,lists_clear:()=>In,lists_create_with:()=>rn,lists_create_with2:()=>yn,lists_create_with_container:()=>ln,lists_create_with_item:()=>un,lists_create_with_noreturn:()=>An,lists_create_with_text:()=>an,lists_create_with_text2:()=>Dn,lists_del_general:()=>Cn,lists_find:()=>fn,lists_getIndex3:()=>Nn,lists_getSublist3:()=>bn,lists_get_index:()=>en,lists_get_random_item:()=>dn,lists_get_random_sublist:()=>hn,lists_get_sublist:()=>nn,lists_insert_value:()=>cn,lists_insert_value2:()=>wn,lists_pop:()=>En,lists_remove_at:()=>mn,lists_remove_at2:()=>Fn,lists_reverse:()=>Tn,lists_setIndex3:()=>vn,lists_set_index:()=>pn,lists_sort:()=>On});var o={};__webpack_require__.r(o),__webpack_require__.d(o,{dicts_add_change_del:()=>ti,dicts_add_or_change:()=>jn,dicts_clear:()=>$n,dicts_create_with:()=>Un,dicts_create_with_container:()=>Bn,dicts_create_with_item:()=>Xn,dicts_create_with_noreturn:()=>ii,dicts_deldict:()=>Zn,dicts_delete:()=>Kn,dicts_get:()=>Hn,dicts_get_default:()=>Wn,dicts_items:()=>zn,dicts_keys:()=>Gn,dicts_length:()=>Jn,dicts_pop:()=>ei,dicts_setdefault:()=>ni,dicts_to_json:()=>oi,dicts_to_json2:()=>li,dicts_to_to:()=>ai,dicts_todict:()=>si,dicts_update:()=>qn,dicts_values:()=>Qn,json_to_dicts:()=>ri});var r={};__webpack_require__.r(r),__webpack_require__.d(r,{logic_boolean:()=>ci,logic_compare:()=>pi,logic_compare_continous:()=>_i,logic_is:()=>Ei,logic_is_in:()=>mi,logic_negate:()=>hi,logic_null:()=>Ti,logic_operation:()=>di,logic_tobool:()=>fi,logic_true_or_false:()=>Ii});var a={};__webpack_require__.r(a),__webpack_require__.d(a,{sdcard_mount:()=>Xi,sdcard_use_spi_init:()=>Bi,storage_can_write_ornot:()=>yi,storage_change_dir:()=>xi,storage_close_file:()=>Ni,storage_delete_file:()=>vi,storage_file_seek:()=>Pi,storage_file_tell:()=>Fi,storage_file_write:()=>Ai,storage_fileopen:()=>Oi,storage_fileopen_new:()=>Mi,storage_fileopen_new_encoding:()=>Ri,storage_get_a_line:()=>Li,storage_get_contents:()=>Ci,storage_get_contents_without_para:()=>Si,storage_get_current_dir:()=>ki,storage_get_file_size:()=>wi,storage_get_filename:()=>Di,storage_is_file:()=>Ui,storage_list_all_files:()=>bi,storage_make_dir:()=>Vi,storage_open_file_with_os:()=>gi,storage_rename:()=>Yi});var l={};__webpack_require__.r(l),__webpack_require__.d(l,{procedures_callnoreturn:()=>Ki,procedures_callreturn:()=>qi,procedures_defnoreturn:()=>Gi,procedures_defreturn:()=>Hi,procedures_ifreturn:()=>$i,procedures_mutatorarg:()=>ji,procedures_mutatorcontainer:()=>Wi,procedures_return:()=>zi});var u={};__webpack_require__.r(u),__webpack_require__.d(u,{tuple_change_to:()=>ls,tuple_create_with:()=>Ji,tuple_create_with_container:()=>Zi,tuple_create_with_item:()=>ts,tuple_create_with_noreturn:()=>ds,tuple_create_with_text2:()=>es,tuple_create_with_text_return:()=>ns,tuple_del:()=>os,tuple_find:()=>us,tuple_getIndex:()=>is,tuple_getSublist:()=>_s,tuple_get_random_item:()=>cs,tuple_get_sublist:()=>hs,tuple_input:()=>Is,tuple_join:()=>rs,tuple_length:()=>ss,tuple_max:()=>as,tuple_totuple:()=>Ts,tuple_trig:()=>ps});var p={};__webpack_require__.r(p),__webpack_require__.d(p,{set_add_discard:()=>Cs,set_clear:()=>Rs,set_create_with:()=>Es,set_create_with_container:()=>fs,set_create_with_item:()=>gs,set_create_with_text_return:()=>Ds,set_length:()=>Os,set_operate:()=>As,set_operate_update:()=>Ss,set_pop:()=>Ms,set_sub:()=>Ls,set_toset:()=>Ns,set_update:()=>ys});var _={};__webpack_require__.r(_),__webpack_require__.d(_,{html_content:()=>Ps,html_content_more:()=>ks,html_document:()=>vs,html_form:()=>Ys,html_head_body:()=>Fs,html_style:()=>Vs,html_style_color:()=>Us,html_style_content:()=>xs,html_text:()=>Bs,html_title:()=>ws});var d={};__webpack_require__.r(d),__webpack_require__.d(d,{attribute_access:()=>eo,function_call:()=>Js,function_call_container:()=>Zs,function_call_item:()=>to,raw_block:()=>Hs,raw_empty:()=>js,raw_expression:()=>Ws,raw_table:()=>Gs,text_comment:()=>Ks,text_print_multiple:()=>$s,text_print_multiple_container:()=>zs,text_print_multiple_item:()=>Qs,type_check:()=>qs});var h={};__webpack_require__.r(h),__webpack_require__.d(h,{controls_type:()=>ro,controls_typeLists:()=>ao,lists_zip:()=>lo,unpack_iterable_object:()=>uo,variables_change:()=>so,variables_get:()=>no,variables_global:()=>oo,variables_set:()=>io});var c={};__webpack_require__.r(c),__webpack_require__.d(c,{Panic_with_status_code:()=>go,base_setup:()=>_o,controls_delay:()=>fo,controls_flow_statements:()=>Eo,controls_for:()=>To,controls_forEach:()=>So,controls_for_range:()=>Io,controls_if:()=>ho,controls_interrupts:()=>Ro,controls_lambda:()=>Lo,controls_main:()=>po,controls_millis:()=>Oo,controls_nointerrupts:()=>Ao,controls_pass:()=>Do,controls_range:()=>Co,controls_repeat:()=>Vo,controls_repeat_ext:()=>vo,controls_thread:()=>No,controls_try_finally:()=>co,controls_whileUntil:()=>mo,datetime_fromtimestamp:()=>Yo,do_while:()=>bo,garbage_collection:()=>wo,gene_unique_identifier:()=>xo,get_mem_alloc:()=>Fo,get_mem_free:()=>Po,get_unique_identifier:()=>ko,reset:()=>Mo,time_sleep:()=>yo});var T={};__webpack_require__.r(T),__webpack_require__.d(T,{base_map:()=>rr,generate_cartesian_product:()=>lr,math_arithmetic:()=>Ho,math_bit:()=>Go,math_constant:()=>Bo,math_constant_mp:()=>Xo,math_constrain:()=>Zo,math_dec:()=>qo,math_indexer_number:()=>nr,math_map:()=>Jo,math_max_min:()=>zo,math_number:()=>Uo,math_number_base_conversion:()=>tr,math_random:()=>Qo,math_random_seed:()=>er,math_round:()=>ir,math_selfcalcu:()=>Wo,math_single:()=>jo,math_to_int:()=>$o,math_trig:()=>Ko,text_to_number:()=>sr,text_to_number_skulpt:()=>or,turn_to_int:()=>ar});var I={};__webpack_require__.r(I),__webpack_require__.d(I,{ascii_to_char:()=>hr,char_to_ascii:()=>cr,number_to_text:()=>Tr,os_system:()=>Yr,text:()=>ur,text_capital:()=>Ar,text_center:()=>Sr,text_char:()=>_r,text_char_at:()=>Er,text_char_at2:()=>mr,text_char_at3:()=>Pr,text_compareTo:()=>Fr,text_compare_to:()=>Or,text_encode:()=>kr,text_equals_starts_ends:()=>gr,text_eval:()=>Vr,text_find:()=>Cr,text_format:()=>br,text_format_noreturn:()=>vr,text_join:()=>dr,text_join_seq:()=>Lr,text_length:()=>Ir,text_random_char:()=>fr,text_replace:()=>yr,text_split:()=>Dr,text_strip:()=>Nr,text_substring:()=>Rr,text_substring2:()=>Mr,text_substring3:()=>wr,text_textarea:()=>pr});var m={};__webpack_require__.r(m),__webpack_require__.d(m,{content_in_lists:()=>Ea,enumerate:()=>ma,list_many_input:()=>sa,list_tolist:()=>Ta,list_tolist2:()=>Ia,list_trig:()=>ea,lists_2d_get_col_row_data:()=>Br,lists_2d_get_data_with_col_row:()=>Ur,lists_append_extend:()=>jr,lists_change_to:()=>ia,lists_change_to_general:()=>ra,lists_clear:()=>Qr,lists_create_with:()=>Xr,lists_create_with2:()=>la,lists_create_with_noreturn:()=>oa,lists_create_with_text:()=>Gr,lists_create_with_text2:()=>ua,lists_del_general:()=>aa,lists_find:()=>Jr,lists_getIndex3:()=>pa,lists_getSublist3:()=>_a,lists_get_index:()=>Hr,lists_get_random_item:()=>Kr,lists_get_random_sublist:()=>qr,lists_get_sublist:()=>xr,lists_insert_value:()=>$r,lists_insert_value2:()=>ha,lists_pop:()=>ta,lists_remove_at:()=>Zr,lists_remove_at2:()=>ca,lists_reverse:()=>zr,lists_setIndex3:()=>da,lists_set_index:()=>Wr,lists_sort:()=>na});var E={};__webpack_require__.r(E),__webpack_require__.d(E,{dicts_add_change_del:()=>ba,dicts_add_or_change:()=>Ra,dicts_clear:()=>Ca,dicts_create_with:()=>fa,dicts_create_with_noreturn:()=>Fa,dicts_deldict:()=>Na,dicts_delete:()=>Aa,dicts_get:()=>Oa,dicts_get_default:()=>Ma,dicts_items:()=>La,dicts_keys:()=>ga,dicts_length:()=>Da,dicts_pop:()=>va,dicts_setdefault:()=>wa,dicts_to_json:()=>ka,dicts_to_json2:()=>xa,dicts_to_to:()=>Ya,dicts_todict:()=>Pa,dicts_update:()=>Sa,dicts_values:()=>ya,json_to_dicts:()=>Va});var f={};__webpack_require__.r(f),__webpack_require__.d(f,{logic_boolean:()=>Ha,logic_compare:()=>Ua,logic_compare_continous:()=>Ba,logic_is:()=>qa,logic_is_in:()=>Ka,logic_negate:()=>Ga,logic_null:()=>Wa,logic_operation:()=>Xa,logic_tobool:()=>$a,logic_true_or_false:()=>ja});var g={};__webpack_require__.r(g),__webpack_require__.d(g,{sdcard_mount:()=>El,sdcard_use_spi_init:()=>ml,storage_can_write_ornot:()=>sl,storage_change_dir:()=>dl,storage_close_file:()=>rl,storage_delete_file:()=>ll,storage_file_seek:()=>_l,storage_file_tell:()=>pl,storage_file_write:()=>tl,storage_fileopen:()=>Qa,storage_fileopen_new:()=>Ja,storage_fileopen_new_encoding:()=>Za,storage_get_a_line:()=>il,storage_get_contents:()=>nl,storage_get_contents_without_para:()=>el,storage_get_current_dir:()=>hl,storage_get_file_size:()=>ul,storage_get_filename:()=>ol,storage_is_file:()=>Il,storage_list_all_files:()=>al,storage_make_dir:()=>cl,storage_open_file_with_os:()=>za,storage_rename:()=>Tl});var O={};__webpack_require__.r(O),__webpack_require__.d(O,{procedures_callnoreturn:()=>Ml,procedures_callreturn:()=>Ol,procedures_defnoreturn:()=>gl,procedures_defreturn:()=>fl,procedures_ifreturn:()=>Rl,procedures_return:()=>Al});var M={};__webpack_require__.r(M),__webpack_require__.d(M,{tuple_change_to:()=>wl,tuple_create_with:()=>Sl,tuple_create_with_noreturn:()=>Vl,tuple_create_with_text2:()=>Cl,tuple_create_with_text_return:()=>Ll,tuple_del:()=>Nl,tuple_find:()=>Fl,tuple_getIndex:()=>yl,tuple_getSublist:()=>kl,tuple_get_random_item:()=>xl,tuple_get_sublist:()=>Yl,tuple_input:()=>Bl,tuple_join:()=>bl,tuple_length:()=>Dl,tuple_max:()=>vl,tuple_totuple:()=>Ul,tuple_trig:()=>Pl});var R={};__webpack_require__.r(R),__webpack_require__.d(R,{set_add_discard:()=>ql,set_clear:()=>Wl,set_create_with:()=>Xl,set_create_with_text_return:()=>Ql,set_length:()=>Gl,set_operate:()=>jl,set_operate_update:()=>Kl,set_pop:()=>Hl,set_sub:()=>$l,set_toset:()=>Jl,set_update:()=>zl});var A={};__webpack_require__.r(A),__webpack_require__.d(A,{html_content:()=>nu,html_content_more:()=>iu,html_document:()=>Zl,html_form:()=>ou,html_head_body:()=>eu,html_style:()=>su,html_style_content:()=>ru,html_text:()=>au,html_title:()=>tu});var S={};__webpack_require__.r(S),__webpack_require__.d(S,{attribute_access:()=>cu,function_call:()=>hu,raw_block:()=>lu,raw_empty:()=>pu,raw_expression:()=>uu,raw_table:()=>_u,type_check:()=>du});var C={};__webpack_require__.r(C),__webpack_require__.d(C,{AI_ChooseAndGet:()=>fu,AI_Face_match:()=>Su,AI_ImageClassify:()=>Ru,AI_ImageClassify_Func:()=>Au,AI_Nlp:()=>yu,AI_Nlp_Func:()=>Nu,AI_Nlp_Func_sim:()=>bu,AI_Nlp_Sim:()=>Du,AI_Nlp_Topic:()=>vu,AI_Nlp_newsSummary:()=>wu,AI_Ocr:()=>Cu,AI_Ocr_Func:()=>Lu,AI_Speech_asr:()=>Mu,AI_Speech_synthesis:()=>Ou,AI_audio:()=>Fu,AI_client:()=>gu,AI_photo:()=>Pu,AI_result:()=>ku});var L={};__webpack_require__.r(L),__webpack_require__.d(L,{algorithm_add_path:()=>Gu,algorithm_add_school:()=>xu,algorithm_all_books:()=>op,algorithm_all_books_sequence:()=>rp,algorithm_book_scale:()=>Ep,algorithm_check_feet:()=>Dp,algorithm_chick_calculate:()=>yp,algorithm_color_seclet:()=>Kp,algorithm_current_school:()=>$u,algorithm_del_path:()=>Hu,algorithm_delete_book:()=>cp,algorithm_delete_books:()=>Tp,algorithm_delete_books2:()=>Ip,algorithm_divide_books:()=>dp,algorithm_find_path:()=>Uu,algorithm_first_book:()=>ap,algorithm_fz_calc:()=>wp,algorithm_fz_calc_first_min:()=>Fp,algorithm_fz_compare:()=>Pp,algorithm_fz_move:()=>Vp,algorithm_fz_set_min:()=>kp,algorithm_get_book_num:()=>Mp,algorithm_get_current_location:()=>Wp,algorithm_get_half_books:()=>hp,algorithm_hxdb_add:()=>Xp,algorithm_hxdb_init_soldier:()=>xp,algorithm_hxdb_last_line:()=>Bp,algorithm_hxdb_result:()=>Gp,algorithm_hxdb_stand_in_line:()=>Up,algorithm_init_fzsf:()=>vp,algorithm_init_hxdb:()=>Yp,algorithm_init_jttl:()=>Sp,algorithm_move_recent:()=>Zu,algorithm_new_path:()=>Bu,algorithm_next_book:()=>pp,algorithm_no_left:()=>ju,algorithm_no_path:()=>zu,algorithm_no_ring2:()=>lp,algorithm_not_home:()=>tp,algorithm_not_school:()=>ep,algorithm_number_add:()=>gp,algorithm_number_zero:()=>fp,algorithm_prepare:()=>Yu,algorithm_prepare2:()=>qu,algorithm_prepare_2_1:()=>Qu,algorithm_prepare_2_2:()=>Ju,algorithm_print_book2:()=>mp,algorithm_print_divide:()=>Ap,algorithm_print_jttl_answer:()=>Np,algorithm_print_number:()=>Op,algorithm_print_path:()=>Ku,algorithm_print_path2:()=>np,algorithm_print_sequence:()=>Rp,algorithm_rabbit_add:()=>bp,algorithm_rabbit_number_in_range:()=>Lp,algorithm_rabbit_zero:()=>Cp,algorithm_return_path:()=>Wu,algorithm_set_path:()=>Xu,algorithm_two_left:()=>_p,algorithm_void_path:()=>jp,algorithm_yes_ring2:()=>up,hanoi_init:()=>ip,hanoi_init_offline:()=>Hp,hanoi_move:()=>sp});var y={};__webpack_require__.r(y),__webpack_require__.d(y,{requests_attribute:()=>Jp,requests_get:()=>zp,requests_get_old:()=>$p,requests_method:()=>Zp,requests_post:()=>Qp});var D={};__webpack_require__.r(D),__webpack_require__.d(D,{cv_destroy_all:()=>o_,cv_face_classifier:()=>l_,cv_face_detect:()=>u_,cv_face_detect_all:()=>p_,cv_line_rect:()=>r_,cv_read_image:()=>e_,cv_show_image:()=>n_,cv_text:()=>a_,cv_waitkey:()=>s_,cv_write_image:()=>i_});var N={};__webpack_require__.r(N),__webpack_require__.d(N,{array_create:()=>L_,array_toarray:()=>B_,dataframe_aggregate_func:()=>kd,dataframe_create:()=>c_,dataframe_create_from_index:()=>I_,dataframe_create_from_one_index:()=>T_,dataframe_fillna:()=>Md,dataframe_get:()=>Y_,dataframe_groupby:()=>Pd,dataframe_head_tail:()=>wd,dataframe_info:()=>Rd,dataframe_median:()=>Od,dataframe_select:()=>Fd,dataframe_sort_values:()=>vd,matrix_multiplication:()=>fd,matrix_transpose:()=>Ed,numpy_argmin_template_match:()=>pd,numpy_astype:()=>ad,numpy_c_:()=>Id,numpy_dot:()=>Ld,numpy_linalg_det:()=>md,numpy_linalg_inv:()=>gd,numpy_max:()=>Sd,numpy_mean:()=>_d,numpy_mean_digit:()=>ud,numpy_min:()=>Ad,numpy_ones:()=>Td,numpy_random_random:()=>Nd,numpy_reshape:()=>rd,numpy_shape:()=>od,numpy_size:()=>Cd,numpy_square:()=>yd,numpy_std:()=>dd,numpy_sum:()=>Dd,numpy_trig:()=>P_,pandas_drop_columns:()=>cd,pandas_dropna:()=>hd,pandas_readcsv:()=>V_,pl_axes:()=>R_,pl_bar:()=>b_,pl_hist:()=>w_,pl_label:()=>C_,pl_legend:()=>A_,pl_pie:()=>v_,pl_plot:()=>O_,pl_plot_bar:()=>y_,pl_plot_easy:()=>g_,pl_plot_scatter:()=>D_,pl_plot_xy:()=>N_,pl_savefig:()=>x_,pl_show:()=>M_,pl_subplot:()=>k_,pl_text:()=>U_,pl_ticks:()=>F_,pl_title:()=>S_,plot_axes:()=>W_,plot_bar:()=>J_,plot_cla:()=>Vd,plot_hist:()=>td,plot_label:()=>q_,plot_legend:()=>j_,plot_pie:()=>Z_,plot_plot:()=>G_,plot_plot_bar:()=>$_,plot_plot_easy:()=>X_,plot_plot_scatter:()=>z_,plot_plot_xy:()=>Q_,plot_savefig:()=>id,plot_show:()=>H_,plot_subplot:()=>nd,plot_text:()=>sd,plot_ticks:()=>ed,plot_title:()=>K_,py_sum:()=>bd,pylab_imshow:()=>ld,series_create:()=>d_,series_create_from_index:()=>h_,series_create_from_text:()=>m_,series_get_num:()=>f_,series_index_value:()=>E_});var b={};__webpack_require__.r(b),__webpack_require__.d(b,{ds_add_node_by_attr:()=>jd,ds_add_node_by_name:()=>Wd,ds_create_linkedlist:()=>xd,ds_create_linkedlist_container:()=>Ud,ds_create_linkedlist_item:()=>Bd,ds_create_node:()=>Xd,ds_del_node_by_attr:()=>qd,ds_del_node_by_name:()=>Kd,ds_get_node_attr:()=>Gd,ds_reverse_linkedlist:()=>$d,ds_set_node_attr:()=>Hd});var v={};__webpack_require__.r(v),__webpack_require__.d(v,{factory_block:()=>rh,factory_block_return:()=>ah,factory_block_return_with_textarea:()=>uh,factory_block_with_textarea:()=>lh,factory_callMethod_noreturn:()=>sh,factory_callMethod_return:()=>oh,factory_create_with_container:()=>th,factory_create_with_item:()=>eh,factory_declare:()=>ih,factory_from_import:()=>Qd,factory_function_noreturn:()=>Zd,factory_function_return:()=>nh,factory_import:()=>Jd});var w={};__webpack_require__.r(w),__webpack_require__.d(w,{hardware_arduino_analog_read:()=>Ih,hardware_arduino_analog_write:()=>Th,hardware_arduino_digital_read:()=>ch,hardware_arduino_digital_write:()=>hh,hardware_arduino_start:()=>_h,inout_highlow:()=>dh});var F={};__webpack_require__.r(F),__webpack_require__.d(F,{inout_input:()=>mh,inout_print:()=>Eh,inout_print_container:()=>Ah,inout_print_end:()=>gh,inout_print_inline:()=>fh,inout_print_item:()=>Sh,inout_print_many:()=>Rh,inout_type_input:()=>Oh,pyinout_type_input:()=>Mh});var P={};__webpack_require__.r(P),__webpack_require__.d(P,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>$h,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>qh,IOT_EMQX_PING:()=>jh,IOT_FORMATTING:()=>Hh,IOT_FORMAT_STRING:()=>Wh,IOT_MIXIO_NTP:()=>Kh,IOT_MIXIO_PUBLISH:()=>kh,IOT_MIXIO_SUBSCRIBE:()=>Vh,IOT_MIXIO_UNSUBSCRIBE:()=>Yh,iot_checkonenet:()=>oc,iot_client_onboard:()=>Jh,iot_create_with_item:()=>Fh,iot_http_client:()=>Zh,iot_http_data:()=>tc,iot_mixio_check:()=>Bh,iot_mixio_connect:()=>Ph,iot_mixio_connect_only:()=>Uh,iot_mixio_disconnect:()=>xh,iot_mixio_format_msg:()=>Gh,iot_mixio_format_topic:()=>Xh,iot_mixly_key:()=>Qh,iot_mixly_key_py:()=>zh,iot_mqtt_client:()=>ec,iot_mqtt_data:()=>nc,iot_onenet_check:()=>Dh,iot_onenet_connect:()=>Lh,iot_onenet_disconnect:()=>yh,iot_onenet_publish:()=>bh,iot_onenet_publish_dict:()=>Nh,iot_onenetconnect:()=>ic,iot_onenetdisconnect:()=>sc,iot_publish:()=>rc,iot_publish_container:()=>vh,iot_publish_item:()=>wh});var k={};__webpack_require__.r(k),__webpack_require__.d(k,{pins_analog_read:()=>_c,pins_analog_write:()=>pc,pins_digital_read:()=>uc,pins_digital_write:()=>lc});var V={};__webpack_require__.r(V),__webpack_require__.d(V,{serial_close:()=>Tc,serial_open:()=>dc,serial_read_b:()=>cc,serial_write:()=>hc});var Y={};__webpack_require__.r(Y),__webpack_require__.d(Y,{sklearn_DecisionTreeClassifier_Regressor:()=>Cc,sklearn_GaussianNB:()=>Dc,sklearn_KMeans:()=>vc,sklearn_KMeans_fit:()=>wc,sklearn_KNeighborsClassifier_Regressor:()=>yc,sklearn_LinearRegression:()=>Ac,sklearn_RandomForestClassifier_Regressor:()=>Lc,sklearn_Ridge:()=>Sc,sklearn_cluster_centers_labels_inertia:()=>Uc,sklearn_coef_intercept:()=>xc,sklearn_data_target:()=>Oc,sklearn_fit:()=>Fc,sklearn_fit_no_target:()=>Pc,sklearn_load:()=>gc,sklearn_make_blobs:()=>fc,sklearn_make_classification:()=>mc,sklearn_make_regression:()=>Ec,sklearn_pca:()=>Nc,sklearn_pca_fit_transform:()=>bc,sklearn_predict:()=>kc,sklearn_save_load_model:()=>Bc,sklearn_score:()=>Vc,sklearn_score_no_target:()=>Yc,sklearn_train_test_split:()=>Mc,sklearn_train_test_split_no_target:()=>Rc});var x={};__webpack_require__.r(x),__webpack_require__.d(x,{Panic_with_status_code:()=>jc,base_delay:()=>Gc,controls_millis:()=>Hc,controls_mstimer2:()=>qc,controls_mstimer2_start:()=>$c,controls_mstimer2_stop:()=>zc,reset:()=>Kc,time_localtime:()=>Wc,time_sleep:()=>Qc});var U={};__webpack_require__.r(U),__webpack_require__.d(U,{turtle_bgcolor:()=>ET,turtle_bgcolor_hex:()=>LT,turtle_bgcolor_hex_new:()=>MT,turtle_circle:()=>TT,turtle_circle_advanced:()=>IT,turtle_clear:()=>uT,turtle_clone:()=>OT,turtle_color:()=>ST,turtle_color_hex:()=>CT,turtle_color_seclet:()=>VT,turtle_create:()=>Zc,turtle_done:()=>tT,turtle_exitonclick:()=>eT,turtle_fill:()=>_T,turtle_fillcolor:()=>gT,turtle_fillcolor_hex:()=>DT,turtle_fillcolor_hex_new:()=>AT,turtle_getscreen:()=>YT,turtle_goto:()=>rT,turtle_listen:()=>XT,turtle_move:()=>nT,turtle_numinput:()=>vT,turtle_onclick:()=>UT,turtle_onkey:()=>xT,turtle_ontimer:()=>BT,turtle_pencolor:()=>fT,turtle_pencolor_hex:()=>yT,turtle_pencolor_hex_new:()=>RT,turtle_penup:()=>pT,turtle_pos_shape:()=>lT,turtle_rotate:()=>iT,turtle_screen_delay:()=>oT,turtle_screen_savefig:()=>GT,turtle_setheading:()=>sT,turtle_setxy:()=>aT,turtle_shape:()=>NT,turtle_shapesize:()=>bT,turtle_size:()=>hT,turtle_size_speed:()=>dT,turtle_speed:()=>cT,turtle_textinput:()=>wT,turtle_visible:()=>mT,turtle_write:()=>FT,turtle_write_format:()=>PT,turtle_write_format_skulpt:()=>kT});var B={};__webpack_require__.r(B),__webpack_require__.d(B,{AI_ChooseAndGet:()=>HT,AI_Face_match:()=>$T,AI_ImageClassify:()=>qT,AI_ImageClassify_Func:()=>eI,AI_Nlp:()=>QT,AI_Nlp_Func:()=>iI,AI_Nlp_Func_sim:()=>sI,AI_Nlp_Sim:()=>JT,AI_Nlp_Topic:()=>ZT,AI_Nlp_newsSummary:()=>tI,AI_Ocr:()=>zT,AI_Ocr_Func:()=>nI,AI_Speech_asr:()=>KT,AI_Speech_synthesis:()=>jT,AI_audio:()=>oI,AI_client:()=>WT,AI_photo:()=>rI,AI_result:()=>aI});var X={};__webpack_require__.r(X),__webpack_require__.d(X,{algorithm_add_path:()=>hI,algorithm_add_school:()=>uI,algorithm_all_books:()=>NI,algorithm_all_books_sequence:()=>DI,algorithm_book_scale:()=>UI,algorithm_check_feet:()=>qI,algorithm_chick_calculate:()=>KI,algorithm_color_seclet:()=>_m,algorithm_current_school:()=>fI,algorithm_del_path:()=>cI,algorithm_delete_book:()=>YI,algorithm_divide_books:()=>kI,algorithm_find_path:()=>pI,algorithm_first_book:()=>bI,algorithm_fz_calc:()=>JI,algorithm_fz_compare:()=>ZI,algorithm_fz_move:()=>em,algorithm_fz_set_min:()=>tm,algorithm_get_current_location:()=>um,algorithm_get_half_books:()=>VI,algorithm_hxdb_add:()=>rm,algorithm_hxdb_init_soldier:()=>im,algorithm_hxdb_last_line:()=>om,algorithm_hxdb_result:()=>am,algorithm_hxdb_stand_in_line:()=>sm,algorithm_init_fzsf:()=>QI,algorithm_init_hxdb:()=>nm,algorithm_init_jttl:()=>HI,algorithm_move_recent:()=>RI,algorithm_new_path:()=>_I,algorithm_next_book:()=>FI,algorithm_no_left:()=>II,algorithm_no_path:()=>gI,algorithm_no_ring2:()=>vI,algorithm_not_home:()=>AI,algorithm_not_school:()=>SI,algorithm_number_add:()=>XI,algorithm_number_zero:()=>BI,algorithm_prepare:()=>lI,algorithm_prepare2:()=>EI,algorithm_prepare_2_1:()=>OI,algorithm_prepare_2_2:()=>MI,algorithm_print_book2:()=>xI,algorithm_print_jttl_answer:()=>$I,algorithm_print_number:()=>GI,algorithm_print_path:()=>mI,algorithm_print_path2:()=>CI,algorithm_rabbit_add:()=>zI,algorithm_rabbit_number_in_range:()=>jI,algorithm_rabbit_zero:()=>WI,algorithm_return_path:()=>TI,algorithm_set_path:()=>dI,algorithm_two_left:()=>PI,algorithm_void_path:()=>pm,algorithm_yes_ring2:()=>wI,hanoi_init:()=>LI,hanoi_init_offline:()=>lm,hanoi_move:()=>yI});var G={};__webpack_require__.r(G),__webpack_require__.d(G,{requests_attribute:()=>Tm,requests_get:()=>hm,requests_get_old:()=>dm,requests_method:()=>Im,requests_post:()=>cm});var H={};__webpack_require__.r(H),__webpack_require__.d(H,{array_create:()=>wm,array_toarray:()=>Km,dataframe_aggregate_func:()=>XE,dataframe_create:()=>gm,dataframe_create_from_index:()=>Om,dataframe_create_from_one_index:()=>Mm,dataframe_fillna:()=>yE,dataframe_get:()=>Hm,dataframe_groupby:()=>BE,dataframe_head_tail:()=>xE,dataframe_info:()=>DE,dataframe_median:()=>LE,dataframe_select:()=>UE,dataframe_sort_values:()=>YE,matrix_multiplication:()=>SE,matrix_transpose:()=>AE,numpy_argmin_template_match:()=>IE,numpy_astype:()=>hE,numpy_c_:()=>ME,numpy_dot:()=>wE,numpy_linalg_det:()=>RE,numpy_linalg_inv:()=>CE,numpy_max:()=>bE,numpy_mean:()=>mE,numpy_mean_digit:()=>TE,numpy_min:()=>NE,numpy_ones:()=>OE,numpy_random_random:()=>kE,numpy_reshape:()=>dE,numpy_shape:()=>_E,numpy_size:()=>vE,numpy_square:()=>FE,numpy_std:()=>EE,numpy_sum:()=>PE,numpy_trig:()=>Bm,pandas_drop_columns:()=>gE,pandas_dropna:()=>fE,pandas_readcsv:()=>Gm,pl_axes:()=>Lm,pl_bar:()=>Vm,pl_hist:()=>xm,pl_label:()=>vm,pl_legend:()=>Nm,pl_pie:()=>Ym,pl_plot:()=>Dm,pl_plot_bar:()=>Fm,pl_plot_easy:()=>ym,pl_plot_scatter:()=>Pm,pl_plot_xy:()=>km,pl_savefig:()=>Wm,pl_show:()=>Cm,pl_subplot:()=>Xm,pl_text:()=>jm,pl_ticks:()=>Um,pl_title:()=>bm,plot_axes:()=>$m,plot_bar:()=>sE,plot_cla:()=>GE,plot_hist:()=>rE,plot_label:()=>tE,plot_legend:()=>Jm,plot_pie:()=>oE,plot_plot:()=>Qm,plot_plot_bar:()=>eE,plot_plot_easy:()=>zm,plot_plot_scatter:()=>nE,plot_plot_xy:()=>iE,plot_savefig:()=>uE,plot_show:()=>qm,plot_subplot:()=>lE,plot_text:()=>pE,plot_ticks:()=>aE,plot_title:()=>Zm,py_sum:()=>VE,pylab_imshow:()=>cE,series_create:()=>Em,series_create_from_index:()=>fm,series_create_from_text:()=>Rm,series_get_num:()=>Sm,series_index_value:()=>Am});var W={};__webpack_require__.r(W),__webpack_require__.d(W,{ds_add_node_by_attr:()=>$E,ds_add_node_by_name:()=>qE,ds_create_linkedlist:()=>HE,ds_create_node:()=>WE,ds_del_node_by_attr:()=>QE,ds_del_node_by_name:()=>zE,ds_get_node_attr:()=>jE,ds_reverse_linkedlist:()=>JE,ds_set_node_attr:()=>KE});var j={};__webpack_require__.r(j),__webpack_require__.d(j,{factory_block:()=>af,factory_block_return:()=>lf,factory_block_return_with_textarea:()=>pf,factory_block_with_textarea:()=>uf,factory_callMethod_noreturn:()=>of,factory_callMethod_return:()=>rf,factory_declare:()=>sf,factory_from_import:()=>ZE,factory_function_noreturn:()=>ef,factory_function_return:()=>nf,factory_import:()=>tf});var K={};__webpack_require__.r(K),__webpack_require__.d(K,{hardware_arduino_analog_read:()=>Tf,hardware_arduino_analog_write:()=>If,hardware_arduino_digital_read:()=>cf,hardware_arduino_digital_write:()=>hf,hardware_arduino_start:()=>_f,inout_highlow:()=>df});var q={};__webpack_require__.r(q),__webpack_require__.d(q,{inout_input:()=>mf,inout_print:()=>Ef,inout_print_end:()=>gf,inout_print_inline:()=>ff,inout_print_many:()=>Rf,inout_type_input:()=>Of,pyinout_type_input:()=>Mf});var z={};__webpack_require__.r(z),__webpack_require__.d(z,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Pf,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Yf,IOT_EMQX_PING:()=>xf,IOT_FORMATTING:()=>wf,IOT_FORMAT_STRING:()=>Ff,IOT_MIXIO_NTP:()=>Uf,IOT_MIXIO_PUBLISH:()=>Sf,IOT_MIXIO_SUBSCRIBE:()=>Cf,IOT_MIXIO_UNSUBSCRIBE:()=>Lf,iot_mixio_check:()=>Nf,iot_mixio_connect:()=>Af,iot_mixio_connect_only:()=>Df,iot_mixio_disconnect:()=>yf,iot_mixio_format_msg:()=>vf,iot_mixio_format_topic:()=>bf,iot_mixly_key:()=>kf,iot_mixly_key_py:()=>Vf});var Q={};__webpack_require__.r(Q),__webpack_require__.d(Q,{pins_analog_read:()=>Wf,pins_analog_write:()=>Hf,pins_digital:()=>Bf,pins_digital_read:()=>Gf,pins_digital_write:()=>Xf});var J={};__webpack_require__.r(J),__webpack_require__.d(J,{serial_close:()=>$f,serial_open:()=>jf,serial_read_b:()=>qf,serial_write:()=>Kf});var Z={};__webpack_require__.r(Z),__webpack_require__.d(Z,{sklearn_DecisionTreeClassifier_Regressor:()=>og,sklearn_GaussianNB:()=>lg,sklearn_KMeans:()=>_g,sklearn_KMeans_fit:()=>dg,sklearn_KNeighborsClassifier_Regressor:()=>ag,sklearn_LinearRegression:()=>ig,sklearn_RandomForestClassifier_Regressor:()=>rg,sklearn_Ridge:()=>sg,sklearn_cluster_centers_labels_inertia:()=>fg,sklearn_coef_intercept:()=>Eg,sklearn_data_target:()=>tg,sklearn_fit:()=>hg,sklearn_fit_no_target:()=>cg,sklearn_load:()=>Zf,sklearn_make_blobs:()=>Jf,sklearn_make_classification:()=>zf,sklearn_make_regression:()=>Qf,sklearn_pca:()=>ug,sklearn_pca_fit_transform:()=>pg,sklearn_predict:()=>Tg,sklearn_save_load_model:()=>gg,sklearn_score:()=>Ig,sklearn_score_no_target:()=>mg,sklearn_train_test_split:()=>eg,sklearn_train_test_split_no_target:()=>ng});var tt={};__webpack_require__.r(tt),__webpack_require__.d(tt,{controls_end_program:()=>Mg,controls_millis:()=>Og,time_localtime:()=>Rg});var et={};__webpack_require__.r(et),__webpack_require__.d(et,{turtle_bgcolor:()=>Gg,turtle_bgcolor_hex:()=>Kg,turtle_bgcolor_hex_new:()=>zg,turtle_circle:()=>xg,turtle_circle_advanced:()=>Bg,turtle_clear:()=>wg,turtle_clone:()=>jg,turtle_color:()=>tO,turtle_color_hex:()=>Zg,turtle_color_seclet:()=>lO,turtle_create:()=>Ag,turtle_done:()=>Sg,turtle_exitonclick:()=>Cg,turtle_fill:()=>Pg,turtle_fillcolor:()=>Wg,turtle_fillcolor_hex:()=>$g,turtle_fillcolor_hex_new:()=>Jg,turtle_getscreen:()=>uO,turtle_goto:()=>bg,turtle_listen:()=>hO,turtle_move:()=>Lg,turtle_numinput:()=>sO,turtle_onclick:()=>_O,turtle_onkey:()=>pO,turtle_ontimer:()=>dO,turtle_pencolor:()=>Hg,turtle_pencolor_hex:()=>qg,turtle_pencolor_hex_new:()=>Qg,turtle_penup:()=>Fg,turtle_pos_shape:()=>vg,turtle_rotate:()=>yg,turtle_screen_delay:()=>Ng,turtle_screen_savefig:()=>cO,turtle_setheading:()=>Dg,turtle_setxy:()=>Ug,turtle_shape:()=>eO,turtle_shapesize:()=>nO,turtle_size:()=>Vg,turtle_size_speed:()=>kg,turtle_speed:()=>Yg,turtle_textinput:()=>iO,turtle_visible:()=>Xg,turtle_write:()=>oO,turtle_write_format:()=>rO,turtle_write_format_skulpt:()=>aO});var nt={};__webpack_require__.r(nt),__webpack_require__.d(nt,{COPYFILE_EXCL:()=>$O,COPYFILE_FICLONE:()=>zO,COPYFILE_FICLONE_FORCE:()=>QO,F_OK:()=>WO,O_APPEND:()=>oM,O_CREAT:()=>eM,O_DIRECT:()=>dM,O_DIRECTORY:()=>rM,O_DSYNC:()=>pM,O_EXCL:()=>nM,O_NOATIME:()=>aM,O_NOCTTY:()=>iM,O_NOFOLLOW:()=>lM,O_NONBLOCK:()=>hM,O_RDONLY:()=>JO,O_RDWR:()=>tM,O_SYMLINK:()=>_M,O_SYNC:()=>uM,O_TRUNC:()=>sM,O_WRONLY:()=>ZO,R_OK:()=>jO,S_IFBLK:()=>EM,S_IFCHR:()=>gM,S_IFDIR:()=>fM,S_IFIFO:()=>OM,S_IFLNK:()=>IM,S_IFMT:()=>cM,S_IFREG:()=>mM,S_IFSOCK:()=>TM,S_IRGRP:()=>NM,S_IROTH:()=>FM,S_IRUSR:()=>CM,S_IRWXG:()=>DM,S_IRWXO:()=>wM,S_IRWXU:()=>SM,S_ISGID:()=>RM,S_ISUID:()=>MM,S_ISVTX:()=>AM,S_IWGRP:()=>bM,S_IWOTH:()=>PM,S_IWUSR:()=>LM,S_IXGRP:()=>vM,S_IXOTH:()=>kM,S_IXUSR:()=>yM,UV_FS_O_FILEMAP:()=>VM,W_OK:()=>KO,X_OK:()=>qO,size_max:()=>YM});var it={};__webpack_require__.r(it),__webpack_require__.d(it,{FileHandle:()=>oS,access:()=>bS,appendFile:()=>IS,chmod:()=>SS,chown:()=>RS,constants:()=>nt,copyFile:()=>FS,cp:()=>kS,exists:()=>aS,lchmod:()=>CS,lchown:()=>AS,link:()=>gS,lstat:()=>uS,lutimes:()=>yS,mkdir:()=>ES,mkdtemp:()=>wS,open:()=>hS,opendir:()=>PS,readFile:()=>cS,readdir:()=>fS,readlink:()=>MS,realpath:()=>DS,rename:()=>rS,rm:()=>vS,rmdir:()=>mS,stat:()=>lS,statfs:()=>VS,symlink:()=>OS,truncate:()=>pS,unlink:()=>_S,utimes:()=>LS,watch:()=>NS,writeFile:()=>TS});var st={};__webpack_require__.r(st),__webpack_require__.d(st,{BigIntStatsFs:()=>WM,Dir:()=>ZA,Dirent:()=>JA,ReadStream:()=>eS,Stats:()=>XM,StatsFs:()=>HM,WriteStream:()=>nS,_synced:()=>qR,access:()=>EC,accessSync:()=>GA,appendFile:()=>qS,appendFileSync:()=>fA,chmod:()=>hC,chmodSync:()=>YA,chown:()=>_C,chownSync:()=>kA,chroot:()=>ZR,close:()=>zS,closeSync:()=>OA,constants:()=>nt,copyFile:()=>LC,copyFileSync:()=>jA,cp:()=>bC,cpSync:()=>zA,createReadStream:()=>RC,createWriteStream:()=>AC,exists:()=>US,existsSync:()=>lA,fchmod:()=>iC,fchmodSync:()=>yA,fchown:()=>nC,fchownSync:()=>LA,fdatasync:()=>ZS,fdatasyncSync:()=>AA,fstat:()=>$S,fstatSync:()=>gA,fsync:()=>JS,fsyncSync:()=>RA,ftruncate:()=>QS,ftruncateSync:()=>MA,futimes:()=>sC,futimesSync:()=>DA,lchmod:()=>cC,lchmodSync:()=>xA,lchown:()=>dC,lchownSync:()=>VA,link:()=>lC,linkSync:()=>wA,lopenSync:()=>TA,lstat:()=>XS,lstatSync:()=>pA,lutimes:()=>IC,lutimesSync:()=>BA,mkdir:()=>rC,mkdirSync:()=>bA,mkdtemp:()=>CC,mkdtempSync:()=>WA,mount:()=>WR,mountObject:()=>QR,mounts:()=>HR,open:()=>WS,openAsBlob:()=>wC,openSync:()=>cA,opendir:()=>NC,opendirSync:()=>$A,promises:()=>it,read:()=>eC,readFile:()=>jS,readFileSync:()=>mA,readSync:()=>CA,readdir:()=>aC,readdirSync:()=>vA,readlink:()=>pC,readlinkSync:()=>PA,readv:()=>yC,readvSync:()=>KA,realpath:()=>mC,realpathSync:()=>XA,rename:()=>xS,renameSync:()=>aA,rm:()=>SC,rmSync:()=>HA,rmdir:()=>oC,rmdirSync:()=>NA,stat:()=>BS,statSync:()=>uA,statfs:()=>vC,statfsSync:()=>QA,symlink:()=>uC,symlinkSync:()=>FA,truncate:()=>GS,truncateSync:()=>_A,umount:()=>jR,unlink:()=>HS,unlinkSync:()=>dA,unwatchFile:()=>OC,utimes:()=>TC,utimesSync:()=>UA,watch:()=>MC,watchFile:()=>gC,write:()=>tC,writeFile:()=>KS,writeFileSync:()=>EA,writeSync:()=>SA,writev:()=>DC,writevSync:()=>qA});const ot=Blockly;Object.assign(ot.Lang.ZhHans,{PYTHON_PYODIDE_IMAGE:"图像",PYTHON_PYODIDE_LOADING:"Python3内核载入中...",PYTHON_PYODIDE_FILE_SYSTEM:"本地文件系统",PYTHON_PYODIDE_LOAD_FILE_SYSTEM:"载入本地文件夹"}),Object.assign(ot.Lang.ZhHant,{PYTHON_PYODIDE_IMAGE:"影像",PYTHON_PYODIDE_LOADING:"Python3核心載入...",PYTHON_PYODIDE_FILE_SYSTEM:"本機檔案系統",PYTHON_PYODIDE_LOAD_FILE_SYSTEM:"載入本機資料夾"}),Object.assign(ot.Lang.En,{PYTHON_PYODIDE_IMAGE:"Image",PYTHON_PYODIDE_LOADING:"Python3 kernel loading...",PYTHON_PYODIDE_FILE_SYSTEM:"Local File System",PYTHON_PYODIDE_LOAD_FILE_SYSTEM:"Load Local Folder"}),Object.assign(ot.Lang.ZhHans.MSG,{}),Object.assign(ot.Lang.ZhHant.MSG,{}),Object.assign(ot.Lang.En.MSG,{});const rt=Mixly,at={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var n=Object.create(null),i=0;i1&&(r+=i)):n=r}else n="i";return n}},lt=at; +var i=n(8287),s=i.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function r(t,e,n){return s(t,e,n)}s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?t.exports=i:(o(i,e),e.Buffer=r),r.prototype=Object.create(s.prototype),o(s,r),r.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return s(t,e,n)},r.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var i=s(t);return void 0!==e?"string"==typeof n?i.fill(e,n):i.fill(e):i.fill(0),i},r.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return s(t)},r.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},6944:t=>{"use strict";t.exports=path}},__webpack_module_cache__={},leafPrototypes,getProto,inProgress,dataWebpackPrefix;function __webpack_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var n=__webpack_module_cache__[t]={id:t,loaded:!1,exports:{}};return __webpack_modules__[t].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return __webpack_require__.d(e,{a:e}),e},getProto=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,__webpack_require__.t=function(t,e){if(1&e&&(t=this(t)),8&e)return t;if("object"==typeof t&&t){if(4&e&&t.__esModule)return t;if(16&e&&"function"==typeof t.then)return t}var n=Object.create(null);__webpack_require__.r(n);var i={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var s=2&e&&t;"object"==typeof s&&!~leafPrototypes.indexOf(s);s=getProto(s))Object.getOwnPropertyNames(s).forEach((e=>i[e]=()=>t[e]));return i.default=()=>t,__webpack_require__.d(n,i),n},__webpack_require__.d=(t,e)=>{for(var n in e)__webpack_require__.o(e,n)&&!__webpack_require__.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},__webpack_require__.f={},__webpack_require__.e=t=>Promise.all(Object.keys(__webpack_require__.f).reduce(((e,n)=>(__webpack_require__.f[n](t,e),e)),[])),__webpack_require__.u=t=>t+".bundle.js",__webpack_require__.miniCssF=t=>"styles/"+t+".45554be0.css",__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),inProgress={},dataWebpackPrefix="@mixly/python-pyodide:",__webpack_require__.l=(t,e,n,i)=>{if(inProgress[t])inProgress[t].push(e);else{var s,o;if(void 0!==n)for(var r=document.getElementsByTagName("script"),a=0;a{s.onerror=s.onload=null,clearTimeout(p);var i=inProgress[t];if(delete inProgress[t],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((t=>t(n))),e)return e(n)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),o&&document.head.appendChild(s)}},__webpack_require__.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{var t;__webpack_require__.g.importScripts&&(t=__webpack_require__.g.location+"");var e=__webpack_require__.g.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var i=n.length-1;i>-1&&(!t||!/^http(s?):/.test(t));)t=n[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=t})(),(()=>{if("undefined"!=typeof document){var t=t=>new Promise(((e,n)=>{var i=__webpack_require__.miniCssF(t),s=__webpack_require__.p+i;if(((t,e)=>{for(var n=document.getElementsByTagName("link"),i=0;i{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",__webpack_require__.nc&&(o.nonce=__webpack_require__.nc),o.onerror=o.onload=n=>{if(o.onerror=o.onload=null,"load"===n.type)i();else{var r=n&&n.type,a=n&&n.target&&n.target.href||e,l=new Error("Loading CSS chunk "+t+" failed.\n("+r+": "+a+")");l.name="ChunkLoadError",l.code="CSS_CHUNK_LOAD_FAILED",l.type=r,l.request=a,o.parentNode&&o.parentNode.removeChild(o),s(l)}},o.href=e,n?n.parentNode.insertBefore(o,n.nextSibling):document.head.appendChild(o)})(t,s,null,e,n)})),e={792:0};__webpack_require__.f.miniCss=(n,i)=>{e[n]?i.push(e[n]):0!==e[n]&&{317:1}[n]&&i.push(e[n]=t(n).then((()=>{e[n]=0}),(t=>{throw delete e[n],t})))}}})(),(()=>{var t={792:0};__webpack_require__.f.j=(e,n)=>{var i=__webpack_require__.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var s=new Promise(((n,s)=>i=t[e]=[n,s]));n.push(i[2]=s);var o=__webpack_require__.p+__webpack_require__.u(e),r=new Error;__webpack_require__.l(o,(n=>{if(__webpack_require__.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var s=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;r.message="Loading chunk "+e+" failed.\n("+s+": "+o+")",r.name="ChunkLoadError",r.type=s,r.request=o,i[1](r)}}),"chunk-"+e,e)}};var e=(e,n)=>{var i,s,[o,r,a]=n,l=0;if(o.some((e=>0!==t[e]))){for(i in r)__webpack_require__.o(r,i)&&(__webpack_require__.m[i]=r[i]);if(a)a(__webpack_require__)}for(e&&e(n);l{"use strict";var t={};__webpack_require__.r(t),__webpack_require__.d(t,{controls_type:()=>It,controls_typeLists:()=>mt,lists_zip:()=>Et,lists_zip_container:()=>ft,lists_zip_item:()=>gt,unpack_iterable_object:()=>Ot,variables_change:()=>ct,variables_get:()=>dt,variables_global:()=>Tt,variables_set:()=>ht});var e={};__webpack_require__.r(e),__webpack_require__.d(e,{base_setup:()=>At,controls_delay:()=>St,controls_end_program:()=>Ct,controls_except:()=>xt,controls_finally:()=>Ut,controls_flow_statements:()=>vt,controls_for:()=>wt,controls_forEach:()=>Dt,controls_for_range:()=>Ft,controls_if:()=>Lt,controls_if_else:()=>Vt,controls_if_elseif:()=>kt,controls_if_if:()=>Pt,controls_lambda:()=>Xt,controls_main:()=>Rt,controls_pass:()=>Gt,controls_range:()=>yt,controls_repeat_ext:()=>Bt,controls_thread:()=>Ht,controls_try:()=>Yt,controls_try_finally:()=>bt,controls_whileUntil:()=>Nt,datetime_fromtimestamp:()=>zt,do_while:()=>Wt,garbage_collection:()=>jt,gene_unique_identifier:()=>Qt,get_mem_alloc:()=>Kt,get_mem_free:()=>qt,get_unique_identifier:()=>$t});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{base_map:()=>Ee,generate_cartesian_product:()=>ge,math_arithmetic:()=>ne,math_bit:()=>se,math_constant:()=>te,math_constant_mp:()=>ee,math_constrain:()=>_e,math_dec:()=>re,math_degree_to_radian:()=>Me,math_indexer_number:()=>he,math_map:()=>de,math_max_min:()=>le,math_number:()=>Zt,math_number_base_conversion:()=>ue,math_radian_to_degree:()=>Oe,math_random:()=>pe,math_random_seed:()=>ce,math_round:()=>Te,math_selfcalcu:()=>ie,math_to_int:()=>ae,math_trig:()=>oe,text_to_number:()=>Ie,text_to_number_skulpt:()=>me,turn_to_int:()=>fe});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{ascii_to_char:()=>ye,char_to_ascii:()=>De,number_to_text:()=>Ne,os_system:()=>en,text:()=>Ae,text_capital:()=>xe,text_center:()=>Ue,text_char:()=>Ce,text_char_at:()=>we,text_char_at2:()=>ve,text_char_at3:()=>Qe,text_compareTo:()=>ze,text_compare_to:()=>Ye,text_create_with_container:()=>Ke,text_create_with_item:()=>qe,text_encode:()=>Ze,text_equals_starts_ends:()=>Ve,text_eval:()=>tn,text_find:()=>Be,text_format:()=>je,text_format_noreturn:()=>Je,text_join:()=>Le,text_join_seq:()=>Xe,text_length:()=>be,text_random_char:()=>Fe,text_replace:()=>Ge,text_split:()=>He,text_strip:()=>We,text_substring:()=>ke,text_substring2:()=>Pe,text_substring3:()=>$e,text_textarea:()=>Se});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{ENUMERATE:()=>Yn,content_in_lists:()=>Un,enumerate:()=>xn,list_many_input:()=>Sn,list_tolist:()=>Dn,list_tolist2:()=>Vn,list_trig:()=>Mn,lists_2d_get_col_row_data:()=>an,lists_2d_get_data_with_col_row:()=>rn,lists_append_extend:()=>hn,lists_change_to:()=>An,lists_change_to_general:()=>Ln,lists_clear:()=>En,lists_create_with:()=>ln,lists_create_with2:()=>Nn,lists_create_with_container:()=>pn,lists_create_with_item:()=>_n,lists_create_with_noreturn:()=>Cn,lists_create_with_text:()=>un,lists_create_with_text2:()=>bn,lists_del_general:()=>yn,lists_find:()=>On,lists_getIndex3:()=>vn,lists_getSublist3:()=>wn,lists_get_index:()=>sn,lists_get_random_item:()=>cn,lists_get_random_sublist:()=>Tn,lists_get_sublist:()=>on,lists_insert_value:()=>In,lists_insert_value2:()=>Pn,lists_pop:()=>gn,lists_remove_at:()=>fn,lists_remove_at2:()=>kn,lists_reverse:()=>mn,lists_setIndex3:()=>Fn,lists_set_index:()=>dn,lists_sort:()=>Rn});var o={};__webpack_require__.r(o),__webpack_require__.d(o,{dicts_add_change_del:()=>ni,dicts_add_or_change:()=>qn,dicts_clear:()=>Qn,dicts_create_with:()=>Xn,dicts_create_with_container:()=>Gn,dicts_create_with_item:()=>Hn,dicts_create_with_noreturn:()=>oi,dicts_deldict:()=>ei,dicts_delete:()=>$n,dicts_get:()=>jn,dicts_get_default:()=>Kn,dicts_items:()=>Jn,dicts_keys:()=>Wn,dicts_length:()=>ti,dicts_pop:()=>ii,dicts_setdefault:()=>si,dicts_to_json:()=>ai,dicts_to_json2:()=>pi,dicts_to_to:()=>ui,dicts_todict:()=>ri,dicts_update:()=>zn,dicts_values:()=>Zn,json_to_dicts:()=>li});var r={};__webpack_require__.r(r),__webpack_require__.d(r,{logic_boolean:()=>Ii,logic_compare:()=>di,logic_compare_continous:()=>hi,logic_is:()=>gi,logic_is_in:()=>fi,logic_negate:()=>Ti,logic_null:()=>mi,logic_operation:()=>ci,logic_tobool:()=>Oi,logic_true_or_false:()=>Ei});var a={};__webpack_require__.r(a),__webpack_require__.d(a,{sdcard_mount:()=>Hi,sdcard_use_spi_init:()=>Gi,storage_can_write_ornot:()=>Ni,storage_change_dir:()=>Bi,storage_close_file:()=>vi,storage_delete_file:()=>Fi,storage_file_seek:()=>Vi,storage_file_tell:()=>ki,storage_file_write:()=>Ci,storage_fileopen:()=>Ri,storage_fileopen_new:()=>Ai,storage_fileopen_new_encoding:()=>Si,storage_get_a_line:()=>Di,storage_get_contents:()=>yi,storage_get_contents_without_para:()=>Li,storage_get_current_dir:()=>Yi,storage_get_file_size:()=>Pi,storage_get_filename:()=>bi,storage_is_file:()=>Xi,storage_list_all_files:()=>wi,storage_make_dir:()=>xi,storage_open_file_with_os:()=>Mi,storage_rename:()=>Ui});var l={};__webpack_require__.r(l),__webpack_require__.d(l,{procedures_callnoreturn:()=>$i,procedures_callreturn:()=>zi,procedures_defnoreturn:()=>Wi,procedures_defreturn:()=>ji,procedures_ifreturn:()=>Qi,procedures_mutatorarg:()=>qi,procedures_mutatorcontainer:()=>Ki,procedures_return:()=>Ji});var u={};__webpack_require__.r(u),__webpack_require__.d(u,{tuple_change_to:()=>ps,tuple_create_with:()=>ts,tuple_create_with_container:()=>es,tuple_create_with_item:()=>ns,tuple_create_with_noreturn:()=>cs,tuple_create_with_text2:()=>is,tuple_create_with_text_return:()=>ss,tuple_del:()=>as,tuple_find:()=>_s,tuple_getIndex:()=>os,tuple_getSublist:()=>hs,tuple_get_random_item:()=>Is,tuple_get_sublist:()=>Ts,tuple_input:()=>Es,tuple_join:()=>ls,tuple_length:()=>rs,tuple_max:()=>us,tuple_totuple:()=>ms,tuple_trig:()=>ds});var p={};__webpack_require__.r(p),__webpack_require__.d(p,{set_add_discard:()=>ys,set_clear:()=>Ss,set_create_with:()=>gs,set_create_with_container:()=>Os,set_create_with_item:()=>Ms,set_create_with_text_return:()=>bs,set_length:()=>Rs,set_operate:()=>Cs,set_operate_update:()=>Ls,set_pop:()=>As,set_sub:()=>Ds,set_toset:()=>vs,set_update:()=>Ns});var _={};__webpack_require__.r(_),__webpack_require__.d(_,{html_content:()=>Vs,html_content_more:()=>Ys,html_document:()=>Fs,html_form:()=>Us,html_head_body:()=>ks,html_style:()=>xs,html_style_color:()=>Xs,html_style_content:()=>Bs,html_text:()=>Gs,html_title:()=>Ps});var d={};__webpack_require__.r(d),__webpack_require__.d(d,{attribute_access:()=>io,function_call:()=>to,function_call_container:()=>eo,function_call_item:()=>no,raw_block:()=>js,raw_empty:()=>qs,raw_expression:()=>Ks,raw_table:()=>Ws,text_comment:()=>$s,text_print_multiple:()=>Qs,text_print_multiple_container:()=>Js,text_print_multiple_item:()=>Zs,type_check:()=>zs});var h={};__webpack_require__.r(h),__webpack_require__.d(h,{controls_type:()=>lo,controls_typeLists:()=>uo,lists_zip:()=>po,unpack_iterable_object:()=>_o,variables_change:()=>ro,variables_get:()=>so,variables_global:()=>ao,variables_set:()=>oo});var c={};__webpack_require__.r(c),__webpack_require__.d(c,{Panic_with_status_code:()=>Mo,base_setup:()=>co,controls_delay:()=>Oo,controls_flow_statements:()=>go,controls_for:()=>mo,controls_forEach:()=>Lo,controls_for_range:()=>Eo,controls_if:()=>To,controls_interrupts:()=>So,controls_lambda:()=>Do,controls_main:()=>ho,controls_millis:()=>Ro,controls_nointerrupts:()=>Co,controls_pass:()=>bo,controls_range:()=>yo,controls_repeat:()=>xo,controls_repeat_ext:()=>Fo,controls_thread:()=>vo,controls_try_finally:()=>Io,controls_whileUntil:()=>fo,datetime_fromtimestamp:()=>Uo,do_while:()=>wo,garbage_collection:()=>Po,gene_unique_identifier:()=>Bo,get_mem_alloc:()=>ko,get_mem_free:()=>Vo,get_unique_identifier:()=>Yo,reset:()=>Ao,time_sleep:()=>No});var T={};__webpack_require__.r(T),__webpack_require__.d(T,{base_map:()=>lr,generate_cartesian_product:()=>pr,math_arithmetic:()=>jo,math_bit:()=>Wo,math_constant:()=>Go,math_constant_mp:()=>Ho,math_constrain:()=>er,math_dec:()=>zo,math_degree_to_radian:()=>dr,math_indexer_number:()=>sr,math_map:()=>tr,math_max_min:()=>Jo,math_number:()=>Xo,math_number_base_conversion:()=>nr,math_radian_to_degree:()=>_r,math_random:()=>Zo,math_random_seed:()=>ir,math_round:()=>or,math_selfcalcu:()=>Ko,math_single:()=>qo,math_to_int:()=>Qo,math_trig:()=>$o,text_to_number:()=>rr,text_to_number_skulpt:()=>ar,turn_to_int:()=>ur});var I={};__webpack_require__.r(I),__webpack_require__.d(I,{ascii_to_char:()=>mr,char_to_ascii:()=>Er,number_to_text:()=>fr,os_system:()=>Xr,text:()=>hr,text_capital:()=>yr,text_center:()=>Dr,text_char:()=>Tr,text_char_at:()=>Mr,text_char_at2:()=>Or,text_char_at3:()=>xr,text_compareTo:()=>Yr,text_compare_to:()=>Sr,text_encode:()=>Ur,text_equals_starts_ends:()=>Ar,text_eval:()=>Br,text_find:()=>Nr,text_format:()=>Pr,text_format_noreturn:()=>kr,text_join:()=>Ir,text_join_seq:()=>br,text_length:()=>gr,text_random_char:()=>Rr,text_replace:()=>vr,text_split:()=>wr,text_strip:()=>Fr,text_substring:()=>Lr,text_substring2:()=>Cr,text_substring3:()=>Vr,text_textarea:()=>cr});var m={};__webpack_require__.r(m),__webpack_require__.d(m,{content_in_lists:()=>Ma,enumerate:()=>Oa,list_many_input:()=>la,list_tolist:()=>fa,list_tolist2:()=>ga,list_trig:()=>oa,lists_2d_get_col_row_data:()=>Wr,lists_2d_get_data_with_col_row:()=>Hr,lists_append_extend:()=>zr,lists_change_to:()=>aa,lists_change_to_general:()=>pa,lists_clear:()=>ea,lists_create_with:()=>jr,lists_create_with2:()=>da,lists_create_with_noreturn:()=>ua,lists_create_with_text:()=>Kr,lists_create_with_text2:()=>ha,lists_del_general:()=>_a,lists_find:()=>na,lists_getIndex3:()=>ca,lists_getSublist3:()=>Ta,lists_get_index:()=>qr,lists_get_random_item:()=>Qr,lists_get_random_sublist:()=>Jr,lists_get_sublist:()=>Gr,lists_insert_value:()=>Zr,lists_insert_value2:()=>ma,lists_pop:()=>sa,lists_remove_at:()=>ia,lists_remove_at2:()=>Ea,lists_reverse:()=>ta,lists_setIndex3:()=>Ia,lists_set_index:()=>$r,lists_sort:()=>ra});var E={};__webpack_require__.r(E),__webpack_require__.d(E,{dicts_add_change_del:()=>Pa,dicts_add_or_change:()=>La,dicts_clear:()=>Na,dicts_create_with:()=>Ra,dicts_create_with_noreturn:()=>Ya,dicts_deldict:()=>Fa,dicts_delete:()=>ya,dicts_get:()=>Sa,dicts_get_default:()=>Ca,dicts_items:()=>ba,dicts_keys:()=>Aa,dicts_length:()=>wa,dicts_pop:()=>ka,dicts_setdefault:()=>Va,dicts_to_json:()=>Ua,dicts_to_json2:()=>Ga,dicts_to_to:()=>Xa,dicts_todict:()=>xa,dicts_update:()=>Da,dicts_values:()=>va,json_to_dicts:()=>Ba});var f={};__webpack_require__.r(f),__webpack_require__.d(f,{logic_boolean:()=>qa,logic_compare:()=>Ha,logic_compare_continous:()=>Wa,logic_is:()=>Ja,logic_is_in:()=>Qa,logic_negate:()=>Ka,logic_null:()=>$a,logic_operation:()=>ja,logic_tobool:()=>Za,logic_true_or_false:()=>za});var g={};__webpack_require__.r(g),__webpack_require__.d(g,{sdcard_mount:()=>Ml,sdcard_use_spi_init:()=>Ol,storage_can_write_ornot:()=>ll,storage_change_dir:()=>Il,storage_close_file:()=>pl,storage_delete_file:()=>dl,storage_file_seek:()=>Tl,storage_file_tell:()=>cl,storage_file_write:()=>sl,storage_fileopen:()=>el,storage_fileopen_new:()=>nl,storage_fileopen_new_encoding:()=>il,storage_get_a_line:()=>al,storage_get_contents:()=>rl,storage_get_contents_without_para:()=>ol,storage_get_current_dir:()=>ml,storage_get_file_size:()=>hl,storage_get_filename:()=>ul,storage_is_file:()=>gl,storage_list_all_files:()=>_l,storage_make_dir:()=>El,storage_open_file_with_os:()=>tl,storage_rename:()=>fl});var O={};__webpack_require__.r(O),__webpack_require__.d(O,{procedures_callnoreturn:()=>Cl,procedures_callreturn:()=>Sl,procedures_defnoreturn:()=>Al,procedures_defreturn:()=>Rl,procedures_ifreturn:()=>Ll,procedures_return:()=>yl});var M={};__webpack_require__.r(M),__webpack_require__.d(M,{tuple_change_to:()=>Vl,tuple_create_with:()=>Dl,tuple_create_with_noreturn:()=>Bl,tuple_create_with_text2:()=>Nl,tuple_create_with_text_return:()=>bl,tuple_del:()=>Fl,tuple_find:()=>Yl,tuple_getIndex:()=>vl,tuple_getSublist:()=>Ul,tuple_get_random_item:()=>Gl,tuple_get_sublist:()=>Xl,tuple_input:()=>Wl,tuple_join:()=>Pl,tuple_length:()=>wl,tuple_max:()=>kl,tuple_totuple:()=>Hl,tuple_trig:()=>xl});var R={};__webpack_require__.r(R),__webpack_require__.d(R,{set_add_discard:()=>Jl,set_clear:()=>$l,set_create_with:()=>jl,set_create_with_text_return:()=>eu,set_length:()=>Kl,set_operate:()=>zl,set_operate_update:()=>Ql,set_pop:()=>ql,set_sub:()=>Zl,set_toset:()=>nu,set_update:()=>tu});var A={};__webpack_require__.r(A),__webpack_require__.d(A,{html_content:()=>ru,html_content_more:()=>au,html_document:()=>iu,html_form:()=>uu,html_head_body:()=>ou,html_style:()=>lu,html_style_content:()=>pu,html_text:()=>_u,html_title:()=>su});var S={};__webpack_require__.r(S),__webpack_require__.d(S,{attribute_access:()=>Eu,function_call:()=>mu,raw_block:()=>du,raw_empty:()=>cu,raw_expression:()=>hu,raw_table:()=>Tu,type_check:()=>Iu});var C={};__webpack_require__.r(C),__webpack_require__.d(C,{AI_ChooseAndGet:()=>Ru,AI_Face_match:()=>Du,AI_ImageClassify:()=>Lu,AI_ImageClassify_Func:()=>yu,AI_Nlp:()=>vu,AI_Nlp_Func:()=>Fu,AI_Nlp_Func_sim:()=>Pu,AI_Nlp_Sim:()=>wu,AI_Nlp_Topic:()=>ku,AI_Nlp_newsSummary:()=>Vu,AI_Ocr:()=>Nu,AI_Ocr_Func:()=>bu,AI_Speech_asr:()=>Cu,AI_Speech_synthesis:()=>Su,AI_audio:()=>Yu,AI_client:()=>Au,AI_photo:()=>xu,AI_result:()=>Uu});var L={};__webpack_require__.r(L),__webpack_require__.d(L,{algorithm_add_path:()=>Ku,algorithm_add_school:()=>Gu,algorithm_all_books:()=>up,algorithm_all_books_sequence:()=>pp,algorithm_book_scale:()=>Mp,algorithm_check_feet:()=>wp,algorithm_chick_calculate:()=>vp,algorithm_color_seclet:()=>Qp,algorithm_current_school:()=>Zu,algorithm_del_path:()=>qu,algorithm_delete_book:()=>Ep,algorithm_delete_books:()=>fp,algorithm_delete_books2:()=>gp,algorithm_divide_books:()=>Ip,algorithm_find_path:()=>Hu,algorithm_first_book:()=>_p,algorithm_fz_calc:()=>Vp,algorithm_fz_calc_first_min:()=>Yp,algorithm_fz_compare:()=>xp,algorithm_fz_move:()=>Bp,algorithm_fz_set_min:()=>Up,algorithm_get_book_num:()=>Cp,algorithm_get_current_location:()=>$p,algorithm_get_half_books:()=>mp,algorithm_hxdb_add:()=>jp,algorithm_hxdb_init_soldier:()=>Gp,algorithm_hxdb_last_line:()=>Wp,algorithm_hxdb_result:()=>Kp,algorithm_hxdb_stand_in_line:()=>Hp,algorithm_init_fzsf:()=>kp,algorithm_init_hxdb:()=>Xp,algorithm_init_jttl:()=>Dp,algorithm_move_recent:()=>ip,algorithm_new_path:()=>Wu,algorithm_next_book:()=>cp,algorithm_no_left:()=>zu,algorithm_no_path:()=>tp,algorithm_no_ring2:()=>dp,algorithm_not_home:()=>sp,algorithm_not_school:()=>op,algorithm_number_add:()=>Ap,algorithm_number_zero:()=>Rp,algorithm_prepare:()=>Xu,algorithm_prepare2:()=>Ju,algorithm_prepare_2_1:()=>ep,algorithm_prepare_2_2:()=>np,algorithm_print_book2:()=>Op,algorithm_print_divide:()=>yp,algorithm_print_jttl_answer:()=>Fp,algorithm_print_number:()=>Sp,algorithm_print_path:()=>Qu,algorithm_print_path2:()=>rp,algorithm_print_sequence:()=>Lp,algorithm_rabbit_add:()=>Pp,algorithm_rabbit_number_in_range:()=>bp,algorithm_rabbit_zero:()=>Np,algorithm_return_path:()=>$u,algorithm_set_path:()=>ju,algorithm_two_left:()=>Tp,algorithm_void_path:()=>zp,algorithm_yes_ring2:()=>hp,hanoi_init:()=>ap,hanoi_init_offline:()=>qp,hanoi_move:()=>lp});var y={};__webpack_require__.r(y),__webpack_require__.d(y,{requests_attribute:()=>n_,requests_get:()=>t_,requests_get_old:()=>Zp,requests_method:()=>i_,requests_post:()=>e_});var D={};__webpack_require__.r(D),__webpack_require__.d(D,{cv_destroy_all:()=>u_,cv_face_classifier:()=>d_,cv_face_detect:()=>h_,cv_face_detect_all:()=>c_,cv_line_rect:()=>p_,cv_read_image:()=>o_,cv_show_image:()=>r_,cv_text:()=>__,cv_waitkey:()=>l_,cv_write_image:()=>a_});var N={};__webpack_require__.r(N),__webpack_require__.d(N,{array_create:()=>b_,array_toarray:()=>W_,dataframe_aggregate_func:()=>Ud,dataframe_create:()=>E_,dataframe_create_from_index:()=>g_,dataframe_create_from_one_index:()=>f_,dataframe_fillna:()=>Cd,dataframe_get:()=>X_,dataframe_groupby:()=>xd,dataframe_head_tail:()=>Vd,dataframe_info:()=>Ld,dataframe_median:()=>Sd,dataframe_select:()=>Yd,dataframe_sort_values:()=>kd,matrix_multiplication:()=>Rd,matrix_transpose:()=>Md,numpy_argmin_template_match:()=>cd,numpy_astype:()=>_d,numpy_c_:()=>gd,numpy_dot:()=>bd,numpy_linalg_det:()=>Od,numpy_linalg_inv:()=>Ad,numpy_max:()=>Dd,numpy_mean:()=>Td,numpy_mean_digit:()=>hd,numpy_min:()=>yd,numpy_ones:()=>fd,numpy_random_random:()=>Fd,numpy_reshape:()=>pd,numpy_shape:()=>ud,numpy_size:()=>Nd,numpy_square:()=>vd,numpy_std:()=>Id,numpy_sum:()=>wd,numpy_trig:()=>x_,pandas_drop_columns:()=>Ed,pandas_dropna:()=>md,pandas_readcsv:()=>B_,pl_axes:()=>L_,pl_bar:()=>P_,pl_hist:()=>V_,pl_label:()=>N_,pl_legend:()=>y_,pl_pie:()=>k_,pl_plot:()=>S_,pl_plot_bar:()=>v_,pl_plot_easy:()=>A_,pl_plot_scatter:()=>w_,pl_plot_xy:()=>F_,pl_savefig:()=>G_,pl_show:()=>C_,pl_subplot:()=>U_,pl_text:()=>H_,pl_ticks:()=>Y_,pl_title:()=>D_,plot_axes:()=>$_,plot_bar:()=>nd,plot_cla:()=>Bd,plot_hist:()=>sd,plot_label:()=>J_,plot_legend:()=>z_,plot_pie:()=>id,plot_plot:()=>K_,plot_plot_bar:()=>Z_,plot_plot_easy:()=>j_,plot_plot_scatter:()=>td,plot_plot_xy:()=>ed,plot_savefig:()=>ad,plot_show:()=>q_,plot_subplot:()=>rd,plot_text:()=>ld,plot_ticks:()=>od,plot_title:()=>Q_,py_sum:()=>Pd,pylab_imshow:()=>dd,series_create:()=>I_,series_create_from_index:()=>m_,series_create_from_text:()=>O_,series_get_num:()=>R_,series_index_value:()=>M_});var b={};__webpack_require__.r(b),__webpack_require__.d(b,{ds_add_node_by_attr:()=>zd,ds_add_node_by_name:()=>$d,ds_create_linkedlist:()=>Gd,ds_create_linkedlist_container:()=>Hd,ds_create_linkedlist_item:()=>Wd,ds_create_node:()=>jd,ds_del_node_by_attr:()=>Jd,ds_del_node_by_name:()=>Qd,ds_get_node_attr:()=>Kd,ds_reverse_linkedlist:()=>Zd,ds_set_node_attr:()=>qd});var v={};__webpack_require__.r(v),__webpack_require__.d(v,{factory_block:()=>ph,factory_block_return:()=>_h,factory_block_return_with_textarea:()=>hh,factory_block_with_textarea:()=>dh,factory_callMethod_noreturn:()=>lh,factory_callMethod_return:()=>uh,factory_create_with_container:()=>sh,factory_create_with_item:()=>oh,factory_declare:()=>ah,factory_from_import:()=>eh,factory_function_noreturn:()=>ih,factory_function_return:()=>rh,factory_import:()=>nh});var w={};__webpack_require__.r(w),__webpack_require__.d(w,{hardware_arduino_analog_read:()=>gh,hardware_arduino_analog_write:()=>fh,hardware_arduino_digital_read:()=>Eh,hardware_arduino_digital_write:()=>mh,hardware_arduino_start:()=>Th,inout_highlow:()=>Ih});var F={};__webpack_require__.r(F),__webpack_require__.d(F,{inout_input:()=>Oh,inout_print:()=>Mh,inout_print_container:()=>yh,inout_print_end:()=>Ah,inout_print_inline:()=>Rh,inout_print_item:()=>Dh,inout_print_many:()=>Lh,inout_type_input:()=>Sh,pyinout_type_input:()=>Ch});var P={};__webpack_require__.r(P),__webpack_require__.d(P,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Zh,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Jh,IOT_EMQX_PING:()=>zh,IOT_FORMATTING:()=>qh,IOT_FORMAT_STRING:()=>$h,IOT_MIXIO_NTP:()=>Qh,IOT_MIXIO_PUBLISH:()=>Uh,IOT_MIXIO_SUBSCRIBE:()=>Bh,IOT_MIXIO_UNSUBSCRIBE:()=>Xh,iot_checkonenet:()=>uc,iot_client_onboard:()=>nc,iot_create_with_item:()=>Yh,iot_http_client:()=>ic,iot_http_data:()=>sc,iot_mixio_check:()=>Wh,iot_mixio_connect:()=>xh,iot_mixio_connect_only:()=>Hh,iot_mixio_disconnect:()=>Gh,iot_mixio_format_msg:()=>Kh,iot_mixio_format_topic:()=>jh,iot_mixly_key:()=>ec,iot_mixly_key_py:()=>tc,iot_mqtt_client:()=>oc,iot_mqtt_data:()=>rc,iot_onenet_check:()=>wh,iot_onenet_connect:()=>bh,iot_onenet_disconnect:()=>vh,iot_onenet_publish:()=>Ph,iot_onenet_publish_dict:()=>Fh,iot_onenetconnect:()=>ac,iot_onenetdisconnect:()=>lc,iot_publish:()=>pc,iot_publish_container:()=>kh,iot_publish_item:()=>Vh});var k={};__webpack_require__.r(k),__webpack_require__.d(k,{pins_analog_read:()=>Tc,pins_analog_write:()=>cc,pins_digital_read:()=>hc,pins_digital_write:()=>dc});var V={};__webpack_require__.r(V),__webpack_require__.d(V,{serial_close:()=>fc,serial_open:()=>Ic,serial_read_b:()=>Ec,serial_write:()=>mc});var Y={};__webpack_require__.r(Y),__webpack_require__.d(Y,{sklearn_DecisionTreeClassifier_Regressor:()=>Nc,sklearn_GaussianNB:()=>wc,sklearn_KMeans:()=>kc,sklearn_KMeans_fit:()=>Vc,sklearn_KNeighborsClassifier_Regressor:()=>vc,sklearn_LinearRegression:()=>yc,sklearn_RandomForestClassifier_Regressor:()=>bc,sklearn_Ridge:()=>Dc,sklearn_cluster_centers_labels_inertia:()=>Hc,sklearn_coef_intercept:()=>Gc,sklearn_data_target:()=>Sc,sklearn_fit:()=>Yc,sklearn_fit_no_target:()=>xc,sklearn_load:()=>Ac,sklearn_make_blobs:()=>Rc,sklearn_make_classification:()=>Oc,sklearn_make_regression:()=>Mc,sklearn_pca:()=>Fc,sklearn_pca_fit_transform:()=>Pc,sklearn_predict:()=>Uc,sklearn_save_load_model:()=>Wc,sklearn_score:()=>Bc,sklearn_score_no_target:()=>Xc,sklearn_train_test_split:()=>Cc,sklearn_train_test_split_no_target:()=>Lc});var x={};__webpack_require__.r(x),__webpack_require__.d(x,{Panic_with_status_code:()=>zc,base_delay:()=>Kc,controls_millis:()=>qc,controls_mstimer2:()=>Jc,controls_mstimer2_start:()=>Zc,controls_mstimer2_stop:()=>tT,reset:()=>Qc,time_localtime:()=>$c,time_sleep:()=>eT});var U={};__webpack_require__.r(U),__webpack_require__.d(U,{turtle_bgcolor:()=>MT,turtle_bgcolor_hex:()=>bT,turtle_bgcolor_hex_new:()=>CT,turtle_circle:()=>fT,turtle_circle_advanced:()=>gT,turtle_clear:()=>hT,turtle_clone:()=>ST,turtle_color:()=>DT,turtle_color_hex:()=>NT,turtle_color_seclet:()=>BT,turtle_create:()=>iT,turtle_done:()=>sT,turtle_exitonclick:()=>oT,turtle_fill:()=>TT,turtle_fillcolor:()=>AT,turtle_fillcolor_hex:()=>wT,turtle_fillcolor_hex_new:()=>yT,turtle_getscreen:()=>XT,turtle_goto:()=>pT,turtle_listen:()=>jT,turtle_move:()=>rT,turtle_numinput:()=>kT,turtle_onclick:()=>HT,turtle_onkey:()=>GT,turtle_ontimer:()=>WT,turtle_pencolor:()=>RT,turtle_pencolor_hex:()=>vT,turtle_pencolor_hex_new:()=>LT,turtle_penup:()=>cT,turtle_pos_shape:()=>dT,turtle_rotate:()=>aT,turtle_screen_delay:()=>uT,turtle_screen_savefig:()=>KT,turtle_setheading:()=>lT,turtle_setxy:()=>_T,turtle_shape:()=>FT,turtle_shapesize:()=>PT,turtle_size:()=>mT,turtle_size_speed:()=>IT,turtle_speed:()=>ET,turtle_textinput:()=>VT,turtle_visible:()=>OT,turtle_write:()=>YT,turtle_write_format:()=>xT,turtle_write_format_skulpt:()=>UT});var B={};__webpack_require__.r(B),__webpack_require__.d(B,{AI_ChooseAndGet:()=>qT,AI_Face_match:()=>ZT,AI_ImageClassify:()=>JT,AI_ImageClassify_Func:()=>oI,AI_Nlp:()=>eI,AI_Nlp_Func:()=>aI,AI_Nlp_Func_sim:()=>lI,AI_Nlp_Sim:()=>nI,AI_Nlp_Topic:()=>iI,AI_Nlp_newsSummary:()=>sI,AI_Ocr:()=>tI,AI_Ocr_Func:()=>rI,AI_Speech_asr:()=>QT,AI_Speech_synthesis:()=>zT,AI_audio:()=>uI,AI_client:()=>$T,AI_photo:()=>pI,AI_result:()=>_I});var X={};__webpack_require__.r(X),__webpack_require__.d(X,{algorithm_add_path:()=>mI,algorithm_add_school:()=>hI,algorithm_all_books:()=>FI,algorithm_all_books_sequence:()=>wI,algorithm_book_scale:()=>HI,algorithm_check_feet:()=>JI,algorithm_chick_calculate:()=>QI,algorithm_color_seclet:()=>Tm,algorithm_current_school:()=>RI,algorithm_del_path:()=>EI,algorithm_delete_book:()=>XI,algorithm_divide_books:()=>UI,algorithm_find_path:()=>cI,algorithm_first_book:()=>PI,algorithm_fz_calc:()=>nm,algorithm_fz_compare:()=>im,algorithm_fz_move:()=>om,algorithm_fz_set_min:()=>sm,algorithm_get_current_location:()=>hm,algorithm_get_half_books:()=>BI,algorithm_hxdb_add:()=>pm,algorithm_hxdb_init_soldier:()=>am,algorithm_hxdb_last_line:()=>um,algorithm_hxdb_result:()=>_m,algorithm_hxdb_stand_in_line:()=>lm,algorithm_init_fzsf:()=>em,algorithm_init_hxdb:()=>rm,algorithm_init_jttl:()=>qI,algorithm_move_recent:()=>LI,algorithm_new_path:()=>TI,algorithm_next_book:()=>YI,algorithm_no_left:()=>gI,algorithm_no_path:()=>AI,algorithm_no_ring2:()=>kI,algorithm_not_home:()=>yI,algorithm_not_school:()=>DI,algorithm_number_add:()=>jI,algorithm_number_zero:()=>WI,algorithm_prepare:()=>dI,algorithm_prepare2:()=>MI,algorithm_prepare_2_1:()=>SI,algorithm_prepare_2_2:()=>CI,algorithm_print_book2:()=>GI,algorithm_print_jttl_answer:()=>ZI,algorithm_print_number:()=>KI,algorithm_print_path:()=>OI,algorithm_print_path2:()=>NI,algorithm_rabbit_add:()=>tm,algorithm_rabbit_number_in_range:()=>zI,algorithm_rabbit_zero:()=>$I,algorithm_return_path:()=>fI,algorithm_set_path:()=>II,algorithm_two_left:()=>xI,algorithm_void_path:()=>cm,algorithm_yes_ring2:()=>VI,hanoi_init:()=>bI,hanoi_init_offline:()=>dm,hanoi_move:()=>vI});var G={};__webpack_require__.r(G),__webpack_require__.d(G,{requests_attribute:()=>fm,requests_get:()=>mm,requests_get_old:()=>Im,requests_method:()=>gm,requests_post:()=>Em});var H={};__webpack_require__.r(H),__webpack_require__.d(H,{array_create:()=>Vm,array_toarray:()=>Qm,dataframe_aggregate_func:()=>jE,dataframe_create:()=>Am,dataframe_create_from_index:()=>Sm,dataframe_create_from_one_index:()=>Cm,dataframe_fillna:()=>vE,dataframe_get:()=>qm,dataframe_groupby:()=>WE,dataframe_head_tail:()=>GE,dataframe_info:()=>wE,dataframe_median:()=>bE,dataframe_select:()=>HE,dataframe_sort_values:()=>XE,matrix_multiplication:()=>DE,matrix_transpose:()=>yE,numpy_argmin_template_match:()=>gE,numpy_astype:()=>mE,numpy_c_:()=>CE,numpy_dot:()=>VE,numpy_linalg_det:()=>LE,numpy_linalg_inv:()=>NE,numpy_max:()=>PE,numpy_mean:()=>OE,numpy_mean_digit:()=>fE,numpy_min:()=>FE,numpy_ones:()=>SE,numpy_random_random:()=>UE,numpy_reshape:()=>IE,numpy_shape:()=>TE,numpy_size:()=>kE,numpy_square:()=>YE,numpy_std:()=>ME,numpy_sum:()=>xE,numpy_trig:()=>Wm,pandas_drop_columns:()=>AE,pandas_dropna:()=>RE,pandas_readcsv:()=>Km,pl_axes:()=>bm,pl_bar:()=>Bm,pl_hist:()=>Gm,pl_label:()=>km,pl_legend:()=>Fm,pl_pie:()=>Xm,pl_plot:()=>wm,pl_plot_bar:()=>Ym,pl_plot_easy:()=>vm,pl_plot_scatter:()=>xm,pl_plot_xy:()=>Um,pl_savefig:()=>$m,pl_show:()=>Nm,pl_subplot:()=>jm,pl_text:()=>zm,pl_ticks:()=>Hm,pl_title:()=>Pm,plot_axes:()=>Zm,plot_bar:()=>lE,plot_cla:()=>KE,plot_hist:()=>pE,plot_label:()=>sE,plot_legend:()=>nE,plot_pie:()=>uE,plot_plot:()=>eE,plot_plot_bar:()=>oE,plot_plot_easy:()=>tE,plot_plot_scatter:()=>rE,plot_plot_xy:()=>aE,plot_savefig:()=>hE,plot_show:()=>Jm,plot_subplot:()=>dE,plot_text:()=>cE,plot_ticks:()=>_E,plot_title:()=>iE,py_sum:()=>BE,pylab_imshow:()=>EE,series_create:()=>Mm,series_create_from_index:()=>Rm,series_create_from_text:()=>Lm,series_get_num:()=>Dm,series_index_value:()=>ym});var W={};__webpack_require__.r(W),__webpack_require__.d(W,{ds_add_node_by_attr:()=>ZE,ds_add_node_by_name:()=>JE,ds_create_linkedlist:()=>qE,ds_create_node:()=>$E,ds_del_node_by_attr:()=>ef,ds_del_node_by_name:()=>tf,ds_get_node_attr:()=>zE,ds_reverse_linkedlist:()=>nf,ds_set_node_attr:()=>QE});var j={};__webpack_require__.r(j),__webpack_require__.d(j,{factory_block:()=>_f,factory_block_return:()=>df,factory_block_return_with_textarea:()=>cf,factory_block_with_textarea:()=>hf,factory_callMethod_noreturn:()=>uf,factory_callMethod_return:()=>pf,factory_declare:()=>lf,factory_from_import:()=>sf,factory_function_noreturn:()=>rf,factory_function_return:()=>af,factory_import:()=>of});var K={};__webpack_require__.r(K),__webpack_require__.d(K,{hardware_arduino_analog_read:()=>ff,hardware_arduino_analog_write:()=>gf,hardware_arduino_digital_read:()=>Ef,hardware_arduino_digital_write:()=>mf,hardware_arduino_start:()=>Tf,inout_highlow:()=>If});var q={};__webpack_require__.r(q),__webpack_require__.d(q,{inout_input:()=>Of,inout_print:()=>Mf,inout_print_end:()=>Af,inout_print_inline:()=>Rf,inout_print_many:()=>Lf,inout_type_input:()=>Sf,pyinout_type_input:()=>Cf});var z={};__webpack_require__.r(z),__webpack_require__.d(z,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>xf,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Xf,IOT_EMQX_PING:()=>Gf,IOT_FORMATTING:()=>Vf,IOT_FORMAT_STRING:()=>Yf,IOT_MIXIO_NTP:()=>Hf,IOT_MIXIO_PUBLISH:()=>Df,IOT_MIXIO_SUBSCRIBE:()=>Nf,IOT_MIXIO_UNSUBSCRIBE:()=>bf,iot_mixio_check:()=>Ff,iot_mixio_connect:()=>yf,iot_mixio_connect_only:()=>wf,iot_mixio_disconnect:()=>vf,iot_mixio_format_msg:()=>kf,iot_mixio_format_topic:()=>Pf,iot_mixly_key:()=>Uf,iot_mixly_key_py:()=>Bf});var Q={};__webpack_require__.r(Q),__webpack_require__.d(Q,{pins_analog_read:()=>$f,pins_analog_write:()=>qf,pins_digital:()=>Wf,pins_digital_read:()=>Kf,pins_digital_write:()=>jf});var J={};__webpack_require__.r(J),__webpack_require__.d(J,{serial_close:()=>Zf,serial_open:()=>zf,serial_read_b:()=>Jf,serial_write:()=>Qf});var Z={};__webpack_require__.r(Z),__webpack_require__.d(Z,{sklearn_DecisionTreeClassifier_Regressor:()=>ug,sklearn_GaussianNB:()=>dg,sklearn_KMeans:()=>Tg,sklearn_KMeans_fit:()=>Ig,sklearn_KNeighborsClassifier_Regressor:()=>_g,sklearn_LinearRegression:()=>ag,sklearn_RandomForestClassifier_Regressor:()=>pg,sklearn_Ridge:()=>lg,sklearn_cluster_centers_labels_inertia:()=>Rg,sklearn_coef_intercept:()=>Mg,sklearn_data_target:()=>sg,sklearn_fit:()=>mg,sklearn_fit_no_target:()=>Eg,sklearn_load:()=>ig,sklearn_make_blobs:()=>ng,sklearn_make_classification:()=>tg,sklearn_make_regression:()=>eg,sklearn_pca:()=>hg,sklearn_pca_fit_transform:()=>cg,sklearn_predict:()=>fg,sklearn_save_load_model:()=>Ag,sklearn_score:()=>gg,sklearn_score_no_target:()=>Og,sklearn_train_test_split:()=>og,sklearn_train_test_split_no_target:()=>rg});var tt={};__webpack_require__.r(tt),__webpack_require__.d(tt,{controls_end_program:()=>Cg,controls_millis:()=>Sg,time_localtime:()=>Lg});var et={};__webpack_require__.r(et),__webpack_require__.d(et,{turtle_bgcolor:()=>Kg,turtle_bgcolor_hex:()=>Qg,turtle_bgcolor_hex_new:()=>tO,turtle_circle:()=>Gg,turtle_circle_advanced:()=>Wg,turtle_clear:()=>Vg,turtle_clone:()=>zg,turtle_color:()=>sO,turtle_color_hex:()=>iO,turtle_color_seclet:()=>dO,turtle_create:()=>yg,turtle_done:()=>Dg,turtle_exitonclick:()=>Ng,turtle_fill:()=>xg,turtle_fillcolor:()=>$g,turtle_fillcolor_hex:()=>Zg,turtle_fillcolor_hex_new:()=>nO,turtle_getscreen:()=>hO,turtle_goto:()=>Pg,turtle_listen:()=>mO,turtle_move:()=>bg,turtle_numinput:()=>lO,turtle_onclick:()=>TO,turtle_onkey:()=>cO,turtle_ontimer:()=>IO,turtle_pencolor:()=>qg,turtle_pencolor_hex:()=>Jg,turtle_pencolor_hex_new:()=>eO,turtle_penup:()=>Yg,turtle_pos_shape:()=>kg,turtle_rotate:()=>vg,turtle_screen_delay:()=>Fg,turtle_screen_savefig:()=>EO,turtle_setheading:()=>wg,turtle_setxy:()=>Hg,turtle_shape:()=>oO,turtle_shapesize:()=>rO,turtle_size:()=>Bg,turtle_size_speed:()=>Ug,turtle_speed:()=>Xg,turtle_textinput:()=>aO,turtle_visible:()=>jg,turtle_write:()=>uO,turtle_write_format:()=>pO,turtle_write_format_skulpt:()=>_O});var nt={};__webpack_require__.r(nt),__webpack_require__.d(nt,{COPYFILE_EXCL:()=>ZO,COPYFILE_FICLONE:()=>tM,COPYFILE_FICLONE_FORCE:()=>eM,F_OK:()=>$O,O_APPEND:()=>uM,O_CREAT:()=>oM,O_DIRECT:()=>IM,O_DIRECTORY:()=>pM,O_DSYNC:()=>cM,O_EXCL:()=>rM,O_NOATIME:()=>_M,O_NOCTTY:()=>aM,O_NOFOLLOW:()=>dM,O_NONBLOCK:()=>mM,O_RDONLY:()=>nM,O_RDWR:()=>sM,O_SYMLINK:()=>TM,O_SYNC:()=>hM,O_TRUNC:()=>lM,O_WRONLY:()=>iM,R_OK:()=>zO,S_IFBLK:()=>MM,S_IFCHR:()=>AM,S_IFDIR:()=>RM,S_IFIFO:()=>SM,S_IFLNK:()=>gM,S_IFMT:()=>EM,S_IFREG:()=>OM,S_IFSOCK:()=>fM,S_IRGRP:()=>FM,S_IROTH:()=>YM,S_IRUSR:()=>NM,S_IRWXG:()=>wM,S_IRWXO:()=>VM,S_IRWXU:()=>DM,S_ISGID:()=>LM,S_ISUID:()=>CM,S_ISVTX:()=>yM,S_IWGRP:()=>PM,S_IWOTH:()=>xM,S_IWUSR:()=>bM,S_IXGRP:()=>kM,S_IXOTH:()=>UM,S_IXUSR:()=>vM,UV_FS_O_FILEMAP:()=>BM,W_OK:()=>QO,X_OK:()=>JO,size_max:()=>XM});var it={};__webpack_require__.r(it),__webpack_require__.d(it,{FileHandle:()=>uS,access:()=>PS,appendFile:()=>gS,chmod:()=>DS,chown:()=>LS,constants:()=>nt,copyFile:()=>YS,cp:()=>US,exists:()=>_S,lchmod:()=>NS,lchown:()=>yS,link:()=>AS,lstat:()=>hS,lutimes:()=>vS,mkdir:()=>MS,mkdtemp:()=>VS,open:()=>mS,opendir:()=>xS,readFile:()=>ES,readdir:()=>RS,readlink:()=>CS,realpath:()=>wS,rename:()=>pS,rm:()=>kS,rmdir:()=>OS,stat:()=>dS,statfs:()=>BS,symlink:()=>SS,truncate:()=>cS,unlink:()=>TS,utimes:()=>bS,watch:()=>FS,writeFile:()=>fS});var st={};__webpack_require__.r(st),__webpack_require__.d(st,{BigIntStatsFs:()=>$M,Dir:()=>iS,Dirent:()=>nS,ReadStream:()=>oS,Stats:()=>jM,StatsFs:()=>qM,WriteStream:()=>rS,_synced:()=>JR,access:()=>MC,accessSync:()=>KA,appendFile:()=>JS,appendFileSync:()=>RA,chmod:()=>mC,chmodSync:()=>XA,chown:()=>TC,chownSync:()=>UA,chroot:()=>iA,close:()=>tC,closeSync:()=>SA,constants:()=>nt,copyFile:()=>bC,copyFileSync:()=>zA,cp:()=>PC,cpSync:()=>tS,createReadStream:()=>LC,createWriteStream:()=>yC,exists:()=>HS,existsSync:()=>dA,fchmod:()=>aC,fchmodSync:()=>vA,fchown:()=>rC,fchownSync:()=>bA,fdatasync:()=>iC,fdatasyncSync:()=>yA,fstat:()=>ZS,fstatSync:()=>AA,fsync:()=>nC,fsyncSync:()=>LA,ftruncate:()=>eC,ftruncateSync:()=>CA,futimes:()=>lC,futimesSync:()=>wA,lchmod:()=>EC,lchmodSync:()=>GA,lchown:()=>IC,lchownSync:()=>BA,link:()=>dC,linkSync:()=>VA,lopenSync:()=>fA,lstat:()=>jS,lstatSync:()=>cA,lutimes:()=>gC,lutimesSync:()=>WA,mkdir:()=>pC,mkdirSync:()=>PA,mkdtemp:()=>NC,mkdtempSync:()=>$A,mount:()=>$R,mountObject:()=>eA,mounts:()=>qR,open:()=>$S,openAsBlob:()=>VC,openSync:()=>EA,opendir:()=>FC,opendirSync:()=>ZA,promises:()=>it,read:()=>oC,readFile:()=>zS,readFileSync:()=>OA,readSync:()=>NA,readdir:()=>_C,readdirSync:()=>kA,readlink:()=>cC,readlinkSync:()=>xA,readv:()=>vC,readvSync:()=>QA,realpath:()=>OC,realpathSync:()=>jA,rename:()=>GS,renameSync:()=>_A,rm:()=>DC,rmSync:()=>qA,rmdir:()=>uC,rmdirSync:()=>FA,stat:()=>WS,statSync:()=>hA,statfs:()=>kC,statfsSync:()=>eS,symlink:()=>hC,symlinkSync:()=>YA,truncate:()=>KS,truncateSync:()=>TA,umount:()=>zR,unlink:()=>qS,unlinkSync:()=>IA,unwatchFile:()=>SC,utimes:()=>fC,utimesSync:()=>HA,watch:()=>CC,watchFile:()=>AC,write:()=>sC,writeFile:()=>QS,writeFileSync:()=>MA,writeSync:()=>DA,writev:()=>wC,writevSync:()=>JA});const ot=Blockly;Object.assign(ot.Lang.ZhHans,{PYTHON_PYODIDE_IMAGE:"图像",PYTHON_PYODIDE_LOADING:"Python3内核载入中...",PYTHON_PYODIDE_FILE_SYSTEM:"本地文件系统",PYTHON_PYODIDE_LOAD_FILE_SYSTEM:"载入本地文件夹"}),Object.assign(ot.Lang.ZhHant,{PYTHON_PYODIDE_IMAGE:"影像",PYTHON_PYODIDE_LOADING:"Python3核心載入...",PYTHON_PYODIDE_FILE_SYSTEM:"本機檔案系統",PYTHON_PYODIDE_LOAD_FILE_SYSTEM:"載入本機資料夾"}),Object.assign(ot.Lang.En,{PYTHON_PYODIDE_IMAGE:"Image",PYTHON_PYODIDE_LOADING:"Python3 kernel loading...",PYTHON_PYODIDE_FILE_SYSTEM:"Local File System",PYTHON_PYODIDE_LOAD_FILE_SYSTEM:"Load Local Folder"}),Object.assign(ot.Lang.ZhHans.MSG,{}),Object.assign(ot.Lang.ZhHant.MSG,{}),Object.assign(ot.Lang.En.MSG,{});const rt=Mixly,at={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var n=Object.create(null),i=0;i1&&(r+=i)):n=r}else n="i";return n}},lt=at; /** * @license * Visual Blocks Editor @@ -28,4 +28,4 @@ var i=n(8287),s=i.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function r(t,e * See the License for the specific language governing permissions and * limitations under the License. */ -class ut{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var n=t.split(","),i=0;i0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_if_elseif");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),n.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_if_elseif":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},yt={init:function(){this.setColour(Mt),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Dt={init:function(){this.setColour(Mt),this.appendValueInput("LIST").setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Nt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,n=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_except");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),n.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_except":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},vt={init:function(){this.setColour(Mt);var t=new ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},wt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ft={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Nt.OPERATORS=[[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],vt.OPERATORS=[[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Pt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Vt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Yt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},xt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Ut={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Bt={init:function(){this.jsonInit({message0:ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Mt,tooltip:ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Xt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_STAT),this.setOutput(!0)}},Gt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ht={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Wt={init:function(){this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ot.FieldDropdown([[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Mt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},jt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},qt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},$t={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET+ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},zt={init:function(){this.setColour(Mt),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Qt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Jt=230;ot.FieldTextInput.math_number_validator=function(t){return String(t)},ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Zt={init:function(){this.setColour(Jt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},te={init:function(){this.setColour(Jt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},ee={init:function(){this.setColour(Jt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ne={init:function(){this.setColour(Jt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ie={init:function(){this.setColour(Jt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},se={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},oe={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},re={init:function(){var t=[[ot.Msg.MATH_BIN,"bin"],[ot.Msg.MATH_OCT,"oct"],[ot.Msg.MATH_HEX,"hex"]];this.setColour(Jt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ae={init:function(){var t=[[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[ot.Msg.MATH_ABS,"fabs"],[ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(Jt),this.appendValueInput("A").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ot.Msg.MIXLY_MAX,"max"],[ot.Msg.MIXLY_MIN,"min"]];this.setColour(Jt),this.appendValueInput("A").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ue={init:function(){var t=[[ot.Msg.MATH_TWO,"two"],[ot.Msg.MATH_EIGHT,"eight"],[ot.Msg.MATH_TEN,"ten"],[ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Jt),this.appendDummyInput("").appendField(ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ot.FieldDropdown(t),"OP").appendField(ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ot.Msg.MATH_ZHW).appendField(new ot.FieldDropdown(t),"OP2").appendField(ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),n={two:ot.Msg.MATH_Before_two,eight:ot.Msg.MATH_Before_eight,ten:ot.Msg.MATH_Before_ten,sixteen:ot.Msg.MATH_Before_sixteen},i=e.getFieldValue("OP2"),s={two:ot.Msg.MATH_Behind_two,eight:ot.Msg.MATH_Behind_eight,ten:ot.Msg.MATH_Behind_ten,sixteen:ot.Msg.MATH_Behind_sixteen};return n[t]+s[i]}))}},pe={init:function(){var t=[[ot.Msg.LANG_MATH_INT,"int"],[ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Jt),this.setOutput(!0,Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),n={int:ot.Msg.LANG_MATH_INT,float:ot.Msg.LANG_MATH_FLOAT_RANDOM};return ot.Msg.MATH_RANDOM_INT_TOOLTIP+n[t]}))}},_e={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},de={init:function(){this.setColour(Jt),this.appendValueInput("NUM",Number).appendField(ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},he={init:function(){this.setColour(Jt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},ce={init:function(){this.setColour(Jt),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Te={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MATH_ROUND).appendField(ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Ie={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"],[ot.Msg.MIXLY_TO_BITES,"b"],[ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Jt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},me={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Jt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ee=de,fe={init:function(){this.setColour(Jt),this.appendValueInput("VAR").appendField(ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ge={init:function(){this.setColour(Jt),this.itemCount_=1,this.setMutator(new ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ot.Msg.MIXLY_PRODUCT+ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ae={init:function(){this.setColour(Oe),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput("",ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ot.FieldImage(e,7,12,'"')}},Se={init:function(){this.setColour(Oe),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ce={init:function(){this.setColour(Oe),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Le={init:function(){this.setColour(Oe),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},ye={init:function(){this.setColour(Oe),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},De={init:function(){this.setColour(Oe),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ne={init:function(){this.WHERE_OPTIONS=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.TEXT_GET_INDEX_RANDOM+1+ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Oe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.LISTS_GET_INDEX_GET,"MODE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=t.getFieldValue("WHERE"),i="";switch(e+" "+n){case"GET FROM_START":case"GET FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(i+=" "+ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),n={FROM_START:ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ot.Msg.TEXT_GET_INDEX_RANDOM};return ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+n[t]+"n"+ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var n="FROM_START"==e||"FROM_END"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},be={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Oe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+ot.Msg.TEXT_CHARAT2)}},ve={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Oe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},we={init:function(){this.WHERE_OPTIONS_1=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Oe),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ot.INPUT_VALUE;t.setAttribute("at1",e);var n=this.getInput("AT2").type==ot.INPUT_VALUE;return t.setAttribute("at2",n),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),n="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,n)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var n=new ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(n){var i="FROM_START"==n||"FROM_END"==n;if(i!=e){var s=this.sourceBlock_;return s.updateAt_(t,i),s.setFieldValue(n,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(n,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Fe={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Oe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Pe={init:function(){var t=[[ot.Msg.MIXLY_EQUALS,"==="],[ot.Msg.MIXLY_STARTSWITH,"startswith"],[ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Oe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ke={init:function(){this.setColour(Oe),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_COMPARETO_HELP)}},Ve={init:function(){var t=[[ot.Msg.TEXT_UPPER,"upper"],[ot.Msg.TEXT_TITLE,"title"],[ot.Msg.TEXT_CAPITALIZE,"capitalize"],[ot.Msg.TEXT_SWAPCASE,"swapcase"],[ot.Msg.TEXT_LOWER,"lower"]];this.setColour(Oe),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ye={init:function(){var t=[[ot.Msg.TEXT_LJUST,"ljust"],[ot.Msg.TEXT_CENTER,"center"],[ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(Oe),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},xe={init:function(){this.setColour(Oe),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_MID+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ue={init:function(){this.setColour(Oe),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Be={init:function(){this.setColour(Oe),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Xe={init:function(){this.setColour(Oe),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ge={init:function(){var t=[[ot.Msg.TEXT_TRIM_BOTH,"strip"],[ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Oe),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},He={init:function(){this.setColour(Oe),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Bn={init:function(){this.setColour(xn),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Xn={init:function(){this.setColour(xn),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Gn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_KEYS),this.setTooltip(ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Hn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_TOOLTIP)}},Wn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},jn={init:function(){this.setColour(xn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Kn={init:function(){this.setColour(xn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_DELETE_TOOLTIP)}},qn={init:function(){this.setColour(xn),this.appendValueInput("DICT2").setCheck("Dict").appendField(ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MID),this.setTooltip(ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$n={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_CLEAR),this.setTooltip(ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_ITEMS),this.setTooltip(ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Qn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_VALUES),this.setTooltip(ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Jn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_LENGTH),this.setTooltip(ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Zn={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_DELDICT),this.setTooltip(ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ti={init:function(){this.MODE=[[ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ot.FieldDropdown(this.MODE,(function(e){var n="INSERT"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},ei={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setTooltip(ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},ni={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ii={init:function(){this.setColour(xn),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},si={init:function(){this.setColour(xn),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},oi={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TO_JSON),this.setTooltip(ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},ri={init:function(){this.setColour(xn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ai={init:function(){this.setColour(xn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},li={init:function(){this.setColour(xn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TO_JSON),this.setTooltip(ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},ui=210,pi={init:function(){var t=ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ui),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},_i={init:function(){var t=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(ui),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},di={init:function(){var t=[[ot.Msg.LOGIC_OPERATION_AND,"AND"],[ot.Msg.LOGIC_OPERATION_OR,"OR"],[ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(ui),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},hi={init:function(){this.setColour(ui),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},ci={init:function(){var t=[[ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(ui),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ot.FieldDropdown(t),"BOOL"),this.setTooltip(ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Ti={init:function(){this.setColour(ui),this.setOutput(!0),this.appendDummyInput().appendField(ot.Msg.LOGIC_NULL),this.setTooltip(ot.Msg.LOGIC_NULL_TOOLTIP)}},Ii={init:function(){this.setColour(ui),this.appendValueInput("A"),this.appendValueInput("B").appendField(ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},mi={init:function(){var t=[[ot.Msg.TEXT_APPEND_TO,"in"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(ui),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.IN)}},Ei={init:function(){var t=[[ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(ui),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},fi={init:function(){this.setColour(ui),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},gi={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Oi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Mi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},Ri={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXPY_TEXT_ENCODE).appendField(new ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},Ai={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Si={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Ci={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+i}))}},Li={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MICROBIT_PYTHON_TYPE)}},yi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.HTML_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Di={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Ni={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},bi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const vi={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},wi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Fi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+i}))}},ki={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Vi={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ot.Msg.MIXLY_ESP32_SET+{mkdir:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Yi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},xi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Ui={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.HTML_FILE,"isfile"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Bi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP+ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Xi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Gi={init:function(){var t=ot.Procedures.findLegalName("",this),e=new ot.FieldTextInput(t,ot.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new ot.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&ot.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(ot.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(ot.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(ot.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(ot.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=ot.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),ot.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{ot.Events.enable()}},mutationToDom:function(t){var e=ot.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var n=0;n"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vs={init:function(){this.setColour(bs),this.appendDummyInput().appendField(ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ys={init:function(){this.setColour(bs),this.appendDummyInput().appendField(ot.Msg.HTML_FORM_CONTENT).appendField(new ot.FieldDropdown([[ot.Msg.HTML_TEXT,"text"],[ot.Msg.HTML_EMAIL,"email"],[ot.Msg.HTML_NUMBER,"number"],[ot.Msg.HTML_PASSWORD,"password"],[ot.Msg.HTML_CHECKBOX,"checkbox"],[ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[ot.Msg.HTML_BUTTON,"button"],[ot.Msg.HTML_COLOUR,"colour"],[ot.Msg.HTML_DATE,"date"],[ot.Msg.HTML_LOCALTIME,"local time"],[ot.Msg.HTML_FILE,"file"],[ot.Msg.HTML_HIDDEN,"hidden"],[ot.Msg.HTML_IMAGE,"image"],[ot.Msg.HTML_MONTH,"month"],[ot.Msg.HTML_RANGE,"range"],[ot.Msg.HTML_RESET,"reset"],[ot.Msg.HTML_SEARCH,"search"],[ot.Msg.HTML_SUBMIT,"submit"],[ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ot.Msg.HTML_TIME,"time"],[ot.Msg.HTML_URL,"url"],[ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ot.Msg.HTML_NAME).appendField(new ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ot.Msg.HTML_VALUE).appendField(new ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xs={init:function(){this.setColour(bs),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Us={init:function(){this.setColour(bs),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(bs),this.appendDummyInput().appendField(ot.Msg.HTML_TEXT).appendField(new ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs=160,Gs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ot.FieldTable(""),"TEXT")}},Hs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT")}},Ws={init:function(){this.setColour(Xs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},js={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Ks={init:function(){this.setColour(Xs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},qs={init:function(){this.setColour(Xs),this.appendValueInput("VALUE").appendField(ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},$s={init:function(){this.setColour(Xs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,n){return"("+t+" <= "+e+") and "+l()+"("+t+", "+e+", "+n+") or "+u()+"("+t+", "+e+", "+n+")"},ot.isNumber(i)&&ot.isNumber(s)&&ot.isNumber(o))i=parseFloat(i),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==i%1&&0==s%1&&0==o%1?(i<=s?(s++,t=0==i&&1==o?s:i+", "+s,1!=o&&(t+=", "+o)):t=i+", "+--s+", -"+o,t="range("+t+")"):(t=i",GTE:">="};const Xa=function(t,e){var n=this.getFieldValue("OP"),i="&&"==n?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",i)||"False",o=e.valueToCode(this,"B",i)||"False";if("AND"==n)var r=s+" and "+o;else if("OR"==n)r=s+" or "+o;else if("NOR"==n)r="not("+s+"^"+o+")";else r=s+"^"+o;return[r,i]},Ga=function(t,e){var n=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",n)||"False"),n]},Ha=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Wa=function(t,e){return["None",e.ORDER_ATOMIC]},ja=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+n+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Ka=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},qa=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},$a=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},za=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Qa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ja=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Za=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},tl=function(t,e){var n=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+n+")\n"},el=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"()",e.ORDER_ATOMIC]},nl=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},il=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ol=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},rl=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},al=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ll=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ul=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},pl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},_l=function(t,e){var n=this.getFieldValue("MODE"),i=0;return i="start"==n?0:"current"==n?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+i+")\n"},dl=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},hl=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},cl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Tl=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Il=function(t,e){e.definitions_.import_os="import os";var n=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",e.ORDER_ATOMIC]},ml=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},El=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},fl=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("NAME"),ot.Procedures.NAME_TYPE),i=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(i=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],r=0;r\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},tu=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+n+"\n"},eu=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var s="<"+i+'>\n\t\n'+n+"\n";else s="<"+i+">\n"+n+"\n";return s},nu=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+n+"\n"},iu=function(t,e){var n=e.statementToCode(this,"DO"),i=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+i+" >\n"+n+"\n"},su=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},ou=function(t,e){return'"},ru=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},au=function(){return this.getFieldValue("TEXT")+"\n"},lu=function(t){return t.getFieldValue("TEXT")+"\n"},uu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},pu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},_u=function(){return""},du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},hu=function(t,e){for(var n=t.getFieldValue("NAME"),i=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+n.join("\n")+i.join("\n")+r.join("\n")+a.join("")+t+"while True:\n"+l.join("")+u.join("\n"):e.join("\n")+n.join("\n")+i.join("\n")+r.join("\n")+a.join("")+t+u.join("\n")},mu.scrubNakedValue=function(t){return t+"\n"},mu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},mu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},mu.scrub_=function(t,e,n){var i="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ot.utils.string.wrap(o,mu.COMMENT_WRAP-3),i+=mu.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",i&&(a="-"+a)),a};const Eu=205,fu={init:function(){this.setColour(Eu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CHOOSE_AND_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[ot.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[ot.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},gu={init:function(){this.setColour(Eu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[ot.Msg.MIXLY_AipSpeech,"AipSpeech"],[ot.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[ot.Msg.MIXLY_AipFace,"AipFace"],[ot.Msg.MIXLY_AipOcr,"AipOcr"],[ot.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ou={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_synthesis).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Mu={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_asr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_AipSpeech_File).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Ru={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipImageClassify).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Au={init:function(){this.setColour(Eu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[ot.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[ot.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[ot.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[ot.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[ot.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},Su={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipFace_match).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"1"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"2"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Cu={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipOcr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Lu={init:function(){this.setColour(Eu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[ot.Msg.MIXLY_AipOcr_webImage,"webImage"],[ot.Msg.MIXLY_AipOcr_idcard,"idcard"],[ot.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[ot.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[ot.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[ot.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[ot.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[ot.Msg.MIXLY_AipOcr_receipt,"receipt"],[ot.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[ot.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[ot.Msg.MIXLY_AipOcr_form,"tableRecognition"],[ot.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[ot.Msg.MIXLY_AipOcr_passport,"passport"],[ot.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},yu={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Du={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_Sim).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.OLED_STRING+"1").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.OLED_STRING+"2").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Nu={init:function(){this.setColour(Eu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_lexer,"lexer"],[ot.Msg.MIXLY_AipNlp_depParser,"depParser"],[ot.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[ot.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[ot.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[ot.Msg.MIXLY_AipNlp_keyword,"keyword"],[ot.Msg.MIXLY_AipNlp_topic,"topic"],[ot.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[ot.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},bu={init:function(){this.setColour(Eu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[ot.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},vu={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_topic).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},wu={init:function(){this.setColour(Eu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_summary).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(ot.Msg.MIXLY_LIST_LEN).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Fu={init:function(){this.setColour(Eu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(ot.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},Pu={init:function(){this.setColour(Eu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(ot.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},ku={init:function(){this.setColour(Eu),this.appendValueInput("AI").appendField(ot.Msg.MIXPY_AI_RESULT).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"Image"],[ot.Msg.MIXLY_AipSpeech_asr,"Speech"],[ot.Msg.MIXLY_AipFace_match,"Face"],[ot.Msg.MIXLY_AipOcr,"Ocr"],[ot.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Vu="#526FC3",Yu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},xu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Uu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Bu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},Xu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Gu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Hu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Wu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ju={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},Ku={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},qu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$u={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},zu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Qu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ju={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Zu={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},tp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},ep={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},np={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ip={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},sp={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},op={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},rp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ap={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},lp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},up={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},pp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},_p={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},dp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},cp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Tp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ip={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ep={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new ot.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},fp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},gp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Op={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Mp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField("n"+ot.Msg.MIXLY_VALUE2).appendField(new ot.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Rp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ap={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Sp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Cp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Lp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},yp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Dp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Np={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},bp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},vp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},wp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Fp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Pp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},kp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Vp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Yp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},xp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new ot.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Up={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("使士兵").appendField(new ot.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Bp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("剩余").appendField(new ot.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Xp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Gp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setTooltip(""),this.setHelpUrl("")}},Hp={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Vu),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},Wp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jp={init:function(){this.setColour(Vu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},Kp={init:function(){this.setColour(Vu),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},qp="#3288dd",$p={init:function(){this.setColour(qp),this.appendValueInput("DOMAIN").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_REQUESTS_GET).appendField(new ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},zp={init:function(){this.setColour(qp),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS).appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Qp={init:function(){this.setColour(qp),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ot.Msg.blockpy_REQUESTS+ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Jp={init:function(){this.appendValueInput("VAL");var t=[[ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(qp),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Zp={init:function(){this.appendValueInput("VAR").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(qp),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},t_="f0a559",e_={init:function(){this.setColour(t_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},n_={init:function(){this.setColour(t_),this.appendValueInput("FILE").appendField(ot.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},i_={init:function(){this.setColour(t_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},s_={init:function(){this.setColour(t_),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS+ot.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},o_={init:function(){this.setColour(t_),this.appendDummyInput().appendField(ot.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},r_={init:function(){this.setColour(t_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);var t=[[ot.Msg.MIXLY_CV_RECT,"rectangle"],[ot.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},a_={init:function(){this.setColour(t_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new ot.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},l_={init:function(){this.setColour(t_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},u_={init:function(){this.setColour(t_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},p_={init:function(){this.setColour(t_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(ot.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(ot.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},__=170,d_={init:function(){this.setColour(__),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},h_={init:function(){this.setColour(__),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},c_={init:function(){this.setColour(__),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},T_={init:function(){this.setColour(__);var t=[[ot.Msg.DATAFRAME_RAW,"index"],[ot.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},I_={init:function(){this.setColour(__),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},m_={init:function(){this.setColour(__),this.appendDummyInput("").appendField(new ot.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new ot.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},E_={init:function(){this.setColour(__);var t=[[ot.Msg.SERIES_INDEX,"index"],[ot.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(ot.Msg.SERIES_INDEX_VALUE).appendField(new ot.FieldDropdown(t),"INDEX_VALUE"),this.setOutput(!0,"List");var e=this;this.setTooltip((function(){var t=e.getFieldValue("INDEX_VALUE");return{index:ot.Msg.SERIES_INDEX_TOOLTIP,value:ot.Msg.HTML_VALUE_TOOLTIP}[t]}))}},f_={init:function(){this.setColour(__),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(ot.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(ot.Msg.TUPLE_GET_INDEX_TOOLTIP)}},g_={init:function(){this.setColour(__),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},O_={init:function(){this.setColour(__);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},M_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},R_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},A_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},S_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},C_={init:function(){this.setColour(__);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},L_={init:function(){this.setColour(__),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_SPLITBYDOU).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},y_={init:function(){this.setColour(__);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},D_={init:function(){this.setColour(__);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},N_={init:function(){this.setColour(__);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},b_={init:function(){this.setColour(__);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},v_={init:function(){this.setColour(__);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},w_={init:function(){this.setColour(__),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},F_={init:function(){this.setColour(__);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},P_={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(__),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(ot.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setTooltip(ot.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},k_={init:function(){this.setColour(__),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},V_={init:function(){this.setColour(__),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[ot.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Y_={init:function(){this.setColour(__),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(ot.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new ot.FieldDropdown([[ot.Msg.DATAFRAME_COLUMN,"column"],[ot.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(ot.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},x_={init:function(){this.setColour(__),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},U_={init:function(){this.setColour(__);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},B_={init:function(){this.setColour(__),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},X_={init:function(){this.setColour(__),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},G_={init:function(){this.setColour(__);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},H_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},W_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},j_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},K_={init:function(){this.setColour(__),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},q_={init:function(){this.setColour(__);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$_={init:function(){this.setColour(__);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},z_={init:function(){this.setColour(__);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},Q_={init:function(){this.setColour(__);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},J_={init:function(){this.setColour(__);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Z_={init:function(){this.setColour(__);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},td={init:function(){this.setColour(__),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ed={init:function(){this.setColour(__);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},nd={init:function(){this.setColour(__),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},id={init:function(){this.setColour(__),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},sd={init:function(){this.setColour(__);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},od={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},rd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},ad={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new ot.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},ld={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new ot.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},ud={init:function(){this.setColour(__),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},pd={init:function(){this.setColour(__),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},_d={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},dd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},hd={init:function(){this.setColour(__),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},cd={init:function(){this.setColour(__),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},Td={init:function(){this.setColour(__),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},Id={init:function(){this.setColour(__),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},md={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},Ed={init:function(){this.setColour(__),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},fd={init:function(){this.setColour(__),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},gd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},Od={init:function(){this.setColour(__),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},Md={init:function(){this.setColour(__),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new ot.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},Rd={init:function(){this.setColour(__),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},Ad={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},Sd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},Cd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},Ld={init:function(){this.setColour(__),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},yd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},Dd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},Nd={init:function(){this.setColour(__),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},bd={init:function(){this.setColour(__),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},vd={init:function(){this.setColour(__),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("排序方式").appendField(new ot.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},wd={init:function(){this.setColour(__),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("获取").appendField(new ot.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(ot.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Fd={init:function(){this.setColour(__),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Pd={init:function(){this.setColour(__),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},kd={init:function(){this.setColour(__),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Vd={init:function(){this.setColour(__),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Yd=80,xd={init:function(){this.setColour(Yd),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new ot.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("ds_create_linkedlist_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:"name"),"KEY"+e).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ud={init:function(){this.setColour(Yd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},Bd={init:function(){this.setColour(Yd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},Xd={init:function(){this.setColour(Yd),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_USE).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_CREATE_NODE_TOOLTIP)}},Gd={init:function(){this.setColour(Yd),this.appendDummyInput("").appendField(ot.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},Hd={init:function(){this.setColour(Yd),this.appendDummyInput("").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},Wd={init:function(){this.setColour(Yd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},jd={init:function(){this.setColour(Yd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},Kd={init:function(){this.setColour(Yd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},qd={init:function(){this.setColour(Yd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_DEL_NODE_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},$d={init:function(){this.setColour(Yd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},zd="#777777",Qd={init:function(){this.setColour(zd),this.appendDummyInput("").appendField("from ").appendField(new ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jd={init:function(){this.setColour(zd),this.appendDummyInput("").appendField("import ").appendField(new ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zd={init:function(){this.setColour(zd),this.appendDummyInput("").appendField(new ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},wh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Fh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ph={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ot.Msg.MIXLY_WIFI_USERNAME).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ot.Msg.MIXLY_IOT_PASSWORD).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_PROJECT).setAlign(ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},Vh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_SUBSCRIBE+ot.Msg.MIXLY_MICROBIT_MSG).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Yh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MSG.stop+ot.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},xh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Uh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Gh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Hh={init:function(){this.setColour(Ch),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Wh={init:function(){this.setColour(Ch),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},jh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Kh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ot.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},qh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$h={init:function(){this.setColour(Ch),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zh={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Ch),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ot.FieldImage(e,12,12,'"')}},Qh={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Ch),this.appendDummyInput("").appendField(new ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},Jh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Zh={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ot.Msg.MIXLY_REQUESTS_GET).appendField(ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tc={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ec={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ot.MQTT_Topic).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nc={init:function(){this.setColour(Ch),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ic=Lh,sc=yh,oc=Dh,rc=bh,ac=230,lc={init:function(){this.setColour(ac),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},uc={init:function(){this.setColour(ac),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},pc={init:function(){this.setColour(ac),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},_c={init:function(){this.setColour(ac),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},dc={init:function(){this.setColour(40),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.MIXPY_SERIAL_OPEN)).appendField(new ot.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(ot.Msg.MIXLY_SERIAL_BEGIN).appendField(new ot.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},hc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},cc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},Tc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendDummyInput().appendField(ot.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},Ic=80,mc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Ec={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},fc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},gc={init:function(){var t=[[ot.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[ot.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[ot.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[ot.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[ot.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[ot.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+ot.Msg.LOAD).appendField(new ot.FieldDropdown(t),"type").appendField(new ot.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("name"))&&this.setTitleValue(e,"name")}},Oc={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+ot.Msg.DATA_SET),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.EIGENVALUES,"data"],[ot.Msg.LABEL_VALUE,"target"],[ot.Msg.FEATURE,"feature_names"],[ot.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Mc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Rc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Ac={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Sc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Cc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Lc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},yc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KNN_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Dc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Nc={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},bc={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},vc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},wc={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Fc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Pc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},kc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Vc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Yc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},xc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(ot.inputs.Align.RIGHT).setCheck(null).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_COEF,"coef_"],[ot.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Uc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[ot.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[ot.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Bc={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("sklearn").appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_SAVE_MODEL,"dump"],[ot.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+ot.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Ic),this.setTooltip(""),this.setHelpUrl("")}},Xc=120,Gc={init:function(){this.setColour(Xc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY+"("+ot.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},Hc={init:function(){this.setColour(Xc),this.appendDummyInput().appendField(ot.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},Wc={init:function(){this.setColour(Xc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},jc={init:function(){this.setColour(Xc),this.appendValueInput("STATUS_CODE",Number).appendField(ot.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},Kc={init:function(){this.setColour(Xc),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},qc={init:function(){this.setColour(Xc),this.appendValueInput("TIME").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$c={init:function(){this.setColour(Xc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zc={init:function(){this.setColour(Xc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qc={init:function(){this.setColour(Xc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},Jc=180,Zc={init:function(){this.setColour(Jc),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_create).appendField(new ot.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tT={init:function(){this.setColour(Jc),this.appendDummyInput().appendField(ot.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eT={init:function(){this.setColour(Jc),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_forward,"forward"],[ot.Msg.blockpy_backward,"backward"]];this.setColour(Jc),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},iT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_left,"left"],[ot.Msg.blockpy_right,"right"]];this.setColour(Jc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_rotate).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{left:ot.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:ot.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[t]}))}},sT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_setheading),this.appendDummyInput().appendField(ot.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(Jc),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},lT={init:function(){this.setColour(Jc);var t=[[ot.Msg.TURTLE_POS,"pos"],[ot.Msg.TURTLE_SHAPE,"shape"],[ot.Msg.TURTLE_HEADING,"heading"],[ot.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_POS_SHAPE).appendField(new ot.FieldDropdown(t),"DIR");var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pos:ot.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:ot.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:ot.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[t]})),this.setOutput(!0),this.setInputsInline(!0)}},uT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[ot.Msg.blockpy_turtle_reset,"reset"],[ot.Msg.blockpy_turtle_home,"home"]];this.setColour(Jc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},pT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_penup,"penup"],[ot.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(Jc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{penup:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[t]}))}},_T={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_beginfill,"begin"],[ot.Msg.blockpy_turtle_endfill,"end"]];this.setColour(Jc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{begin:ot.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:ot.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[t]}))}},dT={init:function(){this.appendDummyInput("").appendField(new ot.FieldTextInput("tina"),"TUR");var t=[[ot.Msg.blockpy_turtle_size,"pensize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.setColour(Jc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_set).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pensize:ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[t]}))}},hT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_size),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_speed),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_circle,"circle"],[ot.Msg.blockpy_turtle_dot,"dot"]];this.setColour(Jc),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_draw).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{circle:ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:ot.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[t]}))}},IT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(ot.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},mT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_hide,"hideturtle"],[ot.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(Jc),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{hideturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[t]}))}},ET={init:function(){this.setColour(Jc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_bgcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_CLONE),this.setTooltip(ot.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},MT={init:function(){this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ST={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR1").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},LT={init:function(){this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_shape_arrow,"arrow"],[ot.Msg.blockpy_turtle_shape_turtle,"turtle"],[ot.Msg.blockpy_turtle_shape_circle,"circle"],[ot.Msg.blockpy_turtle_shape_square,"square"],[ot.Msg.blockpy_turtle_shape_triangle,"triangle"],[ot.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(Jc),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_shape).appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_SHAPE_TOOLTIP)}},bT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},vT={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(Jc),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TURTLE_NUMINPUT_TOOLTIP)}},wT={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(Jc),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},FT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},PT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},kT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(Jc),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},VT={init:function(){this.setColour(Jc),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},YT={init:function(){this.setColour(Jc),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new ot.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xT={init:function(){this.setColour(Jc),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},UT={init:function(){this.setColour(Jc),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},BT={init:function(){this.setColour(Jc),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(ot.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},XT={init:function(){this.setColour(Jc),this.appendValueInput("TUR"),this.appendDummyInput().appendField(ot.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GT={init:function(){this.setColour(Jc),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},HT=function(t,e){var n=this.getFieldValue("TYPE");return e.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",e.ORDER_ATOMIC]},WT=function(t,e){var n=this.getFieldValue("CTYPE");return e.definitions_.import_aip="import aip",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = aip."+n+"("+e.valueToCode(this,"API_KEY",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"SECRET_KEY",e.ORDER_ATOMIC)+")\n"},jT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".synthesis("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},KT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".asr("+(e.valueToCode(this,"FILE",e.ORDER_ATOMIC)||'""')+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},qT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},$T=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".match("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"VAR2",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},zT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},QT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},JT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR1",e.ORDER_ATOMIC),s=e.valueToCode(this,"STR2",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+","+s+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},ZT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".topic("+e.valueToCode(this,"STR1",e.ORDER_ATOMIC)+","+e.valueToCode(this,"STR2",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tI=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".newsSummary("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"LEN",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},eI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},nI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},iI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},sI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},oI=function(t,e){return e.definitions_.import_audio="import audio","audio.audio_record("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"TIME",e.ORDER_ATOMIC)||"0")+")\n"},rI=function(t,e){return e.definitions_.import_audio="import cam","cam.photo_capture("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"BUT",e.ORDER_ATOMIC)||'""')+")\n"},aI=function(t,e){var n=e.valueToCode(this,"AI",e.ORDER_ASSIGNMENT)||"0",i=this.getFieldValue("CTYPE");if("Image"==i)var s=n+'["result"][0]["keyword"]';if("Speech"==i)s=n+'["result"][0]';if("Face"==i||"OcrSimilarity"==i)s=n+'["score"]';if("Ocr"==i)s=n+'["words_result"]';return[s,e.ORDER_ATOMIC]},lI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},uI=function(){return"path = [1]\nmask.show()\ncar = sprite.Sprite('xnie', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},pI=function(t,e){e.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},_I=function(t,e){return["flag == 1",e.ORDER_ATOMIC]},dI=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},hI=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},cI=function(t,e){e.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},TI=function(){var t="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return t="house[f].hide()\ndrive(path[len(path) - 1])\n"+t},II=function(t,e){return["len(path) == 7",e.ORDER_ATOMIC]},mI=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},EI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nbarricade = sprite.Sprite('barricade', 610, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},fI=function(t,e){return["f == 1",e.ORDER_ATOMIC]},gI=function(){return"print('没有符合条件的路线')\n"},OI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},MI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},RI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},AI=function(t,e){return["name[now] != '小科家'",e.ORDER_ATOMIC]},SI=function(t,e){return["name[now] != '学校'",e.ORDER_ATOMIC]},CI=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},LI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var i="print('层数过高!不得高于6层!')\nexit()\n";else i="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return i},yI=function(t,e){var n=e.valueToCode(this,"FROM_NUM",e.ORDER_ATOMIC)||"0",i=e.valueToCode(this,"TO_NUM",e.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${i}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${i}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${i}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${i}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${i}*200+200, 400-len(_Hanoi[${i}])*27, 0.2)\n _Hanoi[${i}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},DI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},NI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},bI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},vI=function(t,e){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",e.ORDER_ATOMIC]},wI=function(t,e){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",e.ORDER_ATOMIC]},FI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},PI=function(t,e){return["len(list)>=2",e.ORDER_ATOMIC]},kI=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},VI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},YI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},xI=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},UI=function(t,e){var n=this.getFieldValue("NUM");return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},BI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},XI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},GI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},HI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},WI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},jI=function(t,e){return["_rabbit < _head",e.ORDER_ATOMIC]},KI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},qI=function(t,e){return["_rabbit*4 + _chick*2 == _foot",e.ORDER_ATOMIC]},$I=function(t,e){e.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},zI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},QI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},JI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const i=[0,[1,3],[2,4],[5,7],[6]];var s="";return s+=`_S${n}.show()\ntime.sleep(1)\n`,s+=4!=n?`_Slen[${n}] = _Llen[${i[n][0]}] + _Llen[${i[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},ZI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,e.ORDER_ATOMIC]},tm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),i="";return i+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},em=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},nm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},im=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},sm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},om=function(t,e){return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,e.ORDER_ATOMIC]},rm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},am=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},lm=function(t,e){e.definitions_.import_turtle="import turtle",e.definitions_.import_time="import time",e.definitions_.import_math="import math";var n=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),i=this.getFieldValue("NUM");return e.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",e.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",e.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,e.ORDER_ATOMIC]},BE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.groupby(by=${e.valueToCode(t,"KEY",e.ORDER_ATOMIC)||"'tag'"})`,e.ORDER_ATOMIC]},XE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.${t.getFieldValue("TYPE")}()`,e.ORDER_ATOMIC]},GE=function(t,e){e.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},HE=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("VAR"),ot.Variables.NAME_TYPE),i=e.variableDB_.getName(this.getFieldValue("TYPE"),ot.Variables.NAME_TYPE),s="class "+i+":\n";s+=" def __init__(self):\n";for(var o=new Array(this.itemCount_),r=0;r{document.removeEventListener("DOMContentLoaded",t),this._pageLoad.resolve()};document.addEventListener("DOMContentLoaded",t)}else this._pageLoad.resolve();(async()=>{switch(n){case"python":case"python3":case"python3.11":const{KernelPython3:e}=await __webpack_require__.e(211).then(__webpack_require__.bind(__webpack_require__,211));this._kernel=new e(t);break;case"python3-old":case"python3.8":const{KernelPython3Old:i}=await __webpack_require__.e(195).then(__webpack_require__.bind(__webpack_require__,5195));this._kernel=new i(t);break;case"js":case"javascript":const{KernelJavaScript:s}=await __webpack_require__.e(97).then(__webpack_require__.bind(__webpack_require__,4097));this._kernel=new s(t);break;case"sql":const{KernelSQL:o}=await Promise.all([__webpack_require__.e(960),__webpack_require__.e(837)]).then(__webpack_require__.bind(__webpack_require__,592));this._kernel=new o(t);break;case"ocaml":const{KernelOCaml:r}=await __webpack_require__.e(38).then(__webpack_require__.bind(__webpack_require__,38));this._kernel=new r(t);break;default:return window.console.error(`Kernel '${n}' not supported.`),void this._kernelAvailable.reject()}window.Basthon=this._kernel,this._kernelAvailable.resolve(this._kernel)})()}async pageLoad(){await this._pageLoad.promise}async kernelAvailable(){return await this._kernelAvailable.promise}async kernelLoaded(){const t=await this.kernelAvailable();return await t.loaded(),t}get kernel(){return this._kernel}get kernelSafe(){var t;return(null===(t=this.kernel)||void 0===t?void 0:t.ready)?this.kernel:null}async showLoader(t,e=!1,n=!0){this.kernelAvailable().then((()=>{var t;return null===(t=this.kernel)||void 0===t?void 0:t.init()})),__webpack_require__.e(317).then(__webpack_require__.bind(__webpack_require__,1317));const i="basthon-loader-"+(e?"full":"foot"),s=document.createElement("div");s.id=this._loaderId,s.classList.add("darklighted"),s.classList.add("basthon-loader-root"),s.classList.add(i);const o=document.createElement("div");o.classList.add("basthon-loader-container"),o.classList.add(i),s.appendChild(o);const r=document.createElement("div");r.classList.add("basthon-loader-spinner"),r.classList.add(i),r.innerHTML="",o.appendChild(r);const a=document.createElement("div");a.classList.add("basthon-loader-break"),a.classList.add(i),o.appendChild(a);const l=document.createElement("div");l.classList.add("basthon-loader-text"),l.classList.add(i),l.innerHTML=t,o.appendChild(l),this._loaderTextElem=l;const u=document.createElement("div");u.classList.add("basthon-loader-text"),u.classList.add(i),u.style.display="none",o.appendChild(u),this._loaderTextError=u,await this.pageLoad(),document.body.appendChild(s),this._rootLoader=s;try{await this.kernelLoaded()}catch(t){const e=this.browser();this.setErrorText(`Erreur de chargement de Basthon !!!
Vérifiez que votre navigateur est à jour.
Version détectée : ${e.name} ${e.version}.`);for(const t of document.body.querySelectorAll(".basthon-loader-foot"))t.classList.remove("basthon-loader-foot"),t.classList.add("basthon-loader-full");return r.classList.remove("basthon-loader-spinner"),r.classList.add("basthon-loader-error"),void(this._doNotHideLoader=!0)}this._doNotHideLoader=!1,n&&this.hideLoader()}setLoaderText(t){null!=this._loaderTextElem&&(this._loaderTextElem.innerHTML=t)}setErrorText(t){null!=this._loaderTextElem&&(this._loaderTextElem.style.display="none"),null!=this._loaderTextError&&(this._loaderTextError.style.display="",this._loaderTextError.innerHTML=t)}hideLoader(){if(this._doNotHideLoader)return;const t=this._rootLoader;null!=t&&(t.classList.add("basthon-loader-hide"),window.setTimeout((()=>{this._rootLoader=void 0,t.remove()}),1100))}browser(){var t,e=navigator.userAgent,n=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(t=/\brv[ :]+(\d+)/g.exec(e)||[])[1]||""}:"Chrome"===n[1]&&null!=(t=e.match(/\bOPR|Edge\/(\d+)/))?{name:"Opera",version:t[1]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&n.splice(1,1,t[1]),{name:n[0],version:n[1]})}}class gO extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-image.html",new rt.HTMLTemplate('\r\n
')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["images"],gO);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("images","images",ot.Msg.PYTHON_PYODIDE_IMAGE),t.changeTo("output"),t.get("images")}}constructor(){super();const t=mO()(rt.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(t)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(t){const e=this.getContent(),n=function(t){t.style.width="auto",t.style.height="auto",t.style.maxWidth="100%",t.style.maxHeight="100%"};this.clean();let i=t.content,s=null,o=null;switch(t.display_type){case"p5":i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",new MutationObserver((function(t){t.forEach((t=>t.addedNodes.forEach((t=>{const e=t;null!=e.tagName&&["canvas","video"].includes(e.tagName.toLowerCase())&&n(e)}))))})).observe(i,{childList:!0}),i.querySelectorAll("canvas,video").forEach(n),e.append(i);break;case"matplotlib":s=i.querySelector("canvas"),s&&(i=s),i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"ocaml-canvas":i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"turtle":i.setAttribute("width","100%"),i.setAttribute("height","100%"),e.append(i.outerHTML);break;case"sympy":e.append(t.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let t=document.createElement("script");t.type="text/javascript",t.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(t)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in t.content){let i=t.content[n];"image/png"===n&&(i=''),e.append(i);break}break;case"tutor":if(e.append(mO()(t.content.replace("overflow-y%3A%20hidden%3B",""))),o=this.getContent()[0].getElementsByTagName("iframe")[0],null==o)return;o.style.maxHeight=o.style.minHeight="100%",new IntersectionObserver(((t,e)=>{const n=t[0];n&&!n.isIntersecting||(o.contentWindow?.postMessage({type:"redraw"},"*"),e.disconnect())})).observe(o);break;default:console.error(`Not supported node type '${t.display_type}' in eval.display result processing.`)}}}const OO=layui;var MO;!function(t){t[t.EPERM=1]="EPERM",t[t.ENOENT=2]="ENOENT",t[t.EINTR=4]="EINTR",t[t.EIO=5]="EIO",t[t.ENXIO=6]="ENXIO",t[t.EBADF=9]="EBADF",t[t.EAGAIN=11]="EAGAIN",t[t.ENOMEM=12]="ENOMEM",t[t.EACCES=13]="EACCES",t[t.EFAULT=14]="EFAULT",t[t.ENOTBLK=15]="ENOTBLK",t[t.EBUSY=16]="EBUSY",t[t.EEXIST=17]="EEXIST",t[t.EXDEV=18]="EXDEV",t[t.ENODEV=19]="ENODEV",t[t.ENOTDIR=20]="ENOTDIR",t[t.EISDIR=21]="EISDIR",t[t.EINVAL=22]="EINVAL",t[t.ENFILE=23]="ENFILE",t[t.EMFILE=24]="EMFILE",t[t.ETXTBSY=26]="ETXTBSY",t[t.EFBIG=27]="EFBIG",t[t.ENOSPC=28]="ENOSPC",t[t.ESPIPE=29]="ESPIPE",t[t.EROFS=30]="EROFS",t[t.EMLINK=31]="EMLINK",t[t.EPIPE=32]="EPIPE",t[t.EDOM=33]="EDOM",t[t.ERANGE=34]="ERANGE",t[t.EDEADLK=35]="EDEADLK",t[t.ENAMETOOLONG=36]="ENAMETOOLONG",t[t.ENOLCK=37]="ENOLCK",t[t.ENOSYS=38]="ENOSYS",t[t.ENOTEMPTY=39]="ENOTEMPTY",t[t.ELOOP=40]="ELOOP",t[t.ENOMSG=42]="ENOMSG",t[t.EBADE=52]="EBADE",t[t.EBADR=53]="EBADR",t[t.EXFULL=54]="EXFULL",t[t.ENOANO=55]="ENOANO",t[t.EBADRQC=56]="EBADRQC",t[t.ENOSTR=60]="ENOSTR",t[t.ENODATA=61]="ENODATA",t[t.ETIME=62]="ETIME",t[t.ENOSR=63]="ENOSR",t[t.ENONET=64]="ENONET",t[t.EREMOTE=66]="EREMOTE",t[t.ENOLINK=67]="ENOLINK",t[t.ECOMM=70]="ECOMM",t[t.EPROTO=71]="EPROTO",t[t.EBADMSG=74]="EBADMSG",t[t.EOVERFLOW=75]="EOVERFLOW",t[t.EBADFD=77]="EBADFD",t[t.ESTRPIPE=86]="ESTRPIPE",t[t.ENOTSOCK=88]="ENOTSOCK",t[t.EDESTADDRREQ=89]="EDESTADDRREQ",t[t.EMSGSIZE=90]="EMSGSIZE",t[t.EPROTOTYPE=91]="EPROTOTYPE",t[t.ENOPROTOOPT=92]="ENOPROTOOPT",t[t.EPROTONOSUPPORT=93]="EPROTONOSUPPORT",t[t.ESOCKTNOSUPPORT=94]="ESOCKTNOSUPPORT",t[t.ENOTSUP=95]="ENOTSUP",t[t.ENETDOWN=100]="ENETDOWN",t[t.ENETUNREACH=101]="ENETUNREACH",t[t.ENETRESET=102]="ENETRESET",t[t.ETIMEDOUT=110]="ETIMEDOUT",t[t.ECONNREFUSED=111]="ECONNREFUSED",t[t.EHOSTDOWN=112]="EHOSTDOWN",t[t.EHOSTUNREACH=113]="EHOSTUNREACH",t[t.EALREADY=114]="EALREADY",t[t.EINPROGRESS=115]="EINPROGRESS",t[t.ESTALE=116]="ESTALE",t[t.EREMOTEIO=121]="EREMOTEIO",t[t.EDQUOT=122]="EDQUOT"}(MO||(MO={}));const RO={[MO.EPERM]:"Operation not permitted",[MO.ENOENT]:"No such file or directory",[MO.EINTR]:"Interrupted system call",[MO.EIO]:"Input/output error",[MO.ENXIO]:"No such device or address",[MO.EBADF]:"Bad file descriptor",[MO.EAGAIN]:"Resource temporarily unavailable",[MO.ENOMEM]:"Cannot allocate memory",[MO.EACCES]:"Permission denied",[MO.EFAULT]:"Bad address",[MO.ENOTBLK]:"Block device required",[MO.EBUSY]:"Resource busy or locked",[MO.EEXIST]:"File exists",[MO.EXDEV]:"Invalid cross-device link",[MO.ENODEV]:"No such device",[MO.ENOTDIR]:"File is not a directory",[MO.EISDIR]:"File is a directory",[MO.EINVAL]:"Invalid argument",[MO.ENFILE]:"Too many open files in system",[MO.EMFILE]:"Too many open files",[MO.ETXTBSY]:"Text file busy",[MO.EFBIG]:"File is too big",[MO.ENOSPC]:"No space left on disk",[MO.ESPIPE]:"Illegal seek",[MO.EROFS]:"Cannot modify a read-only file system",[MO.EMLINK]:"Too many links",[MO.EPIPE]:"Broken pipe",[MO.EDOM]:"Numerical argument out of domain",[MO.ERANGE]:"Numerical result out of range",[MO.EDEADLK]:"Resource deadlock would occur",[MO.ENAMETOOLONG]:"File name too long",[MO.ENOLCK]:"No locks available",[MO.ENOSYS]:"Function not implemented",[MO.ENOTEMPTY]:"Directory is not empty",[MO.ELOOP]:"Too many levels of symbolic links",[MO.ENOMSG]:"No message of desired type",[MO.EBADE]:"Invalid exchange",[MO.EBADR]:"Invalid request descriptor",[MO.EXFULL]:"Exchange full",[MO.ENOANO]:"No anode",[MO.EBADRQC]:"Invalid request code",[MO.ENOSTR]:"Device not a stream",[MO.ENODATA]:"No data available",[MO.ETIME]:"Timer expired",[MO.ENOSR]:"Out of streams resources",[MO.ENONET]:"Machine is not on the network",[MO.EREMOTE]:"Object is remote",[MO.ENOLINK]:"Link has been severed",[MO.ECOMM]:"Communication error on send",[MO.EPROTO]:"Protocol error",[MO.EBADMSG]:"Bad message",[MO.EOVERFLOW]:"Value too large for defined data type",[MO.EBADFD]:"File descriptor in bad state",[MO.ESTRPIPE]:"Streams pipe error",[MO.ENOTSOCK]:"Socket operation on non-socket",[MO.EDESTADDRREQ]:"Destination address required",[MO.EMSGSIZE]:"Message too long",[MO.EPROTOTYPE]:"Protocol wrong type for socket",[MO.ENOPROTOOPT]:"Protocol not available",[MO.EPROTONOSUPPORT]:"Protocol not supported",[MO.ESOCKTNOSUPPORT]:"Socket type not supported",[MO.ENOTSUP]:"Operation is not supported",[MO.ENETDOWN]:"Network is down",[MO.ENETUNREACH]:"Network is unreachable",[MO.ENETRESET]:"Network dropped connection on reset",[MO.ETIMEDOUT]:"Connection timed out",[MO.ECONNREFUSED]:"Connection refused",[MO.EHOSTDOWN]:"Host is down",[MO.EHOSTUNREACH]:"No route to host",[MO.EALREADY]:"Operation already in progress",[MO.EINPROGRESS]:"Operation now in progress",[MO.ESTALE]:"Stale file handle",[MO.EREMOTEIO]:"Remote I/O error",[MO.EDQUOT]:"Disk quota exceeded"};class AO extends Error{static fromJSON(t){const e=new AO(t.errno,t.message,t.path,t.syscall);return e.code=t.code,e.stack=t.stack,e}static With(t,e,n){return new AO(MO[t],RO[MO[t]],e,n)}constructor(t,e=RO[t],n,i=""){super(e),this.errno=t,this.path=n,this.syscall=i,this.code=MO[t],this.message=this.code+": "+e+(this.path?`, '${this.path}'`:"")}toString(){return this.message}toJSON(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message,syscall:this.syscall}}bufferSize(){return 4+JSON.stringify(this.toJSON()).length}}let SO="/";function CO(t,e){let n="",i=0,s=-1,o=0,r="\0";for(let a=0;a<=t.length;++a){if(a2){const t=n.lastIndexOf("/");-1===t?(n="",i=0):(n=n.slice(0,t),i=n.length-1-n.lastIndexOf("/")),s=a,o=0;continue}if(0!==n.length){n="",i=0,s=a,o=0;continue}}e&&(n+=n.length>0?"/..":"..",i=2)}else n.length>0?n+="/"+t.slice(s+1,a):n=t.slice(s+1,a),i=a-s-1;s=a,o=0}else"."===r&&-1!==o?++o:o=-1}return n}function LO(...t){let e="";for(const n of[...t.reverse(),SO])if(n.length&&(e=`${n}/${e}`,n.startsWith("/")))break;const n=e.startsWith("/");return e=CO(e,!n),n?`/${e}`:e.length?e:"/"}function yO(...t){if(!t.length)return".";const e=t.join("/");return e?.length?function(t){if(!t.length)return".";const e=t.startsWith("/"),n=t.endsWith("/");return(t=CO(t,!e)).length?(n&&(t+="/"),e?`/${t}`:t):e?"/":n?"./":"."}(e):"."}function DO(t){if(0===t.length)return".";const e="/"===t[0];let n=-1,i=!0;for(let e=t.length-1;e>=1;--e)if("/"===t[e]){if(!i){n=e;break}}else i=!1;return-1===n?e?"/":".":e&&1===n?"//":t.slice(0,n)}function NO(t,e){let n=0,i=-1,s=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e===t)return"";let o=e.length-1,r=-1;for(let a=t.length-1;a>=0;--a)if("/"===t[a]){if(!s){n=a+1;break}}else-1===r&&(s=!1,r=a+1),o>=0&&(t[a]===e[o]?-1==--o&&(i=a):(o=-1,i=r));return n===i?i=r:-1===i&&(i=t.length),t.slice(n,i)}for(let e=t.length-1;e>=0;--e)if("/"===t[e]){if(!s){n=e+1;break}}else-1===i&&(s=!1,i=e+1);return-1===i?"":t.slice(n,i)}function bO(t){const e=t.startsWith("/"),n={root:e?"/":"",dir:"",base:"",ext:"",name:""};if(0===t.length)return n;const i=e?1:0;let s=-1,o=0,r=-1,a=!0,l=t.length-1,u=0;for(;l>=i;--l)if("/"!==t[l])-1===r&&(a=!1,r=l+1),"."===t[l]?-1===s?s=l:1!==u&&(u=1):-1!==s&&(u=-1);else if(!a){o=l+1;break}if(-1!==r){const i=0===o&&e?1:o;-1===s||0===u||1===u&&s===r-1&&s===o+1?n.base=n.name=t.slice(i,r):(n.name=t.slice(i,s),n.base=t.slice(i,r),n.ext=t.slice(s,r))}return o>0?n.dir=t.slice(0,o-1):e&&(n.dir="/"),n}const vO=new TextEncoder;function wO(t){if("string"!=typeof t)throw new AO(MO.EINVAL,"Can not encode a non-string");return vO.encode(t)}const FO=new TextDecoder;function PO(t){if(!(t instanceof Uint8Array))throw new AO(MO.EINVAL,"Can not decode a non-Uint8Array");return FO.decode(t)}function kO(t){return JSON.parse(PO(t),((t,e)=>""==t?e:BigInt(e)))}function VO(t){return wO(JSON.stringify(t,((t,e)=>""==t?e:e.toString())))}function YO(t,e){if("number"==typeof t)return t;if("string"==typeof t){const e=parseInt(t,8);if(!isNaN(e))return e}if("number"==typeof e)return e;throw new AO(MO.EINVAL,"Invalid mode: "+t?.toString())}function xO(t){if(t instanceof Date)return t;try{return new Date(t)}catch{throw new AO(MO.EINVAL,"Invalid time.")}}function UO(t){if((t=t.toString()).includes("\0"))throw new AO(MO.EINVAL,"Path can not contain null character");if(0==t.length)throw new AO(MO.EINVAL,"Path can not be empty");return LO(t.replaceAll(/[/\\]+/g,"/"))}function BO(t,e="utf8",n,i=0){return"object"!=typeof t||null===t?{encoding:"string"==typeof t?t:e??null,flag:n,mode:i}:{encoding:"string"==typeof t?.encoding?t.encoding:e??null,flag:"string"==typeof t?.flag?t.flag:n,mode:YO("mode"in t?t?.mode:null,i)}}function XO(){return crypto.getRandomValues(new BigUint64Array(1))[0]}const GO={uid:0,gid:0,suid:0,sgid:0,euid:0,egid:0,groups:[]};function HO(t){return{suid:t.uid,sgid:t.gid,euid:t.uid,egid:t.gid,groups:[],...t}}const WO=0,jO=4,KO=2,qO=1,$O=1,zO=2,QO=4,JO=0,ZO=1,tM=2,eM=64,nM=128,iM=256,sM=512,oM=1024,rM=65536,aM=262144,lM=131072,uM=1052672,pM=4096,_M=32768,dM=16384,hM=2048,cM=61440,TM=49152,IM=40960,mM=32768,EM=24576,fM=16384,gM=8192,OM=4096,MM=2048,RM=1024,AM=512,SM=448,CM=256,LM=128,yM=64,DM=56,NM=32,bM=16,vM=8,wM=7,FM=4,PM=2,kM=1,VM=0,YM=2**32-1,xM={checkAccess:!0,updateOnRead:!0,syncImmediately:!0,unsafeBufferReplace:!1};Promise.withResolvers??(Promise.withResolvers=function(){let t,e;const n=new Promise(((n,i)=>{t=n,e=i}));return{promise:n,resolve:t,reject:e}}),Symbol.dispose??(Symbol.dispose=Symbol("Symbol.dispose")),Symbol.asyncDispose??(Symbol.asyncDispose=Symbol("Symbol.asyncDispose"));class UM{_convert(t){return this._isBigint?BigInt(t):Number(t)}get blocks(){return this._convert(Math.ceil(Number(this.size)/512))}get atime(){return new Date(Number(this.atimeMs))}set atime(t){this.atimeMs=this._convert(t.getTime())}get mtime(){return new Date(Number(this.mtimeMs))}set mtime(t){this.mtimeMs=this._convert(t.getTime())}get ctime(){return new Date(Number(this.ctimeMs))}set ctime(t){this.ctimeMs=this._convert(t.getTime())}get birthtime(){return new Date(Number(this.birthtimeMs))}set birthtime(t){this.birthtimeMs=this._convert(t.getTime())}constructor({atimeMs:t,mtimeMs:e,ctimeMs:n,birthtimeMs:i,uid:s,gid:o,size:r,mode:a,ino:l}={}){this.dev=this._convert(0),this.ino=this._convert(0),this.rdev=this._convert(0),this.nlink=this._convert(1),this.blksize=this._convert(4096),this.uid=this._convert(0),this.gid=this._convert(0);const u=Date.now();this.atimeMs=this._convert(t??u),this.mtimeMs=this._convert(e??u),this.ctimeMs=this._convert(n??u),this.birthtimeMs=this._convert(i??u),this.uid=this._convert(s??0),this.gid=this._convert(o??0),this.size=this._convert(r??0),this.ino=this._convert(l??0),this.mode=this._convert(a??420&mM),this.mode&cM||(this.mode=this.mode|this._convert(mM))}isFile(){return(this.mode&cM)===mM}isDirectory(){return(this.mode&cM)===fM}isSymbolicLink(){return(this.mode&cM)===IM}isSocket(){return(this.mode&cM)===TM}isBlockDevice(){return(this.mode&cM)===EM}isCharacterDevice(){return(this.mode&cM)===gM}isFIFO(){return(this.mode&cM)===OM}hasAccess(t,e){const n=e?.credentials||GO;if(this.isSymbolicLink()||0===n.euid||0===n.egid)return!0;let i=0;return n.uid===this.uid&&(this.mode&CM&&(i|=jO),this.mode&LM&&(i|=KO),this.mode&yM&&(i|=qO)),(n.gid===this.gid||n.groups.includes(Number(this.gid)))&&(this.mode&NM&&(i|=jO),this.mode&bM&&(i|=KO),this.mode&vM&&(i|=qO)),this.mode&FM&&(i|=jO),this.mode&PM&&(i|=KO),this.mode&kM&&(i|=qO),(i&t)===t}chmod(t){this.mode=this._convert(this.mode&cM|t)}chown(t,e){t=Number(t),e=Number(e),!isNaN(t)&&0<=t&&t<2**32&&(this.uid=this._convert(t)),!isNaN(e)&&0<=e&&e<2**32&&(this.gid=this._convert(e))}get atimeNs(){return 1000n*BigInt(this.atimeMs)}get mtimeNs(){return 1000n*BigInt(this.mtimeMs)}get ctimeNs(){return 1000n*BigInt(this.ctimeMs)}get birthtimeNs(){return 1000n*BigInt(this.birthtimeMs)}}function BM(t,e,n){!isNaN(e)&&0<=e&&e<2**32&&(t.uid=e),!isNaN(n)&&0<=n&&n<2**32&&(t.gid=n)}class XM extends UM{constructor(){super(...arguments),this._isBigint=!1}}class GM extends UM{constructor(){super(...arguments),this._isBigint=!0}}class HM{constructor(){this.type=525687744115,this.bsize=4096,this.blocks=0,this.bfree=0,this.bavail=0,this.files=YM,this.ffree=YM}}class WM{constructor(){this.type=0x7a656e6673n,this.bsize=4096n,this.blocks=0n,this.bfree=0n,this.bavail=0n,this.files=BigInt(YM),this.ffree=BigInt(YM)}}const jM=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];function KM(t){if("number"==typeof t)return function(t){switch(t){case JO:return"r";case JO|uM:return"rs";case tM:return"r+";case tM|uM:return"rs+";case sM|eM|ZO:return"w";case sM|eM|ZO|nM:return"wx";case sM|eM|tM:return"w+";case sM|eM|tM|nM:return"wx+";case oM|eM|ZO:return"a";case oM|eM|ZO|nM:return"ax";case oM|eM|tM:return"a+";case oM|eM|tM|nM:return"ax+";default:throw new Error("Invalid flag number: "+t)}}(t);if(!jM.includes(t))throw new Error("Invalid flag string: "+t);return t}function qM(t){let e=0;return e<<=1,e+=+$M(t),e<<=1,e+=+zM(t),e<<=1,e}function $M(t){return-1!==t.indexOf("r")||-1!==t.indexOf("+")}function zM(t){return-1!==t.indexOf("w")||-1!==t.indexOf("a")||-1!==t.indexOf("+")}function QM(t){return-1!==t.indexOf("w")}function JM(t){return-1!==t.indexOf("a")}function ZM(t){return-1!==t.indexOf("x")}class tR{constructor(t,e){this.fs=t,this.path=e}async[Symbol.asyncDispose](){await this.close()}[Symbol.dispose](){this.closeSync()}datasync(){return this.sync()}datasyncSync(){return this.syncSync()}}class eR extends tR{constructor(t,e,n,i,s=new Uint8Array(new ArrayBuffer(0,t.metadata().noResizableBuffers?{}:{maxByteLength:YM}))){if(super(t,e),this.flag=n,this.stats=i,this._buffer=s,this._position=0,this.dirty=!1,this.closed=!1,this.stats.size!=s.byteLength){if($M(this.flag))throw new Error(`Size mismatch: buffer length ${s.byteLength}, stats size ${this.stats.size}`);this.dirty=!0}}get buffer(){return this._buffer}get position(){return JM(this.flag)?this.stats.size:this._position}set position(t){this._position=t}async sync(){if(this.closed)throw AO.With("EBADF",this.path,"File.sync");this.dirty&&(await this.fs.sync(this.path,this._buffer,this.stats),this.dirty=!1)}syncSync(){if(this.closed)throw AO.With("EBADF",this.path,"File.sync");this.dirty&&(this.fs.syncSync(this.path,this._buffer,this.stats),this.dirty=!1)}async close(){if(this.closed)throw AO.With("EBADF",this.path,"File.close");await this.sync(),this.dispose()}closeSync(){if(this.closed)throw AO.With("EBADF",this.path,"File.close");this.syncSync(),this.dispose()}dispose(t){if(this.closed)throw AO.With("EBADF",this.path,"File.dispose");if(this.dirty&&!t)throw AO.With("EBUSY",this.path,"File.dispose");delete this._buffer,delete this.stats,this.closed=!0}stat(){if(this.closed)throw AO.With("EBADF",this.path,"File.stat");return Promise.resolve(new XM(this.stats))}statSync(){if(this.closed)throw AO.With("EBADF",this.path,"File.stat");return new XM(this.stats)}_truncate(t){if(this.closed)throw AO.With("EBADF",this.path,"File.truncate");if(this.dirty=!0,!zM(this.flag))throw new AO(MO.EPERM,"File not opened with a writeable mode.");if(this.stats.mtimeMs=Date.now(),t>this._buffer.length){const e=new Uint8Array(t-this._buffer.length);this._write(e,0,e.length,this._buffer.length)}else this.stats.size=t,this._buffer=t?this._buffer.slice(0,t):new Uint8Array}async truncate(t){this._truncate(t),xM.syncImmediately&&await this.sync()}truncateSync(t){this._truncate(t),xM.syncImmediately&&this.syncSync()}_write(t,e=0,n=this.stats.size,i=this.position){if(this.closed)throw AO.With("EBADF",this.path,"File.write");if(!zM(this.flag))throw new AO(MO.EPERM,"File not opened with a writeable mode.");this.dirty=!0;const s=i+n,o=t.slice(e,e+n);if(s>this.stats.size&&(this.stats.size=s,s>this._buffer.byteLength))if(this._buffer.buffer.resizable&&this._buffer.buffer.maxByteLength<=s)this._buffer.buffer.resize(s);else if(xM.unsafeBufferReplace)this._buffer=o;else{const t=new Uint8Array(new ArrayBuffer(s,this.fs.metadata().noResizableBuffers?{}:{maxByteLength:YM}));t.set(this._buffer),this._buffer=t}return this._buffer.set(o,i),this.stats.mtimeMs=Date.now(),this.position=i+o.byteLength,o.byteLength}async write(t,e,n,i){const s=this._write(t,e,n,i);return xM.syncImmediately&&await this.sync(),s}writeSync(t,e=0,n=this.stats.size,i=this.position){const s=this._write(t,e,n,i);return xM.syncImmediately&&this.syncSync(),s}_read(t,e=0,n=this.stats.size,i){if(this.closed)throw AO.With("EBADF",this.path,"File.read");if(!$M(this.flag))throw new AO(MO.EPERM,"File not opened with a readable mode.");xM.updateOnRead&&(this.dirty=!0),this.stats.atimeMs=Date.now(),i??(i=this.position);let s=i+n;s>this.stats.size&&(s=i+Math.max(this.stats.size-i,0)),this._position=s;const o=s-i;return 0==o||new Uint8Array(t.buffer,e,n).set(this._buffer.slice(i,s)),o}async read(t,e,n,i){const s=this._read(t,e,n,i);return xM.syncImmediately&&await this.sync(),{bytesRead:s,buffer:t}}readSync(t,e,n,i){const s=this._read(t,e,n,i);return xM.syncImmediately&&this.syncSync(),s}async chmod(t){if(this.closed)throw AO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>cM?~cM:cM)|t,(xM.syncImmediately||t>cM)&&await this.sync()}chmodSync(t){if(this.closed)throw AO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>cM?~cM:cM)|t,(xM.syncImmediately||t>cM)&&this.syncSync()}async chown(t,e){if(this.closed)throw AO.With("EBADF",this.path,"File.chown");this.dirty=!0,BM(this.stats,t,e),xM.syncImmediately&&await this.sync()}chownSync(t,e){if(this.closed)throw AO.With("EBADF",this.path,"File.chown");this.dirty=!0,BM(this.stats,t,e),xM.syncImmediately&&this.syncSync()}async utimes(t,e){if(this.closed)throw AO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,xM.syncImmediately&&await this.sync()}utimesSync(t,e){if(this.closed)throw AO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,xM.syncImmediately&&this.syncSync()}}class nR{metadata(){return{name:this.constructor.name.toLowerCase(),readonly:!1,totalSpace:0,freeSpace:0,noResizableBuffers:!1,noAsyncCache:this._disableSync??!1,type:525687744115}}constructor(...t){}async ready(){}async exists(t){try{return await this.stat(t),!0}catch(t){return"ENOENT"!=t.code}}existsSync(t){try{return this.statSync(t),!0}catch(t){return"ENOENT"!=t.code}}}var iR=__webpack_require__(228);Symbol.toStringTag,Symbol.iterator;const sR=Intl.NumberFormat("en",{notation:"compact"});sR.format.bind(sR);function oR(t){return t.at(0).toUpperCase()+t.slice(1)}const rR=["int8","uint8","int16","uint16","int32","uint32","int64","uint64","float32","float64"],aR=[...rR,...rR.map((t=>oR(t))),"char"],lR=/^(u?int|float)(8|16|32|64)$/i;function uR(t){return"char"==t?"uint8":t.toLowerCase()}function pR(t){return lR.test(t.toString())}function _R(t){return"char"==t||lR.test(t.toString().toLowerCase())}Symbol.struct_init||=Symbol("struct_init"),Symbol.struct_metadata||=Symbol("struct_metadata");Symbol.struct_init,Symbol.struct_metadata;function dR(t){const e=Symbol.metadata||Object.getOwnPropertySymbols(t).find((t=>"Symbol.metadata"==t.description));var n;if(n=t,Symbol?.metadata&&(Symbol.metadata in n||Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:Object.create(null)})),!e)throw new ReferenceError("Could not get a reference to Symbol.metadata");return e}function hR(t){return"function"==typeof t&&dR(t)in t&&function(t){return null!=t&&"object"==typeof t&&Symbol.struct_metadata in t}(t[dR(t)])}function cR(t){return null!=t&&"object"==typeof t&&hR(t.constructor)}function TR(t){if(!cR(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct instance")}function IR(t){if(!function(t){return cR(t)||hR(t)}(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct")}function mR(t){if("string"==typeof t)return function(t){if(!_R(t))throw new TypeError("Not a valid primitive type: "+t)}(t),+uR(t).match(lR)[2]/8;IR(t);const e=hR(t)?t:t.constructor;return e[dR(e)][Symbol.struct_metadata].size}function ER(t={}){return function(e,n){n.metadata??={},n.metadata[Symbol.struct_init]||=[];let i=0;const s=new Map;for(const e of n.metadata[Symbol.struct_init]){const{name:n,type:a,length:l}=e;if(!_R(a)&&!hR(a))throw new TypeError("Not a valid type: "+a);s.set(n,{offset:i,type:_R(a)?uR(a):a,length:l}),i+=mR(a)*(l||1),o=i,r=t.align||1,i=Math.ceil(o/r)*r}var o,r;return n.metadata[Symbol.struct_metadata]={options:t,members:s,size:i},e}}function fR(t,e){return function(n,i){let s=i.name;if("symbol"==typeof s&&(console.warn("Symbol used for struct member name will be coerced to string: "+s.toString()),s=s.toString()),!s)throw new ReferenceError("Invalid name for struct member");return i.metadata??={},i.metadata[Symbol.struct_init]||=[],i.metadata[Symbol.struct_init].push({name:s,type:t,length:e}),n}}function gR(t){TR(t);const{options:e,members:n}=t.constructor[dR(t.constructor)][Symbol.struct_metadata],i=new Uint8Array(mR(t)),s=new DataView(i.buffer);for(const[o,{type:r,length:a,offset:l}]of n)for(let n=0;n<(a||1);n++){const u=l+mR(r)*n;let p=a>0?t[o][n]:t[o];if("string"==typeof p&&(p=p.charCodeAt(0)),!pR(r)){i.set(p?gR(p):new Uint8Array(mR(r)),u);continue}const _="set"+oR(r);"setInt64"!=_?"setUint64"!=_?s[_](u,Number(p),!e.bigEndian):s.setBigUint64(u,BigInt(p),!e.bigEndian):s.setBigInt64(u,BigInt(p),!e.bigEndian)}return i}function OR(t,e){TR(t);const{options:n,members:i}=t.constructor[dR(t.constructor)][Symbol.struct_metadata],s=e instanceof Uint8Array?e:new Uint8Array("buffer"in e?e.buffer:e),o=new DataView(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength));for(const[e,{type:r,offset:a,length:l}]of i)for(let i=0;i<(l||1);i++){let u=l>0?t[e]:t;const p=l>0?i:e,_=a+mR(r)*i;if("string"==typeof t[e]){t[e]=t[e].slice(0,i)+String.fromCharCode(o.getUint8(_))+t[e].slice(i+1);continue}if(!pR(r)){if(null===u[p]||void 0===u[p])continue;OR(u[p],new Uint8Array(s.slice(_,_+mR(r))));continue}l>0&&(u||=[]);const d="get"+oR(r);"getInt64"!=d?u[p]="getUint64"!=d?o[d](_,!n.bigEndian):o.getBigUint64(_,!n.bigEndian):u[p]=o.getBigInt64(_,!n.bigEndian)}}Symbol.metadata??=Symbol.for("Symbol.metadata");const MR=Object.fromEntries(aR.map((t=>{return[t,(e=t,function(t,n){return"number"==typeof t?fR(e,t):fR(e)(t,n)})];var e})));var RR=function(t,e,n,i,s,o){function r(t){if(void 0!==t&&"function"!=typeof t)throw new TypeError("Function expected");return t}for(var a,l=i.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!e&&t?i.static?t:t.prototype:null,_=e||(p?Object.getOwnPropertyDescriptor(p,i.name):{}),d=!1,h=n.length-1;h>=0;h--){var c={};for(var T in i)c[T]="access"===T?{}:i[T];for(var T in i.access)c.access[T]=i.access[T];c.addInitializer=function(t){if(d)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(t||null))};var I=(0,n[h])("accessor"===l?{get:_.get,set:_.set}:_[u],c);if("accessor"===l){if(void 0===I)continue;if(null===I||"object"!=typeof I)throw new TypeError("Object expected");(a=r(I.get))&&(_.get=a),(a=r(I.set))&&(_.set=a),(a=r(I.init))&&s.unshift(a)}else(a=r(I))&&("field"===l?s.unshift(a):_[u]=a)}p&&Object.defineProperty(p,i.name,_),d=!0},AR=function(t,e,n){for(var i=arguments.length>2,s=0;s{var t,e,n,i,s,o,r,a,l,u,p;let _,d,h,c,T,I,m,E,f,g,O,M,R,A=[ER()],S=[],C=[],L=[],y=[],D=[],N=[],b=[],v=[],w=[],F=[],P=[],k=[],V=[],Y=[],x=[],U=[],B=[],X=[],G=[],H=[],W=[],j=[],K=[];var q=d=class{constructor(t){if(this.data=AR(this,C,void 0),this.size=(AR(this,L),AR(this,y,void 0)),this.mode=(AR(this,D),AR(this,N,void 0)),this.nlink=(AR(this,b),AR(this,v,void 0)),this.uid=(AR(this,w),AR(this,F,void 0)),this.gid=(AR(this,P),AR(this,k,void 0)),this.atimeMs=(AR(this,V),AR(this,Y,void 0)),this.birthtimeMs=(AR(this,x),AR(this,U,void 0)),this.mtimeMs=(AR(this,B),AR(this,X,void 0)),this.ctimeMs=(AR(this,G),AR(this,H,void 0)),this.ino=(AR(this,W),AR(this,j,void 0)),AR(this,K),t){const e=mR(q),n=e-mR("uint64");if(t.byteLength{const $="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;h=[(t=MR).uint64.bind(t)],c=[(e=MR).uint32.bind(e)],T=[(n=MR).uint16.bind(n)],I=[(i=MR).uint32.bind(i)],m=[(s=MR).uint32.bind(s)],E=[(o=MR).uint32.bind(o)],f=[(r=MR).float64.bind(r)],g=[(a=MR).float64.bind(a)],O=[(l=MR).float64.bind(l)],M=[(u=MR).float64.bind(u)],R=[(p=MR).uint64.bind(p)],RR(null,null,h,{kind:"field",name:"data",static:!1,private:!1,access:{has:t=>"data"in t,get:t=>t.data,set:(t,e)=>{t.data=e}},metadata:$},C,L),RR(null,null,c,{kind:"field",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:$},y,D),RR(null,null,T,{kind:"field",name:"mode",static:!1,private:!1,access:{has:t=>"mode"in t,get:t=>t.mode,set:(t,e)=>{t.mode=e}},metadata:$},N,b),RR(null,null,I,{kind:"field",name:"nlink",static:!1,private:!1,access:{has:t=>"nlink"in t,get:t=>t.nlink,set:(t,e)=>{t.nlink=e}},metadata:$},v,w),RR(null,null,m,{kind:"field",name:"uid",static:!1,private:!1,access:{has:t=>"uid"in t,get:t=>t.uid,set:(t,e)=>{t.uid=e}},metadata:$},F,P),RR(null,null,E,{kind:"field",name:"gid",static:!1,private:!1,access:{has:t=>"gid"in t,get:t=>t.gid,set:(t,e)=>{t.gid=e}},metadata:$},k,V),RR(null,null,f,{kind:"field",name:"atimeMs",static:!1,private:!1,access:{has:t=>"atimeMs"in t,get:t=>t.atimeMs,set:(t,e)=>{t.atimeMs=e}},metadata:$},Y,x),RR(null,null,g,{kind:"field",name:"birthtimeMs",static:!1,private:!1,access:{has:t=>"birthtimeMs"in t,get:t=>t.birthtimeMs,set:(t,e)=>{t.birthtimeMs=e}},metadata:$},U,B),RR(null,null,O,{kind:"field",name:"mtimeMs",static:!1,private:!1,access:{has:t=>"mtimeMs"in t,get:t=>t.mtimeMs,set:(t,e)=>{t.mtimeMs=e}},metadata:$},X,G),RR(null,null,M,{kind:"field",name:"ctimeMs",static:!1,private:!1,access:{has:t=>"ctimeMs"in t,get:t=>t.ctimeMs,set:(t,e)=>{t.ctimeMs=e}},metadata:$},H,W),RR(null,null,R,{kind:"field",name:"ino",static:!1,private:!1,access:{has:t=>"ino"in t,get:t=>t.ino,set:(t,e)=>{t.ino=e}},metadata:$},j,K),RR(null,_={value:d},A,{kind:"class",name:d.name,metadata:$},null,S),q=d=_.value,$&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:$}),AR(d,S)})(),q=d})();var LR=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},yR=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class DR extends nR{async ready(){this._initialized||(await this.checkRoot(),this._initialized=!0)}constructor(t){super(),this.store=t,this._initialized=!1}metadata(){return{...super.metadata(),name:this.store.name}}async empty(){await this.store.clear(),await this.checkRoot()}emptySync(){this.store.clearSync(),this.checkRootSync()}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=LR(n,this.store.transaction(),!0),s=bO(t),o=bO(e),r=await this.findInode(i,s.dir,"rename"),a=kO(await this.get(i,r.data,s.dir,"rename"));if(!a[s.base])throw AO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0===(o.dir+"/").indexOf(t+"/"))throw new AO(MO.EBUSY,s.dir);const u=o.dir==s.dir,p=u?r:await this.findInode(i,o.dir,"rename"),_=u?a:kO(await this.get(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new CR(await this.get(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw AO.With("EPERM",e,"rename");await i.remove(t.data),await i.remove(_[o.base])}_[o.base]=l,await i.set(r.data,VO(a)),await i.set(p.data,VO(_)),await i.commit()}catch(t){n.error=t,n.hasError=!0}finally{const t=yR(n);t&&await t}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=LR(n,this.store.transaction(),!1),s=bO(t),o=bO(e),r=this.findInodeSync(i,s.dir,"rename"),a=kO(this.getSync(i,r.data,s.dir,"rename"));if(!a[s.base])throw AO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0==(o.dir+"/").indexOf(t+"/"))throw new AO(MO.EBUSY,s.dir);const u=o.dir===s.dir,p=u?r:this.findInodeSync(i,o.dir,"rename"),_=u?a:kO(this.getSync(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new CR(this.getSync(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw AO.With("EPERM",e,"rename");i.removeSync(t.data),i.removeSync(_[o.base])}_[o.base]=l,i.setSync(r.data,VO(a)),i.setSync(p.data,VO(_)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{yR(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{const n=LR(e,this.store.transaction(),!0);return(await this.findInode(n,t,"stat")).toStats()}catch(t){e.error=t,e.hasError=!0}finally{const t=yR(e);t&&await t}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=LR(e,this.store.transaction(),!1);return this.findInodeSync(n,t,"stat").toStats()}catch(t){e.error=t,e.hasError=!0}finally{yR(e)}}async createFile(t,e,n){const i=await this.commitNew(t,mM,n,new Uint8Array,"createFile");return new eR(this,t,e,i.toStats(),new Uint8Array)}createFileSync(t,e,n){const i=this.commitNewSync(t,mM,n,new Uint8Array,"createFile");return new eR(this,t,e,i.toStats(),new Uint8Array)}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=LR(n,this.store.transaction(),!0),s=await this.findInode(i,t,"openFile"),o=await this.get(i,s.data,t,"openFile");return new eR(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{const t=yR(n);t&&await t}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=LR(n,this.store.transaction(),!1),s=this.findInodeSync(i,t,"openFile"),o=this.getSync(i,s.data,t,"openFile");return new eR(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{yR(n)}}async unlink(t){return this.remove(t,!1,"unlink")}unlinkSync(t){this.removeSync(t,!1,"unlink")}async rmdir(t){if((await this.readdir(t)).length)throw AO.With("ENOTEMPTY",t,"rmdir");await this.remove(t,!0,"rmdir")}rmdirSync(t){if(this.readdirSync(t).length)throw AO.With("ENOTEMPTY",t,"rmdir");this.removeSync(t,!0,"rmdir")}async mkdir(t,e){await this.commitNew(t,fM,e,wO("{}"),"mkdir")}mkdirSync(t,e){this.commitNewSync(t,fM,e,wO("{}"),"mkdir")}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{const n=LR(e,this.store.transaction(),!0),i=await this.findInode(n,t,"readdir");return Object.keys(kO(await this.get(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{const t=yR(e);t&&await t}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=LR(e,this.store.transaction(),!1),i=this.findInodeSync(n,t,"readdir");return Object.keys(kO(this.getSync(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{yR(e)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=LR(i,this.store.transaction(),!0),o=await this._findInode(s,t,"sync"),r=new CR(await this.get(s,o,t,"sync")),a=r.update(n);await s.set(r.data,e),a&&await s.set(o,gR(r)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=yR(i);t&&await t}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=LR(i,this.store.transaction(),!1),o=this._findInodeSync(s,t,"sync"),r=new CR(this.getSync(s,o,t,"sync")),a=r.update(n);s.setSync(r.data,e),a&&s.setSync(o,gR(r)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{yR(i)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=LR(n,this.store.transaction(),!0),s=DO(e),o=await this.findInode(i,s,"link"),r=kO(await this.get(i,o.data,s,"link")),a=await this._findInode(i,t,"link"),l=new CR(await this.get(i,a,t,"link"));l.nlink++,r[NO(e)]=a,i.setSync(a,gR(l)),i.setSync(o.data,VO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{const t=yR(n);t&&await t}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=LR(n,this.store.transaction(),!1),s=DO(e),o=this.findInodeSync(i,s,"link"),r=kO(this.getSync(i,o.data,s,"link")),a=this._findInodeSync(i,t,"link"),l=new CR(this.getSync(i,a,t,"link"));l.nlink++,r[NO(e)]=a,i.setSync(a,gR(l)),i.setSync(o.data,VO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{yR(n)}}async checkRoot(){const t={stack:[],error:void 0,hasError:!1};try{const e=LR(t,this.store.transaction(),!0);if(await e.get(0n))return;const n=new CR;n.ino=0n,n.mode=511|fM,await e.set(n.data,wO("{}")),await e.set(0n,gR(n)),await e.commit()}catch(e){t.error=e,t.hasError=!0}finally{const e=yR(t);e&&await e}}checkRootSync(){const t={stack:[],error:void 0,hasError:!1};try{const e=LR(t,this.store.transaction(),!1);if(e.getSync(0n))return;const n=new CR;n.ino=0n,n.mode=511|fM,e.setSync(n.data,wO("{}")),e.setSync(0n,gR(n)),e.commitSync()}catch(e){t.error=e,t.hasError=!0}finally{yR(t)}}async _findInode(t,e,n,i=new Set){if(i.has(e))throw new AO(MO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=bO(e),r="/"==s?new CR(await this.get(t,0n,s,n)):await this.findInode(t,s,n,i),a=kO(await this.get(t,r.data,s,n));if(!(o in a))throw AO.With("ENOENT",LO(s,o),n);return a[o]}_findInodeSync(t,e,n,i=new Set){if(i.has(e))throw new AO(MO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=bO(e),r="/"==s?new CR(this.getSync(t,0n,s,n)):this.findInodeSync(t,s,n,i),a=kO(this.getSync(t,r.data,s,n));if(!(o in a))throw AO.With("ENOENT",LO(s,o),n);return a[o]}async findInode(t,e,n,i=new Set){const s=await this._findInode(t,e,n,i);return new CR(await this.get(t,s,e,n))}findInodeSync(t,e,n,i=new Set){const s=this._findInodeSync(t,e,n,i);return new CR(this.getSync(t,s,e,n))}async get(t,e,n,i){const s=await t.get(e);if(!s)throw AO.With("ENOENT",n,i);return s}getSync(t,e,n,i){const s=t.getSync(e);if(!s)throw AO.With("ENOENT",n,i);return s}async allocNew(t,e,n){for(let e=0;e<5;e++){const e=XO();if(!await t.get(e))return e}throw new AO(MO.ENOSPC,"No IDs available",e,n)}allocNewSync(t,e,n){for(let e=0;e<5;e++){const e=XO();if(!t.getSync(e))return e}throw new AO(MO.ENOSPC,"No IDs available",e,n)}async commitNew(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw AO.With("EEXIST",t,s);const r=LR(o,this.store.transaction(),!0),{dir:a,base:l}=bO(t),u=await this.findInode(r,a,s),p=kO(await this.get(r,u.data,a,s));if(p[l])throw AO.With("EEXIST",t,s);const _=new CR;return _.ino=await this.allocNew(r,t,s),_.data=await this.allocNew(r,t,s),_.mode=n|e,_.uid=u.mode&MM?u.uid:GO.uid,_.gid=u.mode&RM?u.gid:GO.gid,_.size=i.length,await r.set(_.ino,gR(_)),await r.set(_.data,i),p[l]=_.ino,await r.set(u.data,VO(p)),await r.commit(),_}catch(t){o.error=t,o.hasError=!0}finally{const t=yR(o);t&&await t}}commitNewSync(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw AO.With("EEXIST",t,s);const r=LR(o,this.store.transaction(),!1),{dir:a,base:l}=bO(t),u=this.findInodeSync(r,a,s),p=kO(this.getSync(r,u.data,a,s));if(p[l])throw AO.With("EEXIST",t,s);const _=new CR;return _.ino=this.allocNewSync(r,t,s),_.data=this.allocNewSync(r,t,s),_.size=i.length,_.mode=n|e,_.uid=u.mode&MM?u.uid:GO.uid,_.gid=u.mode&RM?u.gid:GO.gid,r.setSync(_.ino,gR(_)),r.setSync(_.data,i),p[l]=_.ino,r.setSync(u.data,VO(p)),r.commitSync(),_}catch(t){o.error=t,o.hasError=!0}finally{yR(o)}}async remove(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=LR(i,this.store.transaction(),!0),{dir:o,base:r}=bO(t),a=await this.findInode(s,o,n),l=kO(await this.get(s,a.data,o,n));if(!l[r])throw AO.With("ENOENT",t,"remove");const u=l[r],p=new CR(await this.get(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw AO.With("EISDIR",t,"remove");await s.set(a.data,VO(l)),--p.nlink<1&&(await s.remove(p.data),await s.remove(u)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=yR(i);t&&await t}}removeSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=LR(i,this.store.transaction(),!1),{dir:o,base:r}=bO(t),a=this.findInodeSync(s,o,n),l=kO(this.getSync(s,a.data,o,n)),u=l[r];if(!u)throw AO.With("ENOENT",t,"remove");const p=new CR(this.getSync(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw AO.With("EISDIR",t,"remove");s.setSync(a.data,VO(l)),--p.nlink<1&&(s.removeSync(p.data),s.removeSync(u)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{yR(i)}}}class NR{constructor(t){this.store=t,this.done=!1}async[Symbol.asyncDispose](){this.done||await this.abort()}[Symbol.dispose](){this.done||this.abortSync()}}class bR extends NR{async keys(){return this.keysSync()}async get(t){return this.getSync(t)}async set(t,e){return this.setSync(t,e)}async remove(t){return this.removeSync(t)}async commit(){return this.commitSync()}async abort(){return this.abortSync()}}class vR extends bR{constructor(){super(...arguments),this.originalData=new Map,this.modifiedKeys=new Set}keysSync(){return this.store.keys()}getSync(t){const e=this.store.get(t);return this.stashOldValue(t,e),e}setSync(t,e){return this.markModified(t),this.store.set(t,e)}removeSync(t){this.markModified(t),this.store.delete(t)}commitSync(){this.done=!0}abortSync(){if(this.done){for(const t of this.modifiedKeys){const e=this.originalData.get(t);e?this.store.set(t,e):this.store.delete(t)}this.done=!0}}stashOldValue(t,e){this.originalData.has(t)||this.originalData.set(t,e)}markModified(t){this.modifiedKeys.add(t),this.originalData.has(t)||this.originalData.set(t,this.store.get(t))}}class wR extends Map{constructor(t="tmp"){super(),this.name=t}async sync(){}clearSync(){this.clear()}transaction(){return new vR(this)}}const FR={name:"InMemory",isAvailable:()=>!0,options:{name:{type:"string",required:!1}},create({name:t}){const e=new DR(new wR(t));return e.checkRootSync(),e}};"function"==typeof SuppressedError&&SuppressedError;class PR{constructor(){this.isEnabled=!1,this.sync=new Map,this.async=new Map}has(t){return this.isEnabled&&this.sync.has(t)}get(t){if(this.isEnabled)return this.sync.get(t)}set(t,e){this.isEnabled&&(this.sync.set(t,e),this.async.set(t,Promise.resolve(e)))}hasAsync(t){return this.isEnabled&&this.async.has(t)}getAsync(t){if(this.isEnabled)return this.async.get(t)}setAsync(t,e){this.isEnabled&&(this.async.set(t,e),e.then((e=>this.sync.set(t,e))))}clear(){this.isEnabled&&(this.sync.clear(),this.async.clear())}}const kR=new PR,VR=new PR;var YR=__webpack_require__(8287);function xR(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[t,"function"==typeof n?n.bind(e):n])))}const UR=new Map;let BR=100;function XR(t){const e=BR++;return UR.set(e,t),e}function GR(t){if(!UR.has(t))throw new AO(MO.EBADF);return UR.get(t)}const HR=new Map;function WR(t,e){if("/"!==t[0]&&(t="/"+t),t=LO(t),HR.has(t))throw new AO(MO.EINVAL,"Mount point "+t+" is already in use.");HR.set(t,e),VR.clear()}function jR(t){if("/"!==t[0]&&(t="/"+t),t=LO(t),!HR.has(t))throw new AO(MO.EINVAL,"Mount point "+t+" is already unmounted.");HR.delete(t),VR.clear()}function KR(t,e){const n=e?.root||"/";t=UO(yO(n,t));const i=[...HR].sort(((t,e)=>t[0].length>e[0].length?-1:1));for(const[e,s]of i)if(e.length<=t.length&&t.startsWith(e))return""===(t=t.slice(e.length>1?e.length:0))&&(t=n),{fs:s,path:t,mountPoint:e,root:n};throw new AO(MO.EIO,"No file system")}async function qR(){await Promise.all([...HR.values()].map((t=>t.ready())))}function $R(t,e){for(const[n,i]of Object.entries(e))t=t?.replaceAll(n,i);return t}function zR(t,e){"string"==typeof t.stack&&(t.stack=$R(t.stack,e));try{t.message=$R(t.message,e)}catch{}return t.path&&(t.path=$R(t.path,e)),t}function QR(t){"/"in t&&jR("/");for(const[e,n]of Object.entries(t))WR(e,n)}function JR(t,e){const n=t.metadata(),i=n.blockSize||4096;return{type:(e?BigInt:Number)(n.type),bsize:(e?BigInt:Number)(i),ffree:(e?BigInt:Number)(n.freeNodes||YM),files:(e?BigInt:Number)(n.totalNodes||YM),bavail:(e?BigInt:Number)(n.freeSpace/i),bfree:(e?BigInt:Number)(n.freeSpace/i),blocks:(e?BigInt:Number)(n.totalSpace/i)}}function ZR(t,e){const n=this?.credentials;if(n?.uid&&n?.gid&&n?.euid&&n?.egid)throw new AO(MO.EPERM,"Can not chroot() as non-root user");return e&&this?(this.root+=t,this):function(t,e=structuredClone(GO)){const n={root:t,credentials:HO(e)},i=xR(st,n),s=xR(it,n);return{...n,...i,promises:s}}(yO(this?.root||"/",t),n)}WR("/",FR.create({name:"root"}));class tA extends iR{off(t,e,n,i){return super.off(t,e,n,i)}removeListener(t,e,n,i){return super.removeListener(t,e,n,i)}constructor(t){super(),this.path=t}setMaxListeners(){throw AO.With("ENOSYS",this.path,"Watcher.setMaxListeners")}getMaxListeners(){throw AO.With("ENOSYS",this.path,"Watcher.getMaxListeners")}prependListener(){throw AO.With("ENOSYS",this.path,"Watcher.prependListener")}prependOnceListener(){throw AO.With("ENOSYS",this.path,"Watcher.prependOnceListener")}rawListeners(){throw AO.With("ENOSYS",this.path,"Watcher.rawListeners")}ref(){return this}unref(){return this}}class eA extends tA{constructor(t,e){super(t),this.options=e,function(t,e){const n=UO(t);iA.has(n)||iA.set(n,new Set);iA.get(n).add(e)}(t.toString(),this)}close(){super.emit("close"),function(t,e){const n=UO(t);iA.has(n)&&(iA.get(n).delete(e),0===iA.get(n).size&&iA.delete(n))}(this.path.toString(),this)}[Symbol.dispose](){this.close()}}class nA extends tA{constructor(t,e){super(t),this.options=e,this.start()}onInterval(){try{const n=uA(this.path);t=this.previous,e=n,(t.size!=e.size||+t.atime!=+e.atime||+t.mtime!=+e.mtime||+t.ctime!=+e.ctime||t.mode!=e.mode)&&(this.emit("change",n,this.previous),this.previous=n)}catch(t){this.emit("error",t)}var t,e}start(){const t=this.options.interval||5e3;try{this.previous=uA(this.path)}catch(t){return void this.emit("error",t)}this.intervalId=setInterval(this.onInterval.bind(this),t),this.options.persistent||"object"!=typeof this.intervalId||this.intervalId.unref()}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0),this.removeAllListeners()}}const iA=new Map;function sA(t,e){if(e=UO(e),iA.has(e))for(const n of iA.get(e))n.emit("change",t,NO(e));let n,i=e;for(;i!==n;)if(n=i,i=DO(i),iA.has(i))for(const n of iA.get(i))n.emit("change",t,e.slice(i.length+("/"==i?0:1)))}var oA=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},rA=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function aA(t,e){t=UO(t),e=UO(e);const n=KR(t,this),i=KR(e,this);if(xM.checkAccess&&!uA.call(this,DO(t)).hasAccess(KO,this))throw AO.With("EACCES",t,"rename");try{if(n===i)return n.fs.renameSync(n.path,i.path),sA("rename",t.toString()),void sA("change",e.toString());EA.call(this,e,mA(t)),dA.call(this,t),sA("rename",t.toString())}catch(s){throw zR(s,{[n.path]:t,[i.path]:e})}}function lA(t){t=UO(t);try{const{fs:e,path:n}=KR(XA.call(this,t),this);return e.existsSync(n)}catch(t){if(t.errno==MO.ENOENT)return!1;throw t}}function uA(t,e){t=UO(t);const{fs:n,path:i}=KR(XA.call(this,t),this);try{const t=n.statSync(i);if(xM.checkAccess&&!t.hasAccess(jO,this))throw AO.With("EACCES",i,"stat");return e?.bigint?new GM(t):t}catch(e){throw zR(e,{[i]:t})}}function pA(t,e){t=UO(t);const{fs:n,path:i}=KR(t,this);try{const t=n.statSync(i);return e?.bigint?new GM(t):t}catch(e){throw zR(e,{[i]:t})}}function _A(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=oA(n,hA.call(this,t,"r+"),!1);if(e||(e=0),e<0)throw new AO(MO.EINVAL);i.truncateSync(e)}catch(t){n.error=t,n.hasError=!0}finally{rA(n)}}function dA(t){t=UO(t);const{fs:e,path:n}=KR(t,this);try{if(xM.checkAccess&&!(kR.get(t)||e.statSync(n)).hasAccess(KO,this))throw AO.With("EACCES",n,"unlink");e.unlinkSync(n),sA("rename",t.toString())}catch(e){throw zR(e,{[n]:t})}}function hA(t,e,n,i=!0){t=UO(t);const s=YO(n,420),o=KM(e);t=i?XA.call(this,t):t;const{fs:r,path:a}=KR(t,this);let l;try{l=r.statSync(a)}catch{}if(!l){if(!zM(o)&&!JM(o)||"r+"==o)throw AO.With("ENOENT",t,"_open");const e=r.statSync(DO(a));if(xM.checkAccess&&!e.hasAccess(KO,this))throw AO.With("EACCES",DO(t),"_open");if(!e.isDirectory())throw AO.With("ENOTDIR",DO(t),"_open");return r.createFileSync(a,o,s)}if(xM.checkAccess&&(!l.hasAccess(s,this)||!l.hasAccess(qM(o),this)))throw AO.With("EACCES",t,"_open");if(ZM(o))throw AO.With("EEXIST",t,"_open");const u=r.openFileSync(a,o);return QM(o)&&u.truncateSync(0),u}function cA(t,e,n=WO){return XR(hA.call(this,t,e,n,!0))}function TA(t,e,n){return XR(hA.call(this,t,e,n,!1))}function IA(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=oA(i,hA.call(this,t,e,420,n),!1),o=s.statSync(),r=new Uint8Array(o.size);return s.readSync(r,0,o.size,0),r}catch(t){i.error=t,i.hasError=!0}finally{rA(i)}}function mA(t,e={}){const n=BO(e,null,"r",420);if(!$M(KM(n.flag)))throw new AO(MO.EINVAL,"Flag passed to readFile must allow for reading.");const i=YR.Buffer.from(IA.call(this,"number"==typeof t?GR(t).path:t.toString(),n.flag,!0));return n.encoding?i.toString(n.encoding):i}function EA(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=BO(n,"utf8","w+",420),o=KM(s.flag);if(!zM(o))throw new AO(MO.EINVAL,"Flag passed to writeFile must allow for writing.");if("string"!=typeof e&&!s.encoding)throw new AO(MO.EINVAL,"Encoding not specified");const r="string"==typeof e?YR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!r)throw new AO(MO.EINVAL,"Data not specified");oA(i,hA.call(this,"number"==typeof t?GR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength,0),sA("change",t.toString())}catch(t){i.error=t,i.hasError=!0}finally{rA(i)}}function fA(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=BO(n,"utf8","a+",420),o=KM(s.flag);if(!JM(o))throw new AO(MO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new AO(MO.EINVAL,"Encoding not specified");const r="string"==typeof e?YR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);oA(i,hA.call(this,"number"==typeof t?GR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength)}catch(t){i.error=t,i.hasError=!0}finally{rA(i)}}function gA(t,e){const n=GR(t).statSync();return e?.bigint?new GM(n):n}function OA(t){GR(t).closeSync(),UR.delete(t)}function MA(t,e=0){if(e||(e=0),e<0)throw new AO(MO.EINVAL);GR(t).truncateSync(e)}function RA(t){GR(t).syncSync()}function AA(t){GR(t).datasyncSync()}function SA(t,e,n,i,s){let o,r,a,l;if("string"==typeof e){l="number"==typeof n?n:null;const t="string"==typeof i?i:"utf8";r=0,o=YR.Buffer.from(e,t),a=o.byteLength}else o=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=n,a=i,l="number"==typeof s?s:null;const u=GR(t);l??(l=u.position);const p=u.writeSync(o,r,a,l);return sA("change",u.path),p}function CA(t,e,n,i,s){const o=GR(t),r="object"==typeof n?n.offset:n;return"object"==typeof n&&(i=n.length,s=n.position),s=Number(s),isNaN(s)&&(s=o.position),o.readSync(e,r,i,s)}function LA(t,e,n){GR(t).chownSync(e,n)}function yA(t,e){const n=YO(e,-1);if(n<0)throw new AO(MO.EINVAL,"Invalid mode.");GR(t).chmodSync(n)}function DA(t,e,n){GR(t).utimesSync(xO(e),xO(n))}function NA(t){t=UO(t);const{fs:e,path:n}=KR(XA.call(this,t),this);try{const i=kR.get(t)||e.statSync(n);if(!i.isDirectory())throw AO.With("ENOTDIR",n,"rmdir");if(xM.checkAccess&&!i.hasAccess(KO,this))throw AO.With("EACCES",n,"rmdir");e.rmdirSync(n),sA("rename",t.toString())}catch(e){throw zR(e,{[n]:t})}}function bA(t,e){e="object"==typeof e?e:{mode:e};const n=YO(e?.mode,511);t=XA.call(this,t);const{fs:i,path:s,root:o}=KR(t,this),r={[s]:t};try{if(!e?.recursive){if(xM.checkAccess&&!i.statSync(DO(s)).hasAccess(KO,this))throw AO.With("EACCES",DO(s),"mkdir");return i.mkdirSync(s,n)}const a=[];for(let e=s,n=t;!i.existsSync(e);e=DO(e),n=DO(n))a.unshift(e),r[e]=n;for(const t of a){if(xM.checkAccess&&!i.statSync(DO(t)).hasAccess(KO,this))throw AO.With("EACCES",DO(t),"mkdir");i.mkdirSync(t,n),sA("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw zR(t,r)}}function vA(t,e){e="object"==typeof e?e:{encoding:e},t=UO(t);const{fs:n,path:i}=KR(XA.call(this,t),this);let s;try{const e=kR.get(t)||n.statSync(i);if(kR.set(t,e),xM.checkAccess&&!e.hasAccess(jO,this))throw AO.With("EACCES",i,"readdir");if(!e.isDirectory())throw AO.With("ENOTDIR",i,"readdir");s=n.readdirSync(i)}catch(e){throw zR(e,{[i]:t})}const o=[];for(const r of s){const s=kR.get(yO(t,r))||n.statSync(yO(i,r));if(kR.set(yO(t,r),s),e?.withFileTypes?o.push(new JA(r,s)):"buffer"==e?.encoding?o.push(YR.Buffer.from(r)):o.push(r),s.isDirectory()&&e?.recursive)for(const n of vA.call(this,yO(t,r),{...e,_isIndirect:!0}))n instanceof JA?(n.path=yO(r,n.path),o.push(n)):YR.Buffer.isBuffer(n)?o.push(YR.Buffer.from(yO(r,PO(n)))):o.push(yO(r,n))}return e?._isIndirect||kR.clear(),o}function wA(t,e){if(t=UO(t),xM.checkAccess&&!uA(DO(t)).hasAccess(jO,this))throw AO.With("EACCES",DO(t),"link");if(e=UO(e),xM.checkAccess&&!uA(DO(e)).hasAccess(KO,this))throw AO.With("EACCES",DO(e),"link");const{fs:n,path:i}=KR(t,this),s=KR(e,this);if(n!=s.fs)throw AO.With("EXDEV",e,"link");try{if(xM.checkAccess&&!n.statSync(i).hasAccess(jO,this))throw AO.With("EACCES",i,"link");return n.linkSync(i,e)}catch(n){throw zR(n,{[i]:t,[s.path]:e})}}function FA(t,e,n="file"){if(!["file","dir","junction"].includes(n))throw new AO(MO.EINVAL,"Invalid type: "+n);if(lA.call(this,e))throw AO.With("EEXIST",e.toString(),"symlink");EA.call(this,e,t.toString());hA.call(this,e,"r+",420,!1).chmodSync(IM)}function PA(t,e){const n=YR.Buffer.from(IA.call(this,t.toString(),"r",!1)),i="object"==typeof e?e?.encoding:e;return"buffer"==i?n:n.toString(i)}function kA(t,e,n){const i=cA.call(this,t,"r+");LA(i,e,n),OA(i)}function VA(t,e,n){const i=TA.call(this,t,"r+");LA(i,e,n),OA(i)}function YA(t,e){const n=cA.call(this,t,"r+");yA(n,e),OA(n)}function xA(t,e){const n=TA.call(this,t,"r+");yA(n,e),OA(n)}function UA(t,e,n){const i=cA.call(this,t,"r+");DA(i,e,n),OA(i)}function BA(t,e,n){const i=TA.call(this,t,"r+");DA(i,e,n),OA(i)}function XA(t,e){t=UO(t);const n=(this?.root||"")+t;if(VR.has(n))return VR.get(n);const{base:i,dir:s}=bO(t),o="/"==s?"/":VR.get((this?.root||"")+s)||XA.call(this,s),r=yO(o,i),{fs:a,path:l}=KR(r,this);try{const i=kR.get(r)||a.statSync(l);if(kR.set(r,i),!i.isSymbolicLink())return VR.set(t,r),r;const s=LO(o,PA.call(this,r,e).toString()),u=VR.get((this?.root||"")+s)||XA.call(this,s);return VR.set(n,u),u}catch(e){if("ENOENT"==e.code)return t;throw zR(e,{[l]:r})}}function GA(t,e=384){if(xM.checkAccess&&!uA.call(this,t).hasAccess(e,this))throw new AO(MO.EACCES)}function HA(t,e){let n;t=UO(t);try{n=kR.get(t)||pA.bind(this)(t)}catch(t){if("ENOENT"!=t.code||!e?.force)throw t}if(n){switch(kR.set(t,n),n.mode&cM){case fM:if(e?.recursive)for(const n of vA.call(this,t,{_isIndirect:!0}))HA.call(this,yO(t,n),{...e,_isIndirect:!0});NA.call(this,t);break;case mM:case IM:case EM:case gM:dA.call(this,t);break;default:throw kR.clear(),new AO(MO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||kR.clear()}}function WA(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return bA.call(this,i),"buffer"==n?YR.Buffer.from(i):i}function jA(t,e,n){if(t=UO(t),e=UO(e),n&&n&$O&&lA(e))throw new AO(MO.EEXIST,"Destination file already exists.",e,"copyFile");EA.call(this,e,mA(t)),sA("rename",e.toString())}function KA(t,e,n){const i=GR(t);let s=0;for(const t of e)s+=i.readSync(t,0,t.byteLength,n+s);return s}function qA(t,e,n){const i=GR(t);let s=0;for(const t of e)s+=i.writeSync(new Uint8Array(t.buffer),0,t.byteLength,n+s);return s}function $A(t,e){return t=UO(t),new ZA(t,this)}function zA(t,e,n){t=UO(t),e=UO(e);const i=pA.call(this,t);if(n?.errorOnExist&&lA.call(this,e))throw new AO(MO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&cM){case fM:if(!n?.recursive)throw new AO(MO.EISDIR,t+" is a directory (not copied)",t,"cp");bA.call(this,e,{recursive:!0});for(const i of vA.call(this,t,{withFileTypes:!0}))n.filter&&!n.filter(yO(t,i.name),yO(e,i.name))||zA.call(this,yO(t,i.name),yO(e,i.name),n);break;case mM:case IM:jA.call(this,t,e);break;default:throw new AO(MO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&UA.call(this,e,i.atime,i.mtime)}function QA(t,e){t=UO(t);const{fs:n}=KR(t,this);return JR(n,e?.bigint)}class JA{get name(){return NO(this.path)}constructor(t,e){this.path=t,this.stats=e}get parentPath(){return this.path}isFile(){return this.stats.isFile()}isDirectory(){return this.stats.isDirectory()}isBlockDevice(){return this.stats.isBlockDevice()}isCharacterDevice(){return this.stats.isCharacterDevice()}isSymbolicLink(){return this.stats.isSymbolicLink()}isFIFO(){return this.stats.isFIFO()}isSocket(){return this.stats.isSocket()}}class ZA{checkClosed(){if(this.closed)throw new AO(MO.EBADF,"Can not use closed Dir")}constructor(t,e){this.path=t,this.context=e,this.closed=!1}close(t){if(this.closed=!0,!t)return Promise.resolve();t()}closeSync(){this.closed=!0}async _read(){return this.checkClosed(),this._entries??(this._entries=await fS.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}read(t){if(!t)return this._read();this._read().then((e=>t(void 0,e)))}readSync(){return this.checkClosed(),this._entries??(this._entries=vA.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}async next(){const t=await this._read();return t?{done:!1,value:t}:(await this.close(),{done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}var tS=__webpack_require__(6248);class eS extends tS.Readable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new AO(MO.EIO,e.toString()))}}}class nS extends tS.Writable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new AO(MO.EIO,e.toString()))}}}var iS=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},sS=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class oS{constructor(t,e){this.context=e;const n="number"!=typeof t;this.fd=n?XR(t):t,this.file=n?t:GR(t)}async chown(t,e){await this.file.chown(t,e),sA("change",this.file.path)}async chmod(t){const e=YO(t,-1);if(e<0)throw new AO(MO.EINVAL,"Invalid mode.");await this.file.chmod(e),sA("change",this.file.path)}datasync(){return this.file.datasync()}sync(){return this.file.sync()}async truncate(t){if(t||(t=0),t<0)throw new AO(MO.EINVAL);await this.file.truncate(t),sA("change",this.file.path)}async utimes(t,e){await this.file.utimes(xO(t),xO(e)),sA("change",this.file.path)}async appendFile(t,e={}){const n=BO(e,"utf8","a",420);if(!JM(KM(n.flag)))throw new AO(MO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof t&&!n.encoding)throw new AO(MO.EINVAL,"Encoding not specified");const i="string"==typeof t?YR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length),sA("change",this.file.path)}read(t,e,n,i){return isNaN(+i)&&(i=this.file.position),this.file.read(t,e,n,i)}async readFile(t){const e=BO(t,null,"r",292);if(!$M(KM(e.flag)))throw new AO(MO.EINVAL,"Flag passed must allow for reading.");const{size:n}=await this.stat(),{buffer:i}=await this.file.read(new Uint8Array(n),0,n,0),s=YR.Buffer.from(i);return e.encoding?s.toString(e.encoding):s}readableWebStream(t={}){const e=globalThis;if(!("ReadableStream"in e))throw new AO(MO.ENOSYS,"ReadableStream is missing on globalThis");return new e.ReadableStream({start:async t=>{try{const e=65536,n=1e7;let i=0,s=0,o=NaN;for(;o>0;){const r=await this.read(new Uint8Array(e),0,e,s);if(!r.bytesRead)return void t.close();if(t.enqueue(r.buffer.slice(0,r.bytesRead)),s+=r.bytesRead,++i>=n)throw new AO(MO.EFBIG,"Too many iterations on readable stream",this.file.path,"FileHandle.readableWebStream");o=r.bytesRead}}catch(e){t.error(e)}},type:t.type})}readLines(t){throw AO.With("ENOSYS",this.file.path,"FileHandle.readLines")}[Symbol.asyncDispose](){return this.close()}async stat(t){const e=await this.file.stat();if(xM.checkAccess&&!e.hasAccess(jO,this.context))throw AO.With("EACCES",this.file.path,"stat");return t?.bigint?new GM(e):e}async write(t,e,n,i){let s,o,r;if("string"==typeof t){i="number"==typeof e?e:null;const a="string"==typeof n?n:"utf8";o=0,s=YR.Buffer.from(t,a),r=s.length}else s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),o=e,r=n,i="number"==typeof i?i:null;i??(i=this.file.position);const a=await this.file.write(s,o,r,i);return sA("change",this.file.path),{buffer:s,bytesWritten:a}}async writeFile(t,e={}){const n=BO(e,"utf8","w",420);if(!zM(KM(n.flag)))throw new AO(MO.EINVAL,"Flag passed must allow for writing.");if("string"!=typeof t&&!n.encoding)throw new AO(MO.EINVAL,"Encoding not specified");const i="string"==typeof t?YR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length,0),sA("change",this.file.path)}async close(){await this.file.close(),UR.delete(this.fd)}async writev(t,e){let n=0;for(const i of t)n+=(await this.write(i,0,i.length,e+n)).bytesWritten;return{bytesWritten:n,buffers:t}}async readv(t,e){let n=0;for(const i of t)n+=(await this.read(i,0,i.byteLength,e+n)).bytesRead;return{bytesRead:n,buffers:t}}createReadStream(t){const e=new eS({highWaterMark:t?.highWaterMark||65536,encoding:t.encoding,read:async t=>{try{const n=await this.read(new Uint8Array(t),0,t,this.file.position);e.push(n.bytesRead?n.buffer.slice(0,n.bytesRead):null),this.file.position+=n.bytesRead}catch(t){e.destroy(t)}}});return e.path=this.file.path,e}createWriteStream(t){const e=new nS({highWaterMark:t?.highWaterMark,encoding:t?.encoding,write:async(t,e,n)=>{try{const{bytesWritten:i}=await this.write(t,null,e);n(i==t.length?null:new Error("Failed to write full chunk"))}catch(t){n(t)}}});return e.path=this.file.path,e}}async function rS(t,e){t=UO(t),e=UO(e);const n=KR(t,this),i=KR(e,this);if(xM.checkAccess&&!(await lS.call(this,DO(t))).hasAccess(KO,this))throw AO.With("EACCES",t,"rename");try{if(n.mountPoint==i.mountPoint)return await n.fs.rename(n.path,i.path),sA("rename",t.toString()),void sA("change",e.toString());await TS.call(this,e,await cS(t)),await _S.call(this,t),sA("rename",t.toString())}catch(s){throw zR(s,{[n.path]:t,[i.path]:e})}}async function aS(t){try{const{fs:e,path:n}=KR(await DS.call(this,t),this);return await e.exists(n)}catch(t){if(t instanceof AO&&"ENOENT"==t.code)return!1;throw t}}async function lS(t,e){t=UO(t);const{fs:n,path:i}=KR(await DS.call(this,t),this);try{const t=await n.stat(i);if(xM.checkAccess&&!t.hasAccess(jO,this))throw AO.With("EACCES",i,"stat");return e?.bigint?new GM(t):t}catch(e){throw zR(e,{[i]:t})}}async function uS(t,e){t=UO(t);const{fs:n,path:i}=KR(t,this);try{const t=await n.stat(i);return e?.bigint?new GM(t):t}catch(e){throw zR(e,{[i]:t})}}async function pS(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=iS(n,await hS.call(this,t,"r+"),!0);await i.truncate(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=sS(n);t&&await t}}async function _S(t){t=UO(t);const{fs:e,path:n}=KR(t,this);try{if(xM.checkAccess&&!(await(kR.getAsync(t)||e.stat(n))).hasAccess(KO,this))throw AO.With("EACCES",n,"unlink");await e.unlink(n),sA("rename",t.toString())}catch(e){throw zR(e,{[n]:t})}}async function dS(t,e,n=420,i){t=UO(t);const s=YO(n,420),o=KM(e);t=i?await DS.call(this,t):t;const{fs:r,path:a}=KR(t,this),l=await r.stat(a).catch((()=>null));if(!l){if(!zM(o)&&!JM(o)||"r+"==o)throw AO.With("ENOENT",t,"_open");const e=await r.stat(DO(a));if(xM.checkAccess&&!e.hasAccess(KO,this))throw AO.With("EACCES",DO(t),"_open");if(!e.isDirectory())throw AO.With("ENOTDIR",DO(t),"_open");return new oS(await r.createFile(a,o,s),this)}if(xM.checkAccess&&!l.hasAccess(qM(o),this))throw AO.With("EACCES",t,"_open");if(ZM(o))throw AO.With("EEXIST",t,"_open");const u=new oS(await r.openFile(a,o),this);return QM(o)&&await u.truncate(0),u}async function hS(t,e="r",n=420){return await dS.call(this,t,e,n,!0)}async function cS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=BO(e,null,"r",420),s=iS(n,"object"==typeof t&&"fd"in t?t:await hS.call(this,t,i.flag,i.mode),!0);return await s.readFile(i)}catch(t){n.error=t,n.hasError=!0}finally{const t=sS(n);t&&await t}}async function TS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=BO(n,"utf8","w+",420),o=iS(i,t instanceof oS?t:await hS.call(this,t.toString(),s.flag,s.mode),!0),r=e;if("string"!=typeof r&&!(r instanceof Uint8Array))throw new AO(MO.EINVAL,"Iterables and streams not supported",o.file.path,"writeFile");await o.writeFile(r,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function IS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=BO(n,"utf8","a",420);if(!JM(KM(s.flag)))throw new AO(MO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new AO(MO.EINVAL,"Encoding not specified");const o="string"==typeof e?YR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=iS(i,"object"==typeof t&&"fd"in t?t:await hS.call(this,t,s.flag,s.mode),!0);await r.appendFile(o,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function mS(t){t=await DS.call(this,t);const{fs:e,path:n}=KR(t,this);try{const i=await(kR.getAsync(t)||e.stat(n));if(!i)throw AO.With("ENOENT",t,"rmdir");if(!i.isDirectory())throw AO.With("ENOTDIR",n,"rmdir");if(xM.checkAccess&&!i.hasAccess(KO,this))throw AO.With("EACCES",n,"rmdir");await e.rmdir(n),sA("rename",t.toString())}catch(e){throw zR(e,{[n]:t})}}async function ES(t,e){e="object"==typeof e?e:{mode:e};const n=YO(e?.mode,511);t=await DS.call(this,t);const{fs:i,path:s,root:o}=KR(t,this),r={[s]:t};try{if(!e?.recursive){if(xM.checkAccess&&!(await i.stat(DO(s))).hasAccess(KO,this))throw AO.With("EACCES",DO(s),"mkdir");return await i.mkdir(s,n),void sA("rename",t.toString())}const a=[];for(let e=s,n=t;!await i.exists(e);e=DO(e),n=DO(n))a.unshift(e),r[e]=n;for(const t of a){if(xM.checkAccess&&!(await i.stat(DO(t))).hasAccess(KO,this))throw AO.With("EACCES",DO(t),"mkdir");await i.mkdir(t,n),sA("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw zR(t,r)}}async function fS(t,e){e="object"==typeof e?e:{encoding:e},t=await DS.call(this,t);const n=e=>{throw zR(e,{[s]:t})},{fs:i,path:s}=KR(t,this),o=kR.getAsync(t)||i.stat(s).catch(n);kR.setAsync(t,o);const r=await o;if(!r)throw AO.With("ENOENT",t,"readdir");if(xM.checkAccess&&!r.hasAccess(jO,this))throw AO.With("EACCES",t,"readdir");if(!r.isDirectory())throw AO.With("ENOTDIR",t,"readdir");const a=await i.readdir(s).catch(n),l=[];return await Promise.all(a.map((async o=>{let r;if(e?.recursive||e?.withFileTypes){const e=kR.getAsync(yO(t,o))||i.stat(yO(s,o)).catch(n);kR.setAsync(yO(t,o),e),r=await e}if(e?.withFileTypes?l.push(new JA(o,r)):"buffer"==e?.encoding?l.push(YR.Buffer.from(o)):l.push(o),e?.recursive&&r?.isDirectory())for(const n of await fS.call(this,yO(t,o),{...e,_isIndirect:!0}))n instanceof JA?(n.path=yO(o,n.path),l.push(n)):YR.Buffer.isBuffer(n)?l.push(YR.Buffer.from(yO(o,PO(n)))):l.push(yO(o,n))}))),e?._isIndirect||kR.clear(),l}async function gS(t,e){t=UO(t),e=UO(e);const{fs:n,path:i}=KR(t,this),s=KR(e,this);if(n!=s.fs)throw AO.With("EXDEV",e,"link");try{if(xM.checkAccess&&!(await n.stat(DO(t))).hasAccess(jO,this))throw AO.With("EACCES",DO(i),"link");if(xM.checkAccess&&!(await lS.call(this,DO(e))).hasAccess(KO,this))throw AO.With("EACCES",DO(e),"link");if(xM.checkAccess&&!(await n.stat(i)).hasAccess(jO,this))throw AO.With("EACCES",i,"link");return await n.link(i,s.path)}catch(n){throw zR(n,{[s.path]:e,[i]:t})}}async function OS(t,e,n="file"){const i={stack:[],error:void 0,hasError:!1};try{if(!["file","dir","junction"].includes(n))throw new AO(MO.EINVAL,"Invalid symlink type: "+n);if(await aS.call(this,e))throw AO.With("EEXIST",e.toString(),"symlink");const s=iS(i,await dS.call(this,e,"w+",420,!1),!0);await s.writeFile(t.toString()),await s.file.chmod(IM)}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function MS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=iS(n,await dS.call(this,UO(t),"r",420,!1),!0),s=await i.readFile(),o="object"==typeof e?e?.encoding:e;return"buffer"==o?s:s.toString(o)}catch(t){n.error=t,n.hasError=!0}finally{const t=sS(n);t&&await t}}async function RS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=iS(i,await hS.call(this,t,"r+"),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function AS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=iS(i,await dS.call(this,t,"r+",420,!1),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function SS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=iS(n,await hS.call(this,t,"r+"),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=sS(n);t&&await t}}async function CS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=iS(n,await dS.call(this,t,"r+",420,!1),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=sS(n);t&&await t}}async function LS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=iS(i,await hS.call(this,t,"r+"),!0);await s.utimes(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function yS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=iS(i,await dS.call(this,t,"r+",420,!1),!0);await s.utimes(new Date(e),new Date(n))}catch(t){i.error=t,i.hasError=!0}finally{const t=sS(i);t&&await t}}async function DS(t,e){t=UO(t);const n=(this?.root||"")+t;if(VR.hasAsync(n))return VR.getAsync(n);const{base:i,dir:s}=bO(t),o="/"==s?"/":await(VR.getAsync((this?.root||"")+s)||DS.call(this,s)),r=yO(o,i),{fs:a,path:l}=KR(r,this);try{const e=kR.getAsync(r)||a.stat(l);if(kR.setAsync(r,e),!(await e).isSymbolicLink())return VR.set(t,r),r;const i=LO(o,(await MS.call(this,r)).toString()),s=VR.getAsync((this?.root||"")+i)||DS.call(this,i);return VR.setAsync(n,s),await s}catch(e){if("ENOENT"==e.code)return t;throw zR(e,{[l]:r})}}function NS(t,e={}){return{[Symbol.asyncIterator](){const n=new eA(t.toString(),"string"!=typeof e?e:{encoding:e}),i=[];function s(){n.close();for(const t of i)t({value:null,done:!0});return i.length=0,Promise.resolve({value:null,done:!0})}return n.on("change",((t,e)=>{i.shift()?.({value:{eventType:t,filename:e},done:!1})})),{async next(){const{promise:t,resolve:e}=Promise.withResolvers();return i.push(e),t},return:s,throw:s}}}}async function bS(t,e=WO){if(!xM.checkAccess)return;if(!(await lS.call(this,t)).hasAccess(e,this))throw new AO(MO.EACCES)}async function vS(t,e){t=UO(t);const n=await(kR.getAsync(t)||uS.call(this,t).catch((t=>{if("ENOENT"!=t.code||!e?.force)throw t})));if(n){switch(kR.set(t,n),n.mode&cM){case fM:if(e?.recursive)for(const n of await fS.call(this,t,{_isIndirect:!0}))await vS.call(this,yO(t,n),{...e,_isIndirect:!0});await mS.call(this,t);break;case mM:case IM:case EM:case gM:await _S.call(this,t);break;default:throw kR.clear(),new AO(MO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||kR.clear()}}async function wS(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return await ES.call(this,i),"buffer"==n?YR.Buffer.from(i):i}async function FS(t,e,n){if(t=UO(t),e=UO(e),n&&n&$O&&await aS.call(this,e))throw new AO(MO.EEXIST,"Destination file already exists.",e,"copyFile");await TS.call(this,e,await cS.call(this,t)),sA("rename",e.toString())}function PS(t,e){return t=UO(t),Promise.resolve(new ZA(t,this))}async function kS(t,e,n){t=UO(t),e=UO(e);const i=await uS.call(this,t);if(n?.errorOnExist&&await aS.call(this,e))throw new AO(MO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&cM){case fM:{if(!n?.recursive)throw new AO(MO.EISDIR,t+" is a directory (not copied)",t,"cp");const[i]=await Promise.all([fS.call(this,t,{withFileTypes:!0}),ES.call(this,e,{recursive:!0})]),s=async i=>{n.filter&&!n.filter(yO(t,i.name),yO(e,i.name))||await kS.call(this,yO(t,i.name),yO(e,i.name),n)};await Promise.all(i.map(s));break}case mM:case IM:await FS.call(this,t,e);break;default:throw new AO(MO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&await LS.call(this,e,i.atime,i.mtime)}async function VS(t,e){t=UO(t);const{fs:n}=KR(t,this);return Promise.resolve(JR(n,e?.bigint))}const YS=()=>{};function xS(t,e,n=YS){rS.call(this,t,e).then((()=>n())).catch(n)}function US(t,e=YS){aS.call(this,t).then(e).catch((()=>e(!1)))}function BS(t,e,n=YS){n="function"==typeof e?e:n,lS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function XS(t,e,n=YS){n="function"==typeof e?e:n,uS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function GS(t,e=0,n=YS){n="function"==typeof e?e:n;const i="number"==typeof e?e:0;pS.call(this,t,i).then((()=>n())).catch(n)}function HS(t,e=YS){_S.call(this,t).then((()=>e())).catch(e)}function WS(t,e,n,i=YS){const s=YO(n,420);i="function"==typeof n?n:i,hS.call(this,t,e,s).then((t=>i(void 0,t.fd))).catch(i)}function jS(t,e,n=YS){n="function"==typeof e?e:n,cS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function KS(t,e,n,i=YS){i="function"==typeof n?n:i,TS.call(this,t,e,"function"!=typeof n?n:null).then((()=>i(void 0))).catch(i)}function qS(t,e,n,i=YS){const s="function"!=typeof n?n:void 0;i="function"==typeof n?n:i,IS.call(this,t,e,s).then((()=>i())).catch(i)}function $S(t,e,n=YS){n="function"==typeof e?e:n,GR(t).stat().then((t=>n(void 0,"object"==typeof e&&e?.bigint?new GM(t):t))).catch(n)}function zS(t,e=YS){const n=GR(t).close();UR.delete(t),n.then((()=>e())).catch(e)}function QS(t,e,n=YS){const i="number"==typeof e?e:0;n="function"==typeof e?e:n;const s=GR(t);if(i<0)throw new AO(MO.EINVAL);s.truncate(i).then((()=>n())).catch(n)}function JS(t,e=YS){GR(t).sync().then((()=>e())).catch(e)}function ZS(t,e=YS){GR(t).datasync().then((()=>e())).catch(e)}function tC(t,e,n,i,s,o=YS){let r,a,l,u,p;const _=new oS(t,this);if("string"==typeof e){switch(p="utf8",typeof n){case"function":o=n;break;case"number":u=n,p="string"==typeof i?i:"utf8",o="function"==typeof s?s:o;break;default:return void(o="function"==typeof i?i:"function"==typeof s?s:o)(new AO(MO.EINVAL,"Invalid arguments."))}r=YR.Buffer.from(e),a=0,l=r.length;const t=o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r.toString(p)))).catch(t)}else{r=YR.Buffer.from(e.buffer),a=n,l=i,u="number"==typeof s?s:null;const t="function"==typeof s?s:o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r))).catch(t)}}function eC(t,e,n,i,s,o=YS){new oS(t,this).read(e,n,i,s).then((({bytesRead:t,buffer:e})=>o(void 0,t,e))).catch(o)}function nC(t,e,n,i=YS){new oS(t,this).chown(e,n).then((()=>i())).catch(i)}function iC(t,e,n){new oS(t,this).chmod(e).then((()=>n())).catch(n)}function sC(t,e,n,i=YS){new oS(t,this).utimes(e,n).then((()=>i())).catch(i)}function oC(t,e=YS){mS.call(this,t).then((()=>e())).catch(e)}function rC(t,e,n=YS){ES.call(this,t,e).then((()=>n())).catch(n)}function aC(t,e,n=YS){n="function"==typeof e?e:n;const i="function"!=typeof e?e:{};fS.call(this,t,i).then((t=>n(void 0,t))).catch(n)}function lC(t,e,n=YS){gS.call(this,t,e).then((()=>n())).catch(n)}function uC(t,e,n,i=YS){const s="string"==typeof n?n:"file";i="function"==typeof n?n:i,OS.call(this,t,e,s).then((()=>i())).catch(i)}function pC(t,e,n=YS){n="function"==typeof e?e:n,MS.call(this,t).then((t=>n(void 0,t))).catch(n)}function _C(t,e,n,i=YS){RS.call(this,t,e,n).then((()=>i())).catch(i)}function dC(t,e,n,i=YS){AS.call(this,t,e,n).then((()=>i())).catch(i)}function hC(t,e,n=YS){SS.call(this,t,e).then((()=>n())).catch(n)}function cC(t,e,n=YS){CS.call(this,t,e).then((()=>n())).catch(n)}function TC(t,e,n,i=YS){LS.call(this,t,e,n).then((()=>i())).catch(i)}function IC(t,e,n,i=YS){yS.call(this,t,e,n).then((()=>i())).catch(i)}function mC(t,e,n=YS){n="function"==typeof e?e:n,DS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function EC(t,e,n=YS){const i="number"==typeof e?e:jO;n="function"==typeof e?e:n,bS.call(this,t,i).then((()=>n())).catch(n)}const fC=new Map;function gC(t,e,n){const i=UO(t.toString()),s="function"!=typeof e?e:{};if("function"==typeof e&&(n=e),!n)throw new AO(MO.EINVAL,"No listener specified",t.toString(),"watchFile");if(fC.has(i)){const t=fC.get(i);return void(t&&t.listeners.add(n))}const o=new nA(i,s);o.on("change",((t,e)=>{const n=fC.get(i);if(n)for(const i of n.listeners)i(t,e)})),fC.set(i,{watcher:o,listeners:new Set})}function OC(t,e=YS){const n=UO(t.toString()),i=fC.get(n);i&&(e&&e!==YS?i.listeners.delete(e):i.listeners.clear(),0===i.listeners.size&&(i.watcher.stop(),fC.delete(n)))}function MC(t,e,n){const i=new eA(UO(t),"object"==typeof e?e:{});return n="function"==typeof e?e:n,i.on("change",n||YS),i}function RC(t,e){const n=this;let i;const s=new eS({highWaterMark:(e="object"==typeof e?e:{encoding:e}).highWaterMark||65536,encoding:e.encoding||"utf8",async read(o){try{i||(i=await hS.call(n,t,"r",e?.mode));const r=await i.read(new Uint8Array(o),0,o,i.file.position);s.push(r.bytesRead?r.buffer.slice(0,r.bytesRead):null),i.file.position+=r.bytesRead,r.bytesRead||await i.close()}catch(t){await(i?.close()),s.destroy(t)}},destroy(t,e){i?.close().then((()=>e(t))).catch(YS)}});return s.path=t.toString(),s}function AC(t,e){const n=this;let i;e="object"==typeof e?e:{encoding:e};const s=new nS({highWaterMark:e?.highWaterMark,async write(s,o,r){try{i||(i=await hS.call(n,t,"w",e?.mode||438)),await i.write(s,0,o),r(void 0)}catch(t){await(i?.close()),r(t)}},destroy(t,e){e(t),i?.close().then((()=>e(t))).catch(e)},final(t){i?.close().then((()=>t())).catch(t)}});return s.path=t.toString(),s}function SC(t,e,n=YS){n="function"==typeof e?e:n,vS.call(this,t,"function"==typeof e?void 0:e).then((()=>n(void 0))).catch(n)}function CC(t,e,n=YS){n="function"==typeof e?e:n,wS.call(this,t,"function"!=typeof e?e:null).then((t=>n(void 0,t))).catch(n)}function LC(t,e,n,i=YS){i="function"==typeof n?n:i,FS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function yC(t,e,n,i=YS){i="function"==typeof n?n:i,new oS(t,this).readv(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesRead:e})=>i(void 0,e,t))).catch(i)}function DC(t,e,n,i=YS){i="function"==typeof n?n:i,new oS(t,this).writev(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesWritten:e})=>i(void 0,e,t))).catch(i)}function NC(t,e,n=YS){n="function"==typeof e?e:n,PS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}function bC(t,e,n,i=YS){i="function"==typeof n?n:i,kS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function vC(t,e,n=YS){n="function"==typeof e?e:n,VS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}async function wC(t,e){const n=await hS.call(this,t.toString(),"r"),i=await n.readFile();return await n.close(),new Blob([i],e)}var FC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},PC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function kC(t){return class extends t{constructor(){super(...arguments),this._queue=[],this._isInitialized=!1}get _queueRunning(){return!!this._queue.length}queueDone(){return new Promise((t=>{const e=()=>this._queueRunning?setTimeout(e):t();e()}))}async ready(){if(await super.ready(),await this.queueDone(),!this._isInitialized&&!this._disableSync){if(this.checkSync(),await this._sync.ready(),this._sync instanceof DR&&this instanceof DR){const t=this._sync.store.transaction(),e=this.store.transaction(),n=[];for(const i of await e.keys())n.push(e.get(i).then((e=>t.setSync(i,e))));return await Promise.all(n),void(this._isInitialized=!0)}try{await this.crossCopy("/"),this._isInitialized=!0}catch(t){throw this._isInitialized=!1,t}}}checkSync(t,e){if(this._disableSync)throw new AO(MO.ENOTSUP,"Sync caching has been disabled for this async file system",t,e);if(!this._sync)throw new AO(MO.ENOTSUP,"No sync cache is attached to this async file system",t,e)}renameSync(t,e){this.checkSync(t,"rename"),this._sync.renameSync(t,e),this.queue("rename",t,e)}statSync(t){return this.checkSync(t,"stat"),this._sync.statSync(t)}createFileSync(t,e,n){return this.checkSync(t,"createFile"),this._sync.createFileSync(t,e,n),this.queue("createFile",t,e,n),this.openFileSync(t,e)}openFileSync(t,e){this.checkSync(t,"openFile");const n=this._sync.openFileSync(t,e+"+"),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new eR(this,t,e,i,s)}unlinkSync(t){this.checkSync(t,"unlinkSync"),this._sync.unlinkSync(t),this.queue("unlink",t)}rmdirSync(t){this.checkSync(t,"rmdir"),this._sync.rmdirSync(t),this.queue("rmdir",t)}mkdirSync(t,e){this.checkSync(t,"mkdir"),this._sync.mkdirSync(t,e),this.queue("mkdir",t,e)}readdirSync(t){return this.checkSync(t,"readdir"),this._sync.readdirSync(t)}linkSync(t,e){this.checkSync(t,"link"),this._sync.linkSync(t,e),this.queue("link",t,e)}syncSync(t,e,n){this.checkSync(t,"sync"),this._sync.syncSync(t,e,n),this.queue("sync",t,e,n)}existsSync(t){return this.checkSync(t,"exists"),this._sync.existsSync(t)}async crossCopy(t){this.checkSync(t,"crossCopy");const e=await this.stat(t);if(!e.isDirectory()){const n={stack:[],error:void 0,hasError:!1};try{const i=FC(n,await this.openFile(t,KM("r")),!0),s=FC(n,this._sync.createFileSync(t,KM("w"),e.mode),!1),o=new Uint8Array(e.size);return await i.read(o),void s.writeSync(o,0,e.size)}catch(t){n.error=t,n.hasError=!0}finally{const t=PC(n);t&&await t}}if("/"!==t){const e=await this.stat(t);this._sync.mkdirSync(t,e.mode)}const n=[];for(const e of await this.readdir(t))n.push(this.crossCopy(yO(t,e)));await Promise.all(n)}async _next(){if(!this._queueRunning)return;const[t,...e]=this._queue.shift();await this[t](...e),await this._next()}queue(...t){this._queue.push(t),this._next()}}}new Map;kC(nR);new Map;Map;VC=nR;var VC;var YC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},xC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class UC{get isLocked(){return this._isLocked}constructor(t){this.previous=t,this.current=Promise.withResolvers(),this._isLocked=!0}async done(){await(this.previous?.done()),await this.current.promise}unlock(){this.current.resolve(),this._isLocked=!1}[Symbol.dispose](){this.unlock()}}class BC{async ready(){return await this._fs.ready()}metadata(){return this._fs.metadata()}addLock(){const t=new UC(this.currentLock);return this.currentLock=t,t}async lock(t,e){const n=this.currentLock,i=this.addLock(),s=(new Error).stack;return setTimeout((()=>{if(i.isLocked){const n=AO.With("EDEADLK",t,e);throw n.stack+=s?.slice(5),n}}),5e3),await(n?.done()),i}lockSync(t,e){if(this.currentLock?.isLocked)throw AO.With("EBUSY",t,e);return this.addLock()}get isLocked(){return!!this.currentLock?.isLocked}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,await this.lock(t,"rename"),!1);await this._fs.rename(t,e)}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,this.lockSync(t,"rename"),!1);return this._fs.renameSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,await this.lock(t,"stat"),!1);return await this._fs.stat(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,this.lockSync(t,"stat"),!1);return this._fs.statSync(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,await this.lock(t,"openFile"),!1);const i=await this._fs.openFile(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,this.lockSync(t,"openFile"),!1);const i=this._fs.openFileSync(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}async createFile(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{YC(i,await this.lock(t,"createFile"),!1);const s=await this._fs.createFile(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{xC(i)}}createFileSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{YC(i,this.lockSync(t,"createFile"),!1);const s=this._fs.createFileSync(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{xC(i)}}async unlink(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,await this.lock(t,"unlink"),!1);await this._fs.unlink(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}unlinkSync(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,this.lockSync(t,"unlink"),!1);return this._fs.unlinkSync(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}async rmdir(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,await this.lock(t,"rmdir"),!1);await this._fs.rmdir(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}rmdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,this.lockSync(t,"rmdir"),!1);return this._fs.rmdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}async mkdir(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,await this.lock(t,"mkdir"),!1);await this._fs.mkdir(t,e)}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}mkdirSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,this.lockSync(t,"mkdir"),!1);return this._fs.mkdirSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,await this.lock(t,"readdir"),!1);return await this._fs.readdir(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,this.lockSync(t,"readdir"),!1);return this._fs.readdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}async exists(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,await this.lock(t,"exists"),!1);return await this._fs.exists(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}existsSync(t){const e={stack:[],error:void 0,hasError:!1};try{YC(e,this.lockSync(t,"exists"),!1);return this._fs.existsSync(t)}catch(t){e.error=t,e.hasError=!0}finally{xC(e)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,await this.lock(t,"link"),!1);await this._fs.link(t,e)}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{YC(n,this.lockSync(t,"link"),!1);return this._fs.linkSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{xC(n)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{YC(i,await this.lock(t,"sync"),!1);await this._fs.sync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{xC(i)}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{YC(i,this.lockSync(t,"sync"),!1);return this._fs.syncSync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{xC(i)}}}var XC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},GC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});const HC="/.deleted";class WC extends nR{async ready(){await this.readable.ready(),await this.writable.ready(),await this._ready}constructor({writable:t,readable:e}){if(super(),this._isInitialized=!1,this._deletedFiles=new Set,this._deleteLog="",this._deleteLogUpdatePending=!1,this._deleteLogUpdateNeeded=!1,this.writable=t,this.readable=e,this.writable.metadata().readonly)throw new AO(MO.EINVAL,"Writable file system must be writable.");this._ready=this._initialize()}metadata(){return{...super.metadata(),name:jC.name}}async sync(t,e,n){await this.copyForWrite(t),await this.writable.exists(t)||await this.writable.createFile(t,"w",420),await this.writable.sync(t,e,n)}syncSync(t,e,n){this.copyForWriteSync(t),this.writable.syncSync(t,e,n)}async _initialize(){if(!this._isInitialized){try{const t=await this.writable.openFile(HC,KM("r")),{size:e}=await t.stat(),{buffer:n}=await t.read(new Uint8Array(e));this._deleteLog=PO(n)}catch(t){if(t.errno!==MO.ENOENT)throw t}this._isInitialized=!0,this._reparseDeletionLog()}}getDeletionLog(){return this._deleteLog}async restoreDeletionLog(t){this._deleteLog=t,this._reparseDeletionLog(),await this.updateLog("")}async rename(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),await this.copyForWrite(t);try{await this.writable.rename(t,e)}catch{if(this._deletedFiles.has(t))throw AO.With("ENOENT",t,"rename")}}renameSync(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),this.copyForWriteSync(t);try{this.writable.renameSync(t,e)}catch{if(this._deletedFiles.has(t))throw AO.With("ENOENT",t,"rename")}}async stat(t){this.checkInitialized();try{return await this.writable.stat(t)}catch{if(this._deletedFiles.has(t))throw AO.With("ENOENT",t,"stat");const e=await this.readable.stat(t);return e.mode|=146,e}}statSync(t){this.checkInitialized();try{return this.writable.statSync(t)}catch{if(this._deletedFiles.has(t))throw AO.With("ENOENT",t,"stat");const e=this.readable.statSync(t);return e.mode|=146,e}}async openFile(t,e){if(await this.writable.exists(t))return this.writable.openFile(t,e);const n=await this.readable.openFile(t,KM("r")),i=await n.stat(),{buffer:s}=await n.read(new Uint8Array(i.size));return new eR(this,t,e,i,s)}openFileSync(t,e){if(this.writable.existsSync(t))return this.writable.openFileSync(t,e);const n=this.readable.openFileSync(t,KM("r")),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new eR(this,t,e,i,s)}async createFile(t,e,n){return this.checkInitialized(),await this.writable.createFile(t,e,n),this.openFile(t,e)}createFileSync(t,e,n){return this.checkInitialized(),this.writable.createFileSync(t,e,n),this.openFileSync(t,e)}async link(t,e){this.checkInitialized(),await this.copyForWrite(t),await this.writable.link(t,e)}linkSync(t,e){this.checkInitialized(),this.copyForWriteSync(t),this.writable.linkSync(t,e)}async unlink(t){if(this.checkInitialized(),this.checkPath(t),!await this.exists(t))throw AO.With("ENOENT",t,"unlink");await this.writable.exists(t)&&await this.writable.unlink(t),await this.exists(t)&&await this.deletePath(t)}unlinkSync(t){if(this.checkInitialized(),this.checkPath(t),!this.existsSync(t))throw AO.With("ENOENT",t,"unlink");this.writable.existsSync(t)&&this.writable.unlinkSync(t),this.existsSync(t)&&this.deletePath(t)}async rmdir(t){if(this.checkInitialized(),!await this.exists(t))throw AO.With("ENOENT",t,"rmdir");if(await this.writable.exists(t)&&await this.writable.rmdir(t),await this.exists(t)){if((await this.readdir(t)).length)throw AO.With("ENOTEMPTY",t,"rmdir");await this.deletePath(t)}}rmdirSync(t){if(this.checkInitialized(),!this.existsSync(t))throw AO.With("ENOENT",t,"rmdir");if(this.writable.existsSync(t)&&this.writable.rmdirSync(t),this.existsSync(t)){if(this.readdirSync(t).length)throw AO.With("ENOTEMPTY",t,"rmdir");this.deletePath(t)}}async mkdir(t,e){if(this.checkInitialized(),await this.exists(t))throw AO.With("EEXIST",t,"mkdir");await this.createParentDirectories(t),await this.writable.mkdir(t,e)}mkdirSync(t,e){if(this.checkInitialized(),this.existsSync(t))throw AO.With("EEXIST",t,"mkdir");this.createParentDirectoriesSync(t),this.writable.mkdirSync(t,e)}async readdir(t){this.checkInitialized();const e=[];try{e.push(...await this.writable.readdir(t))}catch{}try{e.push(...(await this.readable.readdir(t)).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}readdirSync(t){this.checkInitialized();let e=[];try{e=e.concat(this.writable.readdirSync(t))}catch{}try{e=e.concat(this.readable.readdirSync(t).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}async deletePath(t){this._deletedFiles.add(t),await this.updateLog(`d${t}\n`)}async updateLog(t){if(this._deleteLog+=t,this._deleteLogUpdatePending)return void(this._deleteLogUpdateNeeded=!0);this._deleteLogUpdatePending=!0;const e=await this.writable.openFile(HC,KM("w"));try{await e.write(wO(this._deleteLog)),this._deleteLogUpdateNeeded&&(this._deleteLogUpdateNeeded=!1,await this.updateLog(""))}catch(t){this._deleteLogError=t}finally{this._deleteLogUpdatePending=!1}}_reparseDeletionLog(){this._deletedFiles.clear();for(const t of this._deleteLog.split("\n"))t.startsWith("d")&&this._deletedFiles.add(t.slice(1))}checkInitialized(){if(!this._isInitialized)throw new AO(MO.EPERM,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.");if(!this._deleteLogError)return;const t=this._deleteLogError;throw delete this._deleteLogError,t}checkPath(t){if(t==HC)throw AO.With("EPERM",t,"checkPath")}createParentDirectoriesSync(t){let e=DO(t);const n=[];for(;!this.writable.existsSync(e);)n.push(e),e=DO(e);for(const t of n.reverse())this.writable.mkdirSync(t,this.statSync(t).mode)}async createParentDirectories(t){let e=DO(t);const n=[];for(;!await this.writable.exists(e);)n.push(e),e=DO(e);for(const t of n.reverse()){const e=await this.stat(t);await this.writable.mkdir(t,e.mode)}}copyForWriteSync(t){if(!this.existsSync(t))throw AO.With("ENOENT",t,"copyForWrite");this.writable.existsSync(DO(t))||this.createParentDirectoriesSync(t),this.writable.existsSync(t)||this.copyToWritableSync(t)}async copyForWrite(t){if(!await this.exists(t))throw AO.With("ENOENT",t,"copyForWrite");if(await this.writable.exists(DO(t))||await this.createParentDirectories(t),!await this.writable.exists(t))return this.copyToWritable(t)}copyToWritableSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=this.statSync(t);if(n.isDirectory())return void this.writable.mkdirSync(t,n.mode);const i=new Uint8Array(n.size);XC(e,this.readable.openFileSync(t,"r"),!1).readSync(i);XC(e,this.writable.createFileSync(t,"w",146|n.mode),!1).writeSync(i)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}async copyToWritable(t){const e={stack:[],error:void 0,hasError:!1};try{const n=await this.stat(t);if(n.isDirectory())return void await this.writable.mkdir(t,n.mode);const i=new Uint8Array(n.size),s=XC(e,await this.readable.openFile(t,"r"),!0);await s.read(i);const o=XC(e,await this.writable.createFile(t,"w",146|n.mode),!0);await o.write(i)}catch(t){e.error=t,e.hasError=!0}finally{const t=GC(e);t&&await t}}}class jC extends(function(t){return class extends BC{constructor(...e){super(),this._fs=new t(...e)}}}(WC)){}function KC(t,e,n){if(t instanceof AO)return t;const i=t instanceof DOMException?MO[function(t){switch(t.name){case"IndexSizeError":case"HierarchyRequestError":case"InvalidCharacterError":case"InvalidStateError":case"SyntaxError":case"NamespaceError":case"TypeMismatchError":case"ConstraintError":case"VersionError":case"URLMismatchError":case"InvalidNodeTypeError":return"EINVAL";case"WrongDocumentError":return"EXDEV";case"NoModificationAllowedError":case"InvalidModificationError":case"InvalidAccessError":case"SecurityError":case"NotAllowedError":return"EACCES";case"NotFoundError":return"ENOENT";case"NotSupportedError":return"ENOTSUP";case"InUseAttributeError":return"EBUSY";case"NetworkError":return"ENETDOWN";case"AbortError":return"EINTR";case"QuotaExceededError":return"ENOSPC";case"TimeoutError":return"ETIMEDOUT";case"ReadOnlyError":return"EROFS";default:return"EIO"}}(t)]:MO.EIO,s=new AO(i,t.message,e,n);return s.stack=t.stack,s.cause=t.cause,s}globalThis.__zenfs__=st;class qC extends(kC(nR)){constructor(t){super(),this._handles=new Map,this._sync=FR.create({name:"accessfs-cache"}),this._handles.set("/",t)}metadata(){return{...super.metadata(),name:"WebAccess",noResizableBuffers:!0}}async sync(t,e){await this.writeFile(t,e)}async rename(t,e){const n=await this.getHandle(t);if(n instanceof FileSystemDirectoryHandle){const n=await this.readdir(t);if(await this.mkdir(e),!n.length)return void await this.unlink(t);for(const i of n)await this.rename(yO(t,i),yO(e,i)),await this.unlink(t);return}if(!(n instanceof FileSystemFileHandle))throw new AO(MO.ENOTSUP,"Not a file or directory handle",t,"rename");const i=await n.getFile().catch((e=>{throw KC(e,t,"rename")})),s=await this.getHandle(DO(e));if(!(s instanceof FileSystemDirectoryHandle))return;const o=await s.getFileHandle(NO(e),{create:!0}).catch((t=>{throw KC(t,e,"rename")})),r=await o.createWritable();await r.write(await i.arrayBuffer()),await r.close(),await this.unlink(t)}async writeFile(t,e){if(e.buffer.resizable)throw new AO(MO.EINVAL,"Resizable buffers can not be written",t,"write");const n=await this.getHandle(DO(t));if(!(n instanceof FileSystemDirectoryHandle))return;const i=await n.getFileHandle(NO(t),{create:!0}),s=await i.createWritable();await s.write(e),await s.close()}async createFile(t,e){return await this.writeFile(t,new Uint8Array),this.openFile(t,e)}async stat(t){const e=await this.getHandle(t);if(!e)throw AO.With("ENOENT",t,"stat");if(e instanceof FileSystemDirectoryHandle)return new XM({mode:511|fM,size:4096});if(e instanceof FileSystemFileHandle){const{lastModified:t,size:n}=await e.getFile();return new XM({mode:511|mM,size:n,mtimeMs:t})}throw new AO(MO.EBADE,"Handle is not a directory or file",t,"stat")}async openFile(t,e){const n=await this.getHandle(t);if(!(n instanceof FileSystemFileHandle))throw AO.With("EISDIR",t,"openFile");const i=await n.getFile().catch((e=>{throw KC(e,t,"openFile")})),s=new Uint8Array(await i.arrayBuffer()),o=new XM({mode:511|mM,size:i.size,mtimeMs:i.lastModified});return new eR(this,t,e,o,s)}async unlink(t){const e=await this.getHandle(DO(t));if(!(e instanceof FileSystemDirectoryHandle))throw AO.With("ENOTDIR",DO(t),"unlink");await e.removeEntry(NO(t),{recursive:!0}).catch((e=>{throw KC(e,t,"unlink")}))}async link(t){}async rmdir(t){return this.unlink(t)}async mkdir(t){if(await this.getHandle(t).catch((t=>{if("ENOENT"!=t.code)throw t})))throw AO.With("EEXIST",t,"mkdir");const e=await this.getHandle(DO(t));if(!(e instanceof FileSystemDirectoryHandle))throw AO.With("ENOTDIR",t,"mkdir");await e.getDirectoryHandle(NO(t),{create:!0})}async readdir(t){const e=await this.getHandle(t);if(!(e instanceof FileSystemDirectoryHandle))throw AO.With("ENOTDIR",t,"readdir");const n=[];for await(const t of e.keys())n.push(t);return n}async getHandle(t){if(this._handles.has(t))return this._handles.get(t);let e="/";for(const n of t.split("/").slice(1)){const t=this._handles.get(e);if(!(t instanceof FileSystemDirectoryHandle))throw AO.With("ENOTDIR",e,"getHandle");e=yO(e,n);const i=await t.getDirectoryHandle(n).catch((i=>{switch(i.name){case"TypeMismatchError":return t.getFileHandle(n).catch((t=>{}));case"TypeError":throw new AO(MO.ENOENT,i.message,e,"getHandle");default:throw KC(i,e,"getHandle")}}));i&&this._handles.set(e,i)}return this._handles.get(t)}}function $C(t){return new Promise(((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)}))}let zC;function QC(){return zC||(zC=function(t,e){const n=indexedDB.open(t);n.onupgradeneeded=()=>n.result.createObjectStore(e);const i=$C(n);return(t,n)=>i.then((i=>n(i.transaction(e,t).objectStore(e))))}("keyval-store","keyval")),zC}class JC extends qC{constructor(t){super(t)}async readFile(t){const e=await this.getHandle(t);if(e instanceof window.FileSystemFileHandle){const t=await e.getFile();return await t.text()}return""}}class ZC extends rt.FS{#t=null;#e=new TextEncoder;constructor(){super()}async showDirectoryPicker(){const t=await window.showDirectoryPicker({mode:"readwrite"});if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return await this.setFSCache(t),this.#t=new JC(t),t}async loadFS(){let t=await this.getFSCache();if(!t)return null;if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return this.#t=new JC(t),t}async getFSCache(){return function(t,e=QC()){return e("readonly",(e=>$C(e.get(t))))}("mixly-pyodide-fs")}async setFSCache(t){await function(t,e,n=QC()){return n("readwrite",(n=>(n.put(e,t),$C(n.transaction))))}("mixly-pyodide-fs",t)}async createFile(t){return this.#t.createFile(t,"")}async readFile(t){return this.#t.readFile(t)}async writeFile(t,e){const n=this.#e.encode(e);return this.#t.writeFile(t,n)}async isFile(t){const e=await this.#t.stat(t);return!(!e||33279!==e.mode)}async renameFile(t,e){return await this.#t.rename(t,e)}async moveFile(t,e){return this.renameFile(t,e)}async deleteFile(t){return this.#t.unlink(t)}async createDirectory(t){return this.#t.mkdir(t,511)}async readDirectory(t){return await this.#t.readdir(t)}async isDirectory(t){const e=await this.#t.stat(t);return!(!e||16895!==e.mode)}async isDirectoryEmpty(t){const e=await this.readDirectory(t);return!e?.length}async renameDirectory(t,e){return this.#t.rename(t,e)}async moveDirectory(t,e){return this.#t.rename(t,e)}async deleteDirectory(t){return this.#t.rmdir(t)}}class tL extends rt.FileTree{constructor(){super(new ZC)}async readFolder(t){let e=[];try{const n=this.getFS();if(!await n.isDirectory(t))return e;const i=await n.readDirectory(t);for(let s of i){const i=TO.join(t,s);if(await n.isDirectory(i)){const t=await n.isDirectoryEmpty(i);e.push({type:"folder",id:i,children:!t,title:`/${this.getRootFolderName()}${i}`})}else e.push({type:"file",id:i,children:!1,title:`/${this.getRootFolderName()}${i}`})}}catch(t){rt.Debug.error(t)}return e}}class eL extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem.html",new rt.HTMLTemplate('\r\n
\r\n
\r\n
\r\n
')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-open-fs.html",new rt.HTMLTemplate('\r\n
\r\n \r\n
')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-editor-empty.html",new rt.HTMLTemplate('\r\n
\r\n
\r\n
')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["file-system"],eL);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("file-system","file-system",ot.Msg.PYTHON_PYODIDE_FILE_SYSTEM),t.changeTo("output"),t.get("file-system")}}#n=null;#i=null;#s=null;#o=null;#r=null;#a=null;#l=null;#u=null;#p=!1;#_=!1;#d=!1;#h=null;constructor(){super();const t=mO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem.html").render());this.setContent(t),this.#l=new tL,this.#i=t.children(".file-tree"),this.#o=mO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-open-fs.html").render({msg:{loadFS:ot.Msg.PYTHON_PYODIDE_LOAD_FILE_SYSTEM}})),this.#i.append(this.#o),this.#a=new rt.StatusBar,this.#s=t.children(".editor"),this.#r=mO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-editor-empty.html").render()),this.#s.append(this.#r)}#c(){this.#u=new rt.DragV(this.getContent()[0],{min:"150px",startSize:"15%",full:[!1,!1]}),this.#u.bind("sizeChanged",(()=>{this.resize()})),this.#o.children("button").click((()=>{this.selectFS().catch(rt.Debug.error)})),this.#l.bind("beforeSelectLeaf",(t=>{const e=t[0].id,n=this.#a.getFileMode(TO.extname(e));return n?(this.#a.setMode(n),!0):(OO.layer.msg(rt.Msg.Lang["statusbar.ampy.cannotEdit"],{time:1e3}),!1)})),this.#l.bind("afterSelectLeaf",(async t=>{const e=t[0].id;this.#l.showProgress();const n=this.#l.getFS();try{const t=await n.readFile(e);this.showEditor(),this.#a.setValue(t),this.#a.scrollToTop(),this.#a.focus(),this.setStatus(!1)}catch(t){rt.Debug.error(t),this.hideEditor(),this.#l.deselectAll()}this.#l.hideProgress()})),this.#l.bind("afterCreateNode",(t=>{this.#l.refreshFolder(t)})),this.#l.bind("afterDeleteNode",(t=>{this.#l.refreshFolder(t)})),this.#l.bind("afterRenameNode",(t=>{this.#l.refreshFolder(t)})),this.#l.bind("afterRefreshNode",(()=>{this.#l.getSelectedNodeId()||this.hideEditor()}));const t=this.#l.getContextMenu().getItem("menu");t.add({weight:7,type:"copy_path",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["fileTree.copyPath"],""),callback:(t,{$trigger:e})=>{let n=null;n="root"===e.attr("type")?this.#l.getRootFolderTitle():e.attr("title"),navigator.clipboard.writeText(n).catch(rt.Debug.error)}}}),t.add({weight:14,type:"sep5",preconditionFn:t=>{const e=this.#l.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:"---------"}),t.add({weight:15,type:"refresh",preconditionFn:t=>{const e=this.#l.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.refresh"],""),callback:(t,{$trigger:e})=>{let n=e.attr("type");if("root"===n)this.#l.openRootFolder(),this.#l.refreshFolder("/");else if("folder"===n){let t=e.attr("id");this.#l.openNode(t),this.#l.refreshFolder(t)}else{const t=this.#l.getSelectedNodes();this.#l.runEvent("afterSelectLeaf",t)}}}}),t.add({weight:16,type:"sep6",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:"---------"}),t.add({weight:17,type:"exit",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.exit"],""),callback:()=>{this.closeFS()}}}),t.remove("copy"),t.remove("cut"),t.remove("paste"),t.remove("sep2");const e=this.#a.getContextMenu().getItem("code");e.empty(),e.add({weight:0,type:"cut",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.cut"],"Ctrl+X"),callback:()=>this.#a.cut()}}),e.add({weight:1,type:"copy",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.copy"],"Ctrl+C"),callback:()=>this.#a.copy()}}),e.add({weight:2,type:"paste",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.paste"],"Ctrl+V"),callback:()=>this.#a.paste()}}),e.add({weight:3,type:"sep1",data:"---------"}),e.add({weight:4,type:"togglecomment",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.togglecomment"],"Ctrl+/"),callback:()=>this.#a.commentLine()}}),e.add({weight:6,type:"sep2",preconditionFn:()=>this.#d,data:"---------"}),e.add({weight:7,type:"save",preconditionFn:()=>this.#d,data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["file.save"],"Ctrl+S"),callback:async()=>{await this.put()}}});const{commands:n}=this.#a.getEditor();n.addCommand({name:"save",bindKey:"Ctrl-S",exec:async()=>{this.#d&&await this.put()}})}async put(){this.#l.showProgress();const t=this.#l.getSelectedNodeId(),e=this.#l.getFS();try{await e.writeFile(t,this.#a.getValue()),this.setStatus(!1)}catch(t){rt.Debug.error(t)}finally{this.#l.hideProgress()}}showFileTree(){this.#p||(this.#o.detach(),this.#i.empty(),this.#i.append(this.#l.getContent()),this.#p=!0)}hideFileTree(){this.#p&&(this.#l.getContent().detach(),this.#i.empty(),this.#i.append(this.#o),this.#p=!1)}showEditor(){this.#_||(this.#r.detach(),this.#s.empty(),this.#s.append(this.#a.getContent()),this.#_=!0)}hideEditor(){this.#_&&(this.#a.getContent().detach(),this.#s.empty(),this.#s.append(this.#r),this.#_=!1,this.setStatus(!1))}getDrag(){return this.#u}init(){super.init(),this.hideCloseBtn(),this.#a.init(),this.#c();const t=this.#a.getEditor();t.setReadOnly(!1),t.renderer.setShowGutter(!0),t.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0,newLineMode:"unix"}),t.on("change",(()=>{this.setStatus(!0)})),this.loadFS().catch(rt.Debug.error)}async loadFS(){const t=this.#l.getFS(),e=await t.loadFS();await this.openFS(e)}async selectFS(){const t=this.#l.getFS(),e=await t.showDirectoryPicker();await this.openFS(e)}async openFS(t){if(!t?.name)return;const e="/"+t.name;this.#l.setFolderPath("/"),this.#l.setRootFolderTitle(e),this.#l.setRootFolderName(t.name),this.#l.openRootFolder(),this.showFileTree(),this.#h=await window.pyodide.mountNativeFS(e,t)}closeFS(){const t=this.#l.getRootFolderTitle();if(Object.keys(window.pyodide.FS.root.contents).includes(TO.basename(t))){const e=window.pyodide.FS.lookupPath(t,{follow_mount:!1});window.pyodide.FS.isMountpoint(e.node)&&window.pyodide.FS.unmount(t)}this.#l.getFS().setFSCache(null),this.#l.deselectAll(),this.hideFileTree(),this.hideEditor(),this.setStatus(!1)}onMounted(){super.onMounted(),this.#a.onMounted(),this.#l.onMounted()}onUnmounted(){super.onUnmounted(),this.#a.onUnmounted(),this.#l.onUnmounted()}resize(){super.resize(),this.#a.resize(),this.#l.resize()}setStatus(t){this.#d!==t&&(this.#d=t)}getNativeFS(){return this.#h}dispose(){this.#a.dispose(),this.#a=null,this.#l.dispose(),this.#l=null,super.dispose()}}class nL{static{rt.HTMLTemplate.add("html/statusbar/loader.html",new rt.HTMLTemplate('\r\n
\r\n
\r\n

{{d.msg.loading}}

\r\n
')),this.pythonShell=null,this.kernelLoaded=!1,this.$loader=mO()(rt.HTMLTemplate.get("html/statusbar/loader.html").render({msg:{loading:ot.Msg.PYTHON_PYODIDE_LOADING}})),this.statusBarImage=null,this.statusBarFileSystem=null,this.init=async function(){rt.app.getFooterBar().getContent().after(this.$loader);const t=TO.relative(rt.Env.indexDirPath,rt.Env.boardDirPath),e=new fO({rootPath:TO.join(t,"deps"),language:"python3"}),n=await e.kernelAvailable();n&&(await n.init(),await n.loaded(),this.loader=e,this.kernel=n,this.statusBarImage=gO.init(),this.statusBarFileSystem=eL.init(),this.pythonShell=new nL,this.pyodide=window.pyodide,this.interruptBuffer=new Uint8Array(new ArrayBuffer(1)),this.pyodide.setInterruptBuffer(this.interruptBuffer),this.kernelLoaded=!0,this.$loader.remove(),this.$loader=null)},this.run=async function(){if(!this.kernelLoaded)return;const t=rt.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(t)},this.stop=async function(){if(this.kernelLoaded)return this.pythonShell.stop()}}#T=null;#I=null;#m=null;#E={row:0,column:0};#f="";#g=null;#O=null;#M=!1;#R=!1;#A=null;#S=()=>this.#C();#L=[{name:"REPL-Enter",bindKey:"Enter",exec:t=>{if(t.getSession().selection.getCursor().row===this.#E.row){const t=this.#T.getEndPos();let e=this.#T.getValueRange(this.#E,t);e=e.replace(this.#f,""),this.#g?.(e),this.#g=null,this.#O=null,this.#T.addValue("\n"),this.#y()}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:t=>{const e=t.getSession().selection.getCursor();return e.row{this.#R=!1,this.#T.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`),this.syncfs(!1).catch(rt.Debug.error)})),this.#A.addEventListener("eval.output",(t=>{this.#T.addValue(t.content)})),this.#A.addEventListener("eval.error",(()=>{this.#R=!1,this.#T.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`)})),this.#A.addEventListener("eval.input",(t=>{const e=String(t?.content?.prompt);this.#T.addValue(e),this.#f=e,this.#g=t.resolve,this.#O=t.reject,this.#D()})),this.#A.addEventListener("eval.display",(t=>{this.#m.changeTo("images"),this.#I.display(t)}))}#C(){const t=this.#T.getEditor(),e=t.getSession().selection.getCursor();t.setReadOnly(e.row{window.pyodide.FS.syncfs(t,e)}))}sleep(t){return new Promise((e=>setTimeout(e,t)))}}const iL={init:async function(){const t=rt.app.getNav();t.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:ot.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{nL.run().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:4}),t.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:ot.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{nL.stop().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:5}),await nL.init()}};iL.init(),Object.assign(ot.Variables,lt),Object.assign(ot.Procedures,Iu),ot.Python=mu,ot.generator=mu,rt.Profile.default={},Object.assign(ot.Blocks,t,e,n,i,s,o,r,a,l,u,p,_,d,C,L,y,D,N,b,v,w,F,P,k,V,Y,x,U),Object.assign(ot.Python.forBlock,h,c,T,I,m,E,f,g,O,M,R,A,S,B,X,G,mm,H,W,j,K,q,z,Q,J,Z,tt,et)})()})(); \ No newline at end of file +class ut{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var n=t.split(","),i=0;i0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_if_elseif");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),n.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_if_elseif":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},yt={init:function(){this.setColour(Mt),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Dt={init:function(){this.setColour(Mt),this.appendValueInput("LIST").setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Nt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,n=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_except");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),n.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],o=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,o=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_except":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),o=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},vt={init:function(){this.setColour(Mt);var t=new ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},wt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ft={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Nt.OPERATORS=[[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],vt.OPERATORS=[[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Pt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Vt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Yt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},xt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Ut={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Bt={init:function(){this.jsonInit({message0:ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Mt,tooltip:ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Xt={init:function(){this.setColour(Mt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_STAT),this.setOutput(!0)}},Gt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ht={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Wt={init:function(){this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ot.FieldDropdown([[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Mt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},jt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},qt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},$t={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET+ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},zt={init:function(){this.setColour(Mt),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Qt={init:function(){this.setColour(Mt),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Jt=230;ot.FieldTextInput.math_number_validator=function(t){return String(t)},ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Zt={init:function(){this.setColour(Jt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},te={init:function(){this.setColour(Jt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},ee={init:function(){this.setColour(Jt);this.appendDummyInput("").appendField(ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ne={init:function(){this.setColour(Jt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ie={init:function(){this.setColour(Jt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},se={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},oe={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},re={init:function(){var t=[[ot.Msg.MATH_BIN,"bin"],[ot.Msg.MATH_OCT,"oct"],[ot.Msg.MATH_HEX,"hex"]];this.setColour(Jt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ae={init:function(){var t=[[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[ot.Msg.MATH_ABS,"fabs"],[ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(Jt),this.appendValueInput("A").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ot.Msg.MIXLY_MAX,"max"],[ot.Msg.MIXLY_MIN,"min"]];this.setColour(Jt),this.appendValueInput("A").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ue={init:function(){var t=[[ot.Msg.MATH_TWO,"two"],[ot.Msg.MATH_EIGHT,"eight"],[ot.Msg.MATH_TEN,"ten"],[ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Jt),this.appendDummyInput("").appendField(ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ot.FieldDropdown(t),"OP").appendField(ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ot.Msg.MATH_ZHW).appendField(new ot.FieldDropdown(t),"OP2").appendField(ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),n={two:ot.Msg.MATH_Before_two,eight:ot.Msg.MATH_Before_eight,ten:ot.Msg.MATH_Before_ten,sixteen:ot.Msg.MATH_Before_sixteen},i=e.getFieldValue("OP2"),s={two:ot.Msg.MATH_Behind_two,eight:ot.Msg.MATH_Behind_eight,ten:ot.Msg.MATH_Behind_ten,sixteen:ot.Msg.MATH_Behind_sixteen};return n[t]+s[i]}))}},pe={init:function(){var t=[[ot.Msg.LANG_MATH_INT,"int"],[ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Jt),this.setOutput(!0,Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),n={int:ot.Msg.LANG_MATH_INT,float:ot.Msg.LANG_MATH_FLOAT_RANDOM};return ot.Msg.MATH_RANDOM_INT_TOOLTIP+n[t]}))}},_e={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},de={init:function(){this.setColour(Jt),this.appendValueInput("NUM",Number).appendField(ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},he={init:function(){this.setColour(Jt),this.appendDummyInput().appendField(new ot.FieldTextInput("0",ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ot.Msg.MATH_NUMBER_TOOLTIP)}},ce={init:function(){this.setColour(Jt),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Te={init:function(){this.setColour(Jt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MATH_ROUND).appendField(ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Ie={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"],[ot.Msg.MIXLY_TO_BITES,"b"],[ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Jt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},me={init:function(){var t=[[ot.Msg.MIXLY_TO_INT,"int"],[ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Jt),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ee=de,fe={init:function(){this.setColour(Jt),this.appendValueInput("VAR").appendField(ot.Msg.LANG_MATH_BYTE+ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ge={init:function(){this.setColour(Jt),this.itemCount_=1,this.setMutator(new ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ot.Msg.MIXLY_PRODUCT+ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ce={init:function(){this.setColour(Re),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput("",ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ot.FieldImage(e,7,12,'"')}},Le={init:function(){this.setColour(Re),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ye={init:function(){this.setColour(Re),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},De={init:function(){this.setColour(Re),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ne={init:function(){this.setColour(Re),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},be={init:function(){this.setColour(Re),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},ve={init:function(){this.WHERE_OPTIONS=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.TEXT_GET_INDEX_RANDOM+1+ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Re),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.LISTS_GET_INDEX_GET,"MODE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=t.getFieldValue("WHERE"),i="";switch(e+" "+n){case"GET FROM_START":case"GET FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(i+=" "+ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),n={FROM_START:ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ot.Msg.TEXT_GET_INDEX_RANDOM};return ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+n[t]+"n"+ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var n="FROM_START"==e||"FROM_END"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},we={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Re),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ot.Msg.PROCEDURES_DEFRETURN_RETURN+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+ot.Msg.TEXT_CHARAT2)}},Fe={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Re),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Pe={init:function(){this.WHERE_OPTIONS_1=[[ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Re),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ot.INPUT_VALUE;t.setAttribute("at1",e);var n=this.getInput("AT2").type==ot.INPUT_VALUE;return t.setAttribute("at2",n),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),n="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,n)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var n=new ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(n){var i="FROM_START"==n||"FROM_END"==n;if(i!=e){var s=this.sourceBlock_;return s.updateAt_(t,i),s.setFieldValue(n,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(n,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ke={init:function(){this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Re),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ot.Msg.LISTS_GET_INDEX_GET+" "+ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ve={init:function(){var t=[[ot.Msg.MIXLY_EQUALS,"==="],[ot.Msg.MIXLY_STARTSWITH,"startswith"],[ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Re),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Ye={init:function(){this.setColour(Re),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_COMPARETO_HELP)}},xe={init:function(){var t=[[ot.Msg.TEXT_UPPER,"upper"],[ot.Msg.TEXT_TITLE,"title"],[ot.Msg.TEXT_CAPITALIZE,"capitalize"],[ot.Msg.TEXT_SWAPCASE,"swapcase"],[ot.Msg.TEXT_LOWER,"lower"]];this.setColour(Re),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ue={init:function(){var t=[[ot.Msg.TEXT_LJUST,"ljust"],[ot.Msg.TEXT_CENTER,"center"],[ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(Re),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Be={init:function(){this.setColour(Re),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_MID+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Xe={init:function(){this.setColour(Re),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Ge={init:function(){this.setColour(Re),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},He={init:function(){this.setColour(Re),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},We={init:function(){var t=[[ot.Msg.TEXT_TRIM_BOTH,"strip"],[ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Re),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},je={init:function(){this.setColour(Re),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gn={init:function(){this.setColour(Bn),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Hn={init:function(){this.setColour(Bn),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Wn={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_KEYS),this.setTooltip(ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},jn={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_TOOLTIP)}},Kn={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},qn={init:function(){this.setColour(Bn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},$n={init:function(){this.setColour(Bn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_DELETE_TOOLTIP)}},zn={init:function(){this.setColour(Bn),this.appendValueInput("DICT2").setCheck("Dict").appendField(ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MID),this.setTooltip(ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qn={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_CLEAR),this.setTooltip(ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jn={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_ITEMS),this.setTooltip(ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Zn={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_VALUES),this.setTooltip(ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},ti={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_LENGTH),this.setTooltip(ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},ei={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.DICT_DELDICT),this.setTooltip(ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ni={init:function(){this.MODE=[[ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ot.FieldDropdown(this.MODE,(function(e){var n="INSERT"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},ii={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setTooltip(ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},si={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},oi={init:function(){this.setColour(Bn),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ri={init:function(){this.setColour(Bn),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},ai={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TO_JSON),this.setTooltip(ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},li={init:function(){this.setColour(Bn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ui={init:function(){this.setColour(Bn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},pi={init:function(){this.setColour(Bn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TO_JSON),this.setTooltip(ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},_i=210,di={init:function(){var t=ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(_i),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},hi={init:function(){var t=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(_i),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ci={init:function(){var t=[[ot.Msg.LOGIC_OPERATION_AND,"AND"],[ot.Msg.LOGIC_OPERATION_OR,"OR"],[ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(_i),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Ti={init:function(){this.setColour(_i),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Ii={init:function(){var t=[[ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(_i),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ot.FieldDropdown(t),"BOOL"),this.setTooltip(ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},mi={init:function(){this.setColour(_i),this.setOutput(!0),this.appendDummyInput().appendField(ot.Msg.LOGIC_NULL),this.setTooltip(ot.Msg.LOGIC_NULL_TOOLTIP)}},Ei={init:function(){this.setColour(_i),this.appendValueInput("A"),this.appendValueInput("B").appendField(ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fi={init:function(){var t=[[ot.Msg.TEXT_APPEND_TO,"in"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(_i),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.IN)}},gi={init:function(){var t=[[ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(_i),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Oi={init:function(){this.setColour(_i),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Mi={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ri={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ai={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},Si={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXPY_TEXT_ENCODE).appendField(new ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_USE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=ot.Msg.MIXLY_BELONG,r=ot.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+i+s+r}))}},Ci={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ot.Msg.MIXLY_MICROBIT_TYPE_STRING+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Li={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},yi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+i}))}},Di={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MICROBIT_PYTHON_TYPE)}},Ni={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.HTML_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},bi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},vi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},wi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Fi={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},ki={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Vi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+i}))}},Yi={init:function(){this.setColour(0),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},xi={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ot.Msg.MIXLY_ESP32_SET+{mkdir:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Ui={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Bi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Xi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.HTML_FILE,"isfile"],[ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Gi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP+ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Hi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Wi={init:function(){var t=ot.Procedures.findLegalName("",this),e=new ot.FieldTextInput(t,ot.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new ot.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&ot.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(ot.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(ot.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(ot.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(ot.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=ot.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),ot.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{ot.Events.enable()}},mutationToDom:function(t){var e=ot.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var n=0;n"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xs={init:function(){this.setColour(ws),this.appendDummyInput().appendField(ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Us={init:function(){this.setColour(ws),this.appendDummyInput().appendField(ot.Msg.HTML_FORM_CONTENT).appendField(new ot.FieldDropdown([[ot.Msg.HTML_TEXT,"text"],[ot.Msg.HTML_EMAIL,"email"],[ot.Msg.HTML_NUMBER,"number"],[ot.Msg.HTML_PASSWORD,"password"],[ot.Msg.HTML_CHECKBOX,"checkbox"],[ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[ot.Msg.HTML_BUTTON,"button"],[ot.Msg.HTML_COLOUR,"colour"],[ot.Msg.HTML_DATE,"date"],[ot.Msg.HTML_LOCALTIME,"local time"],[ot.Msg.HTML_FILE,"file"],[ot.Msg.HTML_HIDDEN,"hidden"],[ot.Msg.HTML_IMAGE,"image"],[ot.Msg.HTML_MONTH,"month"],[ot.Msg.HTML_RANGE,"range"],[ot.Msg.HTML_RESET,"reset"],[ot.Msg.HTML_SEARCH,"search"],[ot.Msg.HTML_SUBMIT,"submit"],[ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ot.Msg.HTML_TIME,"time"],[ot.Msg.HTML_URL,"url"],[ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ot.Msg.HTML_NAME).appendField(new ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ot.Msg.HTML_VALUE).appendField(new ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bs={init:function(){this.setColour(ws),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs={init:function(){this.setColour(ws),this.appendDummyInput().appendField(new ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gs={init:function(){this.setColour(ws),this.appendDummyInput().appendField(ot.Msg.HTML_TEXT).appendField(new ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs=160,Ws={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ot.FieldTable(""),"TEXT")}},js={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT")}},Ks={init:function(){this.setColour(Hs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},qs={init:function(){this.setColour(Hs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},$s={init:function(){this.setColour(Hs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},zs={init:function(){this.setColour(Hs),this.appendValueInput("VALUE").appendField(ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},Qs={init:function(){this.setColour(Hs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,n){return"("+t+" <= "+e+") and "+l()+"("+t+", "+e+", "+n+") or "+u()+"("+t+", "+e+", "+n+")"},ot.isNumber(i)&&ot.isNumber(s)&&ot.isNumber(o))i=parseFloat(i),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==i%1&&0==s%1&&0==o%1?(i<=s?(s++,t=0==i&&1==o?s:i+", "+s,1!=o&&(t+=", "+o)):t=i+", "+--s+", -"+o,t="range("+t+")"):(t=i",GTE:">="};const ja=function(t,e){var n=this.getFieldValue("OP"),i="&&"==n?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",i)||"False",o=e.valueToCode(this,"B",i)||"False";if("AND"==n)var r=s+" and "+o;else if("OR"==n)r=s+" or "+o;else if("NOR"==n)r="not("+s+"^"+o+")";else r=s+"^"+o;return[r,i]},Ka=function(t,e){var n=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",n)||"False"),n]},qa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},$a=function(t,e){return["None",e.ORDER_ATOMIC]},za=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+n+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Qa=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Ja=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Za=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},tl=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},el=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},nl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},il=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},sl=function(t,e){var n=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+n+")\n"},ol=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"()",e.ORDER_ATOMIC]},rl=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},al=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ll=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ul=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},pl=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},_l=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},dl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},hl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Tl=function(t,e){var n=this.getFieldValue("MODE"),i=0;return i="start"==n?0:"current"==n?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+i+")\n"},Il=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ml=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},El=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},fl=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},gl=function(t,e){e.definitions_.import_os="import os";var n=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",e.ORDER_ATOMIC]},Ol=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ml=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Rl=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("NAME"),ot.Procedures.NAME_TYPE),i=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(i=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],r=0;r\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},su=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+n+"\n"},ou=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var s="<"+i+'>\n\t\n'+n+"\n";else s="<"+i+">\n"+n+"\n";return s},ru=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+n+"\n"},au=function(t,e){var n=e.statementToCode(this,"DO"),i=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+i+" >\n"+n+"\n"},lu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},uu=function(t,e){return'"},pu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},_u=function(){return this.getFieldValue("TEXT")+"\n"},du=function(t){return t.getFieldValue("TEXT")+"\n"},hu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},cu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Tu=function(){return""},Iu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},mu=function(t,e){for(var n=t.getFieldValue("NAME"),i=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+n.join("\n")+i.join("\n")+r.join("\n")+a.join("")+t+"while True:\n"+l.join("")+u.join("\n"):e.join("\n")+n.join("\n")+i.join("\n")+r.join("\n")+a.join("")+t+u.join("\n")},Ou.scrubNakedValue=function(t){return t+"\n"},Ou.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Ou.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Ou.scrub_=function(t,e,n){var i="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=ot.utils.string.wrap(o,Ou.COMMENT_WRAP-3),i+=Ou.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",i&&(a="-"+a)),a};const Mu=205,Ru={init:function(){this.setColour(Mu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_CHOOSE_AND_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME,"getOneFile"],[ot.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES,"getManyFiles"],[ot.Msg.MIXLY_CHOOSE_AND_GET_DIR,"getDirectory"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0)}},Au={init:function(){this.setColour(Mu),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SETUP).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"AipImageClassify"],[ot.Msg.MIXLY_AipSpeech,"AipSpeech"],[ot.Msg.MIXLY_AipImageCensor,"AipImageCensor"],[ot.Msg.MIXLY_AipFace,"AipFace"],[ot.Msg.MIXLY_AipOcr,"AipOcr"],[ot.Msg.MIXLY_AipNlp,"AipNlp"]]),"CTYPE"),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("API_KEY").appendField("API_KEY").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("SECRET_KEY").appendField("SECRET_KEY").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Su={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_synthesis).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Cu={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipSpeech_asr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_AipSpeech_File).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipSpeech_ASR_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Lu={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipImageClassify).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},yu={init:function(){this.setColour(Mu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify_advancedGeneral,"advancedGeneral"],[ot.Msg.MIXLY_AipImageClassify_dishDetect,"dishDetect"],[ot.Msg.MIXLY_AipImageClassify_carDetect,"carDetect"],[ot.Msg.MIXLY_AipImageClassify_animalDetect,"animalDetect"],[ot.Msg.MIXLY_AipImageClassify_plantDetect,"plantDetect"],[ot.Msg.MIXLY_AipImageClassify_logoSearch,"logoSearch"]]),"TYPE"),this.setOutput(!0)}},Du={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipFace_match).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"1"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("VAR2").appendField(ot.Msg.MIXLY_AipImageClassify_Image+"2"+ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipFace_match_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Nu={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipOcr).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ADDR").appendField(ot.Msg.MIXLY_AipImageClassify_Image).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipOcr_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},bu={init:function(){this.setColour(Mu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipOcr_basicGeneral,"basicGeneral"],[ot.Msg.MIXLY_AipOcr_webImage,"webImage"],[ot.Msg.MIXLY_AipOcr_idcard,"idcard"],[ot.Msg.MIXLY_AipOcr_bankcard,"bankcard"],[ot.Msg.MIXLY_AipOcr_drivingLicense,"drivingLicense"],[ot.Msg.MIXLY_AipOcr_vehicleLicense,"vehicleLicense"],[ot.Msg.MIXLY_AipOcr_licensePlate,"licensePlate"],[ot.Msg.MIXLY_AipOcr_businessLicense,"businessLicense"],[ot.Msg.MIXLY_AipOcr_receipt,"receipt"],[ot.Msg.MIXLY_AipOcr_trainTicket,"trainTicket"],[ot.Msg.MIXLY_AipOcr_taxiReceipt,"taxiReceipt"],[ot.Msg.MIXLY_AipOcr_form,"tableRecognition"],[ot.Msg.MIXLY_AipOcr_vatInvoice,"vatInvoice"],[ot.Msg.MIXLY_AipOcr_passport,"passport"],[ot.Msg.MIXLY_AipOcr_handwriting,"handwriting"]]),"TYPE"),this.setOutput(!0)}},vu={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.OLED_STRING).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},wu={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_Sim).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("FUNC").appendField(ot.Msg.MIXLY_AIP_FUNC).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.OLED_STRING+"1").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.OLED_STRING+"2").setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Sim_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Fu={init:function(){this.setColour(Mu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_lexer,"lexer"],[ot.Msg.MIXLY_AipNlp_depParser,"depParser"],[ot.Msg.MIXLY_AipNlp_wordEmbedding,"wordEmbedding"],[ot.Msg.MIXLY_AipNlp_dnnlm,"dnnlm"],[ot.Msg.MIXLY_AipNlp_commentTag,"commentTag"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"sentimentClassify"],[ot.Msg.MIXLY_AipNlp_keyword,"keyword"],[ot.Msg.MIXLY_AipNlp_topic,"topic"],[ot.Msg.MIXLY_AipNlp_ecnet,"ecnet"],[ot.Msg.MIXLY_AipNlp_emotion,"emotion"]]),"TYPE"),this.setOutput(!0)}},Pu={init:function(){this.setColour(Mu),this.appendDummyInput("").appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipNlp_wordSimEmbedding,"wordSimEmbedding"],[ot.Msg.MIXLY_AipNlp_simnet,"simnet"]]),"TYPE"),this.setOutput(!0)}},ku={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_topic).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR1").appendField(ot.Msg.MIXLY_AipNlp_Topic_Title).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR2").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Topic_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Vu={init:function(){this.setColour(Mu),this.appendValueInput("SUB").appendField(ot.Msg.MIXLY_AipNlp_summary).appendField(ot.Msg.MIXLY_Client).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("STR").appendField(ot.Msg.MIXLY_AipNlp_Topic_Content).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("LEN").appendField(ot.Msg.MIXLY_LIST_LEN).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("ATTR").appendField(ot.Msg.MIXLY_AIP_ATTR).setAlign(ot.inputs.Align.RIGHT),this.setTooltip(ot.Msg.MIXLY_AipNlp_Summary_TOOLTIP),this.setInputsInline(!1),this.setOutput(!0)}},Yu={init:function(){this.setColour(Mu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_AUDIO),this.appendValueInput("TIME").appendField(ot.Msg.MIXPY_AI_AUDIO_TIME),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_AUDIO_TOOLTIP)}},xu={init:function(){this.setColour(Mu),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_AI_PHOTO),this.appendValueInput("BUT").appendField(ot.Msg.MIXPY_AI_PHOTO_BUTTON),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXPY_AI_PHOTO_TOOLTIP)}},Uu={init:function(){this.setColour(Mu),this.appendValueInput("AI").appendField(ot.Msg.MIXPY_AI_RESULT).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_AipImageClassify,"Image"],[ot.Msg.MIXLY_AipSpeech_asr,"Speech"],[ot.Msg.MIXLY_AipFace_match,"Face"],[ot.Msg.MIXLY_AipOcr,"Ocr"],[ot.Msg.MIXLY_AipNlp_simnet,"OcrSimilarity"],[ot.Msg.MIXLY_AipNlp_sentimentClassify,"Emotion"]]),"CTYPE"),this.setOutput(!0),this.setTooltip(ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Bu="#526FC3",Xu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Gu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_SCHOOL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Hu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIND_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Wu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEW_PATH),this.setOutput(!0)}},ju={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_SET_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ku={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ADD_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},qu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DEL_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$u={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_RETURN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_LEFT),this.setOutput(!0)}},Qu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ju={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Zu={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_CURRENT_SCHOOL),this.setOutput(!0)}},tp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ep={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},np={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PREPARE_2_2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ip={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_MOVE_RECENT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_HOME),this.setOutput(!0)}},op={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NOT_SCHOOL),this.setOutput(!0)}},rp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_PATH2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ap={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},lp={init:function(){this.appendDummyInput().appendField("移动圆盘从"),this.appendValueInput("FROM_NUM").setCheck(null).appendField("柱"),this.appendDummyInput().appendField("到"),this.appendValueInput("TO_NUM").setCheck(null).appendField("柱"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},up={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_ALL_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},_p={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_FIRST_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},dp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NO_RING),this.setOutput(!0)}},hp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_YES_RING),this.setOutput(!0)}},cp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NEXT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Tp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_TWO_LEFT),this.setOutput(!0)}},Ip={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DIVIDE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_HALF_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ep={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},fp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},gp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_DELETE_BOOKS2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Op={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_BOOK),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Mp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置待查书总数 N=").appendField(new ot.FieldDropdown([["5","5"],["10","10"],["20","20"],["50","50"]]),"NUM"),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Rp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ZERO),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ap={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_NUMBER_ADD),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Sp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_NUMBER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Cp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField("n"+ot.Msg.MIXLY_VALUE2).appendField(new ot.FieldTextInput("50"),"NUM"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Lp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_SEQUENCE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_PRINT_DIVIDE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Dp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化鸡兔同笼问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有若干只鸡、兔在同一个笼子里。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从上面数鸡兔有10个头,"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("从下面数鸡兔有32只脚。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问笼中有多少只鸡和多少只兔?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Np={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子的数量为0只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},bp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("兔子的数量在范围之内"),this.setOutput(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},vp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("根据(头数-兔子数)计算出鸡的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},wp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算得到脚的数量正确"),this.setOutput(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Fp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出鸡、兔的数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Pp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("假设兔子数量要更多一只"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},kp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("加载路线图"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Vp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("计算").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("长度"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Yp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置S1为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},xp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("的长度比").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME2").appendField("短"),this.setOutput(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Up={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("设置").appendField(new ot.FieldDropdown([["S1","1"],["S2","2"],["S3","3"],["S4","4"]]),"PATHNAME").appendField("为Smin"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Bp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("按照Smin移动"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Xp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化韩信点兵问题:"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("有未知数量的若干士兵。"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若3人一排列队,多1人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若5人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("若7人一排列队,多2人;"),this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("问士兵的数量最少是多少人?"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Gp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("初始化士兵为").appendField(new ot.FieldTextInput("7"),"NUM").appendField("个"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Hp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("使士兵").appendField(new ot.FieldDropdown([["3","3"],["5","5"],["7","7"]]),"NUM").appendField("人一排列队"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Wp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("剩余").appendField(new ot.FieldTextInput("1"),"NUM").appendField("个士兵"),this.setOutput(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},jp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("增加1个士兵"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},Kp={init:function(){this.appendDummyInput().setAlign(ot.inputs.Align.LEFT).appendField("输出士兵数量"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setTooltip(""),this.setHelpUrl("")}},qp={init:function(){this.appendDummyInput().appendField("准备").appendField(new ot.FieldNumber(3,0,100,1),"NUM").appendField("层汉诺塔"),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.HTML_COLOUR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Bu),this.setInputsInline(!0),this.setTooltip(""),this.setHelpUrl("")}},$p={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_GET_CURRENT_LOCATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zp={init:function(){this.setColour(Bu),this.appendDummyInput().appendField(ot.Msg.MIXLY_MIXPY_ALGORITHM_VOID_PATH),this.setOutput(!0)}},Qp={init:function(){this.setColour(Bu),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Jp="#3288dd",Zp={init:function(){this.setColour(Jp),this.appendValueInput("DOMAIN").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_REQUESTS_GET).appendField(new ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},t_={init:function(){this.setColour(Jp),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS).appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},e_={init:function(){this.setColour(Jp),this.appendValueInput("URL").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ot.Msg.blockpy_REQUESTS+ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},n_={init:function(){this.appendValueInput("VAL");var t=[[ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Jp),this.appendDummyInput("").appendField(ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},i_={init:function(){this.appendValueInput("VAR").appendField(ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(Jp),this.appendDummyInput("").appendField(ot.Msg.blockpy_CONDUCT).appendField(new ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},s_="f0a559",o_={init:function(){this.setColour(s_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_IMREAD),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},r_={init:function(){this.setColour(s_),this.appendValueInput("FILE").appendField(ot.Msg.OLED_BITMAP),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_AipNlp_Topic_Title),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},a_={init:function(){this.setColour(s_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_CV_IMWRITE),this.appendValueInput("data").setCheck(String).appendField(ot.Msg.HTML_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},l_={init:function(){this.setColour(s_),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS+ot.Msg.MIXLY_CV_OR_PRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_WAITKEY_TOOLTIP)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendField(ot.Msg.MIXLY_CV_DESTROY_ALL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},p_={init:function(){this.setColour(s_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);var t=[[ot.Msg.MIXLY_CV_RECT,"rectangle"],[ot.Msg.MIXLY_CV_LINE,"line"]];this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendValueInput("x2").setCheck(Number).appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_END+"(x2"),this.appendValueInput("y2").setCheck(Number).appendField(",y2"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},__={init:function(){this.setColour(s_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE);this.appendValueInput("data").setCheck(String).appendField(ot.Msg.MIXLY_CV_DRAWTEXT),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_BEGIN+"(x1"),this.appendValueInput("y1").setCheck(Number).appendField(",y1"),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME).appendField(new ot.FieldDropdown([["SIMPLEX","SIMPLEX"],["PLAIN","PLAIN"],["DUPLEX","DUPLEX"],["COMPLEX","COMPLEX"],["COMPLEX_SMALL","COMPLEX_SMALL"],["TRIPLEX","TRIPLEX"],["SCRIPT_SIMPLEX","SCRIPT_SIMPLEX"],["SCRIPT_COMPLEX","SCRIPT_COMPLEX"]]),"font"),this.appendValueInput("size").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput().appendField(") "+ot.Msg.MIXLY_CV_DRAWLINE_COLOR).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendValueInput("thick").setCheck(Number).appendField(ot.Msg.MIXLY_CV_DRAWLINE_THICKNESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)}},d_={init:function(){this.setColour(s_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.MIXLY_CV_FACE_CLASSIFIER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},h_={init:function(){this.setColour(s_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},c_={init:function(){this.setColour(s_),this.appendValueInput("FILE").appendField(ot.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("FACE").appendField(ot.Msg.MIXLY_CV_FACE_DETECT),this.appendValueInput("SCALE").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_SCALE),this.appendValueInput("NEIGHBOR").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR),this.appendValueInput("x1").setCheck(Number).appendField(ot.Msg.MIXLY_CV_FACE_DETECT_RANGE).appendField(ot.Msg.blockpy_TUPLE_MIN),this.appendValueInput("y1").setCheck(Number).appendField("×"),this.appendValueInput("x2").setCheck(Number).appendField(ot.Msg.blockpy_TUPLE_MAX),this.appendValueInput("y2").setCheck(Number).appendField("×"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)}},T_=170,I_={init:function(){this.setColour(T_),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},m_={init:function(){this.setColour(T_),this.appendDummyInput("").appendField(ot.Msg.blockpy_series_create).appendField(new ot.FieldTextInput("ser1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_series_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},E_={init:function(){this.setColour(T_),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},f_={init:function(){this.setColour(T_);var t=[[ot.Msg.DATAFRAME_RAW,"index"],[ot.Msg.DATAFRAME_COLUMN,"columns"]];this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"COLUMN_RAW"),this.appendValueInput("INDEX").setCheck([String,"List"]).appendField(ot.Msg.blockpy_series_set_index),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},g_={init:function(){this.setColour(T_),this.appendDummyInput("").appendField(ot.Msg.blockpy_dataframe_create).appendField(new ot.FieldTextInput("df1"),"VAR"),this.appendValueInput("SER").appendField(ot.Msg.blockpy_series_via),this.appendValueInput("INDEX_COLUMN").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_column),this.appendValueInput("INDEX_RAW").setCheck([String,"List"]).appendField(ot.Msg.blockpy_dataframe_set_index_raw),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_dataframe_create_index_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},O_={init:function(){this.setColour(T_),this.appendDummyInput("").appendField(new ot.FieldTextInput("ser1"),"VAR").appendField(" = [").appendField(new ot.FieldTextInput("1,2,3"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SERIES_CREATE_FROM_TEXT)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},M_={init:function(){this.setColour(T_);var t=[[ot.Msg.SERIES_INDEX,"index"],[ot.Msg.HTML_VALUE,"value"]];this.appendValueInput("SERIES").setCheck("Series"),this.appendDummyInput("").appendField(ot.Msg.SERIES_INDEX_VALUE).appendField(new ot.FieldDropdown(t),"INDEX_VALUE"),this.setOutput(!0,"List");var e=this;this.setTooltip((function(){var t=e.getFieldValue("INDEX_VALUE");return{index:ot.Msg.SERIES_INDEX_TOOLTIP,value:ot.Msg.HTML_VALUE_TOOLTIP}[t]}))}},R_={init:function(){this.setColour(T_),this.setOutput(!0),this.appendValueInput("SER").setCheck("Series"),this.appendValueInput("AT").setCheck(Number).appendField(ot.Msg.LANG_LISTS_GET_INDEX1),this.appendDummyInput("").appendField(ot.Msg.LANG_LISTS_GET_INDEX2),this.setInputsInline(!0),this.setTooltip(ot.Msg.TUPLE_GET_INDEX_TOOLTIP)}},A_={init:function(){this.setColour(T_),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},S_={init:function(){this.setColour(T_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},C_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},L_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},y_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},D_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},N_={init:function(){this.setColour(T_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},b_={init:function(){this.setColour(T_),this.appendValueInput("FROM").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_SPLITBYDOU).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},v_={init:function(){this.setColour(T_);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},w_={init:function(){this.setColour(T_);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},F_={init:function(){this.setColour(T_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},P_={init:function(){this.setColour(T_);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},k_={init:function(){this.setColour(T_);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},V_={init:function(){this.setColour(T_),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Y_={init:function(){this.setColour(T_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},x_={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[ot.Msg.LANG_MATH_TO_ROUND,"round"],[ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[ot.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(T_),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(ot.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new ot.FieldDropdown(t),"OP"),this.setTooltip(ot.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},U_={init:function(){this.setColour(T_),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},B_={init:function(){this.setColour(T_),this.appendValueInput("FILENAME").appendField(ot.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[ot.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(ot.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},X_={init:function(){this.setColour(T_),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ot.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(ot.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new ot.FieldDropdown([[ot.Msg.DATAFRAME_COLUMN,"column"],[ot.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(ot.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},G_={init:function(){this.setColour(T_),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},H_={init:function(){this.setColour(T_);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},W_={init:function(){this.setColour(T_),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(ot.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},j_={init:function(){this.setColour(T_),this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},K_={init:function(){this.setColour(T_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},q_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},z_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Q_={init:function(){this.setColour(T_),this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},J_={init:function(){this.setColour(T_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.blockpy_PYLAB_SET_LABEL).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(ot.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Z_={init:function(){this.setColour(T_);var t=[[ot.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[ot.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_DISPLAY_DRAW).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:ot.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},td={init:function(){this.setColour(T_);var t=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],e=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_SCATTER).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(ot.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},ed={init:function(){this.setColour(T_);var t=[[ot.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[ot.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[ot.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[ot.Msg.COLOUR_RGB_BLUE,"b"],[ot.Msg.COLOUR_RGB_GREEN,"g"],[ot.Msg.COLOUR_RGB_RED,"r"],[ot.Msg.COLOUR_CYAN,"c"],[ot.Msg.COLOUR_MAGENTA,"m"],[ot.Msg.COLOUR_YELLOW,"y"],[ot.Msg.COLOUR_BLACK,"k"],[ot.Msg.COLOUR_WHITE,"w"]],n=[[ot.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[ot.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[ot.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PLOT_XY).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new ot.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(ot.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new ot.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},nd={init:function(){this.setColour(T_);var t=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_BAR).appendField(ot.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(ot.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new ot.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(ot.Msg.HTML_COLOUR).appendField(new ot.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},id={init:function(){this.setColour(T_);var t=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[ot.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[ot.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[ot.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_PIE).appendField(ot.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(ot.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new ot.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new ot.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},sd={init:function(){this.setColour(T_),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_HIST).appendField(ot.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(ot.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},od={init:function(){this.setColour(T_);var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(ot.Msg.MIXLY_SETTING).appendField(new ot.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(ot.Msg.mixpy_PYLAB_TICKS).appendField(ot.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(ot.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},rd={init:function(){this.setColour(T_),this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT).appendField(ot.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ad={init:function(){this.setColour(T_),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},ld={init:function(){this.setColour(T_);var t=[[ot.Msg.TEXT_TRIM_LEFT,"right"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[ot.Msg.mixpy_PL_TEXT_TOP,"bottom"],[ot.Msg.mixpy_PL_TEXT_CENTER,"center"],[ot.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(ot.Msg.MIXLY_SETTING).appendField(ot.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(ot.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_HOR).appendField(new ot.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(ot.Msg.mixpy_PL_TEXT_VER).appendField(new ot.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.mixpy_PL_TEXT_TOOLTIP)}},ud={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取维度"),this.setOutput(!0),this.setTooltip("Returns the shape of the array.")}},pd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("变形"),this.appendValueInput("DIMENSIONS").appendField("后维度为"),this.setOutput(!0),this.setTooltip("Reshapes the array to the specified dimensions.")}},_d={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("把"),this.appendDummyInput().appendField("转换为").appendField(new ot.FieldDropdown([["uint8","numpy.uint8"],["int32","numpy.int32"],["float32","numpy.float32"],["float64","numpy.float64"]]),"TYPE"),this.setOutput(!0),this.setTooltip("Converts array to specified type.")}},dd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("创建二维图"),this.appendDummyInput().appendField("颜色").appendField(new ot.FieldDropdown([["gray","gray"],["viridis","viridis"],["plasma","plasma"],["inferno","inferno"],["magma","magma"],["cividis","cividis"],["hot","hot"],["cool","cool"],["spring","spring"],["summer","summer"],["autumn","autumn"],["winter","winter"],["jet","jet"]]),"COLORMAP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Displays an image with the specified colormap.")}},hd={init:function(){this.setColour(T_),this.appendValueInput("X").appendField("从数据集"),this.appendValueInput("Y").appendField("获取平均图像,标签"),this.appendValueInput("DIGIT").appendField("为"),this.setOutput(!0),this.setTooltip("Computes the mean of X where y equals the specified digit.")}},cd={init:function(){this.setColour(T_),this.appendValueInput("IMAGE").appendField("获取模板匹配结果,图片:"),this.appendValueInput("TEMPLATES").appendField("模板:"),this.setOutput(!0),this.setTooltip("Finds the index of the template that minimizes the sum of absolute differences with the image.")}},Td={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取平均值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the mean of the array along the specified axis.")}},Id={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取标准差"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","NONE"],["0","0"],["1","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Computes the standard deviation of the array along the specified axis.")}},md={init:function(){this.setColour(T_),this.appendValueInput("DF").appendField("丢弃缺省值"),this.setOutput(!0),this.setTooltip("Drops rows with NaN values from the dataframe.")}},Ed={init:function(){this.setColour(T_),this.appendValueInput("DATAFRAME").appendField("从数据集"),this.appendValueInput("COLUMNS").appendField("中删除列").setCheck(String),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("从数据框中删除指定的列。用逗号分隔多个列名。")}},fd={init:function(){this.setColour(T_),this.appendValueInput("NUM").appendField("生成单位行向量"),this.setOutput(!0),this.setTooltip("Creates an array of ones with the specified length.")}},gd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY1").appendField("列拼接:数组1"),this.appendValueInput("ARRAY2").appendField("数组2"),this.setOutput(!0),this.setTooltip("Concatenates two arrays along the second axis using numpy.c_.")}},Od={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取行列式"),this.setOutput(!0),this.setTooltip("Computes the determinant of an array using numpy.linalg.det.")}},Md={init:function(){this.setColour(T_),this.appendValueInput("MATRIX").appendField("获取转置"),this.setOutput(!0),this.setTooltip("Computes the transpose of the given matrix.")}},Rd={init:function(){this.setColour(T_),this.appendValueInput("MATRIX1"),this.appendValueInput("MATRIX2").appendField("@"),this.setOutput(!0),this.setTooltip("Multiplies two matrices.")}},Ad={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取逆矩阵"),this.setOutput(!0),this.setTooltip("Computes the inverse of the given matrix using numpy.linalg.inv.")}},Sd={init:function(){this.setColour(T_),this.appendValueInput("DATAFRAME").appendField("获取中位数"),this.setOutput(!0),this.setTooltip("Computes the median of the given dataframe.")}},Cd={init:function(){this.setColour(T_),this.appendValueInput("DATAFRAME").appendField("填充缺失值"),this.appendValueInput("VALUE").appendField("填充值"),this.appendDummyInput().appendField("是否修改原数据").appendField(new ot.FieldDropdown([["True","True"],["False","False"]]),"INPLACE"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("Fills NaN values in the dataframe with the specified value.")}},Ld={init:function(){this.setColour(T_),this.appendValueInput("DATAFRAME").appendField("获取DataFrame信息"),this.setOutput(!0),this.setTooltip("Displays information about the DataFrame.")}},yd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取最小值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the minimum value along the specified axis.")}},Dd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取最大值"),this.appendDummyInput().appendField("沿着axis").appendField(new ot.FieldDropdown([["None","None"],["行","0"],["列","1"]]),"AXIS"),this.setOutput(!0),this.setTooltip("Returns the maximum value along the specified axis.")}},Nd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取数组大小"),this.setOutput(!0),this.setTooltip("Returns the size of the array.")}},bd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY1").appendField("点乘数组1"),this.appendValueInput("ARRAY2").appendField("点乘数组2"),this.setOutput(!0),this.setTooltip("Returns the dot product of two arrays.")}},vd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取平方数组"),this.setOutput(!0),this.setTooltip("Returns the element-wise square of the array.")}},wd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("获取数组元素和"),this.setOutput(!0),this.setTooltip("Returns the sum of the array.")}},Fd={init:function(){this.setColour(T_),this.appendValueInput("SIZE").appendField("生成随机数组"),this.setOutput(!0),this.setTooltip("Returns a random array of the specified size.")}},Pd={init:function(){this.setColour(T_),this.appendValueInput("ARRAY").appendField("Python求和"),this.setOutput(!0),this.setTooltip("Returns the sum of the iterable.")}},kd={init:function(){this.setColour(T_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("值排序"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("排序方式").appendField(new ot.FieldDropdown([["升序","True"],["降序","False"]]),"AS_CENDING"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Vd={init:function(){this.setColour(T_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("获取").appendField(new ot.FieldDropdown([["前几行","head"],["最后几行","tail"]]),"TYPE"),this.appendValueInput("LINES").setAlign(ot.inputs.Align.RIGHT).appendField("行数"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Yd={init:function(){this.setColour(T_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("筛选数据"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("满足条件"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},xd={init:function(){this.setColour(T_),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.appendValueInput("KEY").setAlign(ot.inputs.Align.RIGHT).appendField("通过标签"),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField("分组"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Ud={init:function(){this.setColour(T_),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldDropdown([["求最小值","min"],["求最大值","max"],["求和","sum"],["求平均值","mean"],["求中位数","median"],["求标准差","std"]]),"TYPE"),this.appendValueInput("DICT").setAlign(ot.inputs.Align.RIGHT).setCheck("Dict"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("")}},Bd={init:function(){this.setColour(T_),this.appendDummyInput().appendField("清除已有图像"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xd=80,Gd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_NEW)),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_HEAD)).appendField(new ot.FieldTextInput("head"),"VAR"),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.DS_CREATE_LINKEDLIST_TYPE)).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ATTRIBUTE),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["ds_create_linkedlist_item"],this)),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("ds_create_linkedlist_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:"name"),"KEY"+e).appendField("=")},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Hd={init:function(){this.setColour(Xd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TITLE),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_CONTAINER_TOOLTIP),this.contextMenu=!1}},Wd={init:function(){this.setColour(Xd),this.appendDummyInput().appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TOOLTIP),this.contextMenu=!1}},jd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_USE).appendField(new ot.FieldTextInput("tag"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_NODE_NEW),this.appendValueInput("NODE"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_CREATE_NODE_TOOLTIP)}},Kd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField(ot.Msg.DS_GET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendDummyInput("").appendField(ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_GET_NODE_ATTR_TOOLTIP)}},qd={init:function(){this.setColour(Xd),this.appendDummyInput("").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_AIP_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.DS_SET_NODE_ATTR_SET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_SET_NODE_ATTR_TOOLTIP)}},$d={init:function(){this.setColour(Xd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_SET_NODE_ATTR_NODE),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},zd={init:function(){this.setColour(Xd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE);var t=[[ot.Msg.DS_ADD_NODE_BEFORE,"before"],[ot.Msg.DS_ADD_NODE_AFTER,"after"]];this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_CREATE_LINKEDLIST_ITEM_TITLE).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.appendValueInput("NODE3").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.DS_ADD_NODE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_ADD_NODE_TOOLTIP)}},Qd={init:function(){this.setColour(Xd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_DEL_NODE_NAME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Jd={init:function(){this.setColour(Xd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_LINKEDLIST),this.appendDummyInput("").appendField(ot.Msg.DS_DEL_NODE_ATTR).appendField(new ot.FieldTextInput("name"),"TYPE"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_AS),this.appendDummyInput("").appendField(ot.Msg.DS_ADD_NODE_ATTR),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},Zd={init:function(){this.setColour(Xd),this.appendValueInput("NODE").appendField(ot.Msg.DS_ADD_NODE_HEAD_NODE),this.appendDummyInput("").appendField(ot.Msg.DS_REVERSE_LINKEDLIST),this.appendValueInput("NODE2").appendField(ot.Msg.DS_REVERSE_LINKEDLIST_NEW_HEAD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.DS_DEL_NODE_TOOLTIP)}},th="#777777",eh={init:function(){this.setColour(th),this.appendDummyInput("").appendField("from ").appendField(new ot.FieldTextInput("ESP32"),"path").appendField(" import ").appendField(new ot.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nh={init:function(){this.setColour(th),this.appendDummyInput("").appendField("import ").appendField(new ot.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ih={init:function(){this.setColour(th),this.appendDummyInput("").appendField(new ot.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ot.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},kh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Vh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Yh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},xh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ot.Msg.MIXLY_WIFI_USERNAME).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ot.Msg.MIXLY_IOT_PASSWORD).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ot.Msg.MIXLY_EMQX_PROJECT).setAlign(ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Uh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},Bh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MIXLY_EMQX_SUBSCRIBE+ot.Msg.MIXLY_MICROBIT_MSG).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Xh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ot.Msg.MSG.stop+ot.Msg.MIXLY_EMQX_SUBSCRIBE).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Gh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Kh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},qh={init:function(){this.setColour(Nh),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},$h={init:function(){this.setColour(Nh),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},zh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Qh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ot.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Jh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zh={init:function(){this.setColour(Nh),this.appendDummyInput().appendField(ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ot.Msg.MIXLY_EMQX_SERVER).setAlign(ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tc={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Nh),this.appendDummyInput("").appendField(this.newQuote_(!0)).appendField(new ot.FieldTextInput(this.visitorId),"VISITOR_ID").appendField(this.newQuote_(!1)),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")},newQuote_:function(t){if(t==this.RTL)var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==";else e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC";return new ot.FieldImage(e,12,12,'"')}},ec={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Nh),this.appendDummyInput("").appendField(new ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},nc={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MixIO").appendField(ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},ic={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ot.Msg.MIXLY_REQUESTS_GET).appendField(ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sc={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("HTTP"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},oc={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ot.MQTT_Topic).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ot.Msg.MIXLY_OPEN_DEBUG).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rc={init:function(){this.setColour(Nh),this.appendDummyInput().appendField("MQTT"+ot.Msg.MIXLY_Client).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},ac=bh,lc=vh,uc=wh,pc=Ph,_c=230,dc={init:function(){this.setColour(_c),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_write),"PIN"),this.setOutput(!0)}},hc={init:function(){this.setColour(_c),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.digital_read),"PIN"),this.setOutput(!0)}},cc={init:function(){this.setColour(_c),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_write),"PIN"),this.setOutput(!0)}},Tc={init:function(){this.setColour(_c),this.appendDummyInput("").appendField(new ot.FieldDropdown(rt.Profile.default.analog_read),"PIN"),this.setOutput(!0)}},Ic={init:function(){this.setColour(40),this.appendDummyInput("").appendField(new ot.FieldLabel(ot.Msg.MIXPY_SERIAL_OPEN)).appendField(new ot.FieldTextInput("ser"),"SER"),this.appendDummyInput().appendField(ot.Msg.MIXLY_SERIAL_BEGIN).appendField(new ot.FieldDropdown([["115200","115200"],["256000","256000"],["128000","128000"],["57600","57600"],["56000","56000"],["43000","43000"],["38400","38400"],["28800","28800"],["19200","19200"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["600","600"],["300","300"],["110","110"]]),"BPS"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_OPEN_TIMEOUT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_OPEN_TOOLTIP)}},mc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").appendField(ot.Msg.MIXPY_SERIAL_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_WRITE_TOOLTIP)}},Ec={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendValueInput("VAR").setCheck(Number).appendField(ot.Msg.MIXPY_SERIAL_READ),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.MIXPY_SERIAL_READ_TOOLTIP)}},fc={init:function(){this.setColour(40),this.appendValueInput("SER"),this.appendDummyInput().appendField(ot.Msg.MIXPY_SERIAL_CLOSE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ot.Msg.MIXPY_SERIAL_CLOSE_TOOLTIP)}},gc=80,Oc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLASSIFICATION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_redundant").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REDUNDANT_FEATURES),this.appendValueInput("n_repeated").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_REPEATED_FEATURES),this.appendValueInput("n_classes").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLASSES),this.appendValueInput("n_clusters_per_class").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_PER_CLASSES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Mc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_REGRESSION_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("n_informative").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_EFFECTIVE_FEATURES),this.appendValueInput("n_targets").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_LABELS),this.appendValueInput("bias").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.DEVIATION),this.appendValueInput("noise").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NOISE),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Rc={init:function(){this.appendDummyInput().appendField(ot.Msg.SKLEARN_CLUSTERING_GENERATION),this.appendValueInput("n_samples").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_SAMPLES),this.appendValueInput("n_features").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_FEATURES),this.appendValueInput("centers").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS),this.appendValueInput("cluster_std").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.STANDARD_DEVIATION_OF_CLUSTER),this.appendValueInput("center_box").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.CLUSTER_BOUNDING_BOX),this.appendValueInput("shuffle").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SHUFFLE_SAMPLES),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Ac={init:function(){var t=[[ot.Msg.SKLEARN_LOAD_IRIS,"load_iris"],[ot.Msg.SKLEARN_LOAD_BOSTON,"load_boston"],[ot.Msg.SKLEARN_LOAD_DIABETES,"load_diabetes"],[ot.Msg.SKLEARN_LOAD_BREAST_CANCER,"load_breast_cancer"],[ot.Msg.SKLEARN_LOAD_LINNERUD,"load_linnerud"],[ot.Msg.SKLEARN_LOAD_DIGITS,"load_digits"]];this.appendDummyInput().appendField("sklearn "+ot.Msg.LOAD).appendField(new ot.FieldDropdown(t),"type").appendField(new ot.FieldTextInput("iris"),"name"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")},getVars:function(){return[this.getFieldValue("name")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("name"))&&this.setTitleValue(e,"name")}},Sc={init:function(){this.appendValueInput("name").setCheck(null).appendField("sklearn "+ot.Msg.DATA_SET),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.EIGENVALUES,"data"],[ot.Msg.LABEL_VALUE,"target"],[ot.Msg.FEATURE,"feature_names"],[ot.Msg.mixpy_PYLAB_TICKS_TAG,"target_names"]]),"type"),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Cc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Lc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.DATA_SEGMENTATION),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("test_size").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.TEST_SET_PROPORTION),this.appendValueInput("rondom_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},yc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_LINEARREGRESSION_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Dc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RIDGE_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("alpha").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGULA_INTENSITY),this.appendValueInput("fit_intercept").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT),this.appendValueInput("normalize").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_REGRESSION_NORMIALIZATION),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Nc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_DECISIONTREE_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"DecisionTreeClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"DecisionTreeRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},bc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_RANDOMFOREST_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"RandomForestClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"RandomForestRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_estimators").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_TREES),this.appendValueInput("max_depth").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAXIMUM_TREE_DEPTH),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},vc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KNN_INIT).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLASSIFICATION_ALGORITHM,"KNeighborsClassifier"],[ot.Msg.SKLEARN_REGRESSION_ALGORITHM,"KNeighborsRegressor"]]),"type"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("K").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("K"),this.appendValueInput("n_jobs").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_THREADS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},wc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GAUSSINNB_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Fc={init:function(){this.appendDummyInput().appendField("sklearn 初始化 PCA 算法"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_components").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_PCA_N_COMPONENTS),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Pc={init:function(){this.appendDummyInput().appendField("sklearn PCA 降维"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},kc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_KMEANS_INIT),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("n_clusters").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.NUMBER_OF_CLUSTERS_JUST),this.appendValueInput("max_iter").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.SKLEARN_MAX_ITER),this.appendValueInput("random_state").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.RANDOM_SEED),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Vc={init:function(){this.appendDummyInput().appendField("sklearn K-均值聚类"),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Yc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},xc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.TRAINING_MODEL),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Uc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.MODEL_PRODICTION),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Bc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.appendValueInput("train_target").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.LABEL_VALUE),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Xc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.CALCULATE_THE_SCORE),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendValueInput("train_data").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.EIGENVALUES),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Gc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_GENERALIZED_LINEAR_REGRESSION),this.appendValueInput("model_name").setAlign(ot.inputs.Align.RIGHT).setCheck(null).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_COEF,"coef_"],[ot.Msg.SKLEARN_INTERCEPT,"intercept_"]]),"type"),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Hc={init:function(){this.appendDummyInput().appendField("sklearn "+ot.Msg.SKLEARN_CLUSTERING),this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MODEL_NAME),this.appendDummyInput().appendField(ot.Msg.MIXLY_GET).appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_CLUSTER_CENTER,"cluster_centers_"],[ot.Msg.SKLEARN_LABELS_AFTER_CLUSTERING,"labels_"],[ot.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES,"inertia_"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},Wc={init:function(){this.appendValueInput("model_name").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField("sklearn").appendField(new ot.FieldDropdown([[ot.Msg.SKLEARN_SAVE_MODEL,"dump"],[ot.Msg.SKLEARN_LOAD_MODEL,"load"]]),"type").appendField(" "+ot.Msg.MODEL_NAME),this.appendValueInput("address").setCheck(null).setAlign(ot.inputs.Align.RIGHT).appendField(ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gc),this.setTooltip(""),this.setHelpUrl("")}},jc=120,Kc={init:function(){this.setColour(jc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY+"("+ot.Msg.MIXLY_MILLIS+")").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},qc={init:function(){this.setColour(jc),this.appendDummyInput().appendField(ot.Msg.blockpy_time_time),this.setOutput(!0,Number),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS)}},$c={init:function(){this.setColour(jc),this.appendDummyInput("").appendField(ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME),this.appendDummyInput().appendField(new ot.FieldDropdown([[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_ALL,"all"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_YEAR,"0"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MONTH,"1"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DATE,"2"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_HOUR,"3"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_MINUTE,"4"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_SECOND,"5"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INWEEK,"6"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_INYEAR,"7"],[ot.Msg.MIXLY_SYSTEM_TIME_LOCALTIME_DST,"8"]]),"op"),this.setOutput(!0),this.setInputsInline(!0)}},zc={init:function(){this.setColour(jc),this.appendValueInput("STATUS_CODE",Number).appendField(ot.Msg.MIXLY_MICROBIT_Panic_with_status_code).setCheck(Number),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},Qc={init:function(){this.setColour(jc),this.appendDummyInput().appendField(ot.Msg.MIXLY_MICROBIT_Reset_micro),this.setPreviousStatement(!0)}},Jc={init:function(){this.setColour(jc),this.appendValueInput("TIME").setCheck(Number).setAlign(ot.inputs.Align.RIGHT).appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_EVERY),this.appendDummyInput().appendField("ms"),this.appendStatementInput("DO").appendField(ot.Msg.MIXLY_MSTIMER2_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zc={init:function(){this.setColour(jc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_MSTIMER2_START),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tT={init:function(){this.setColour(jc),this.appendDummyInput().appendField("MsTimer2").appendField(ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eT={init:function(){this.setColour(jc),this.appendValueInput("DELAY_TIME",Number).appendField(ot.Msg.MIXLY_DELAY).setCheck(Number),this.appendDummyInput().appendField(ot.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_CONTROL_DELAY)}},nT=180,iT={init:function(){this.setColour(nT),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_create).appendField(new ot.FieldTextInput("tina"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.blockpy_turtle_create_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},sT={init:function(){this.setColour(nT),this.appendDummyInput().appendField(ot.Msg.blockpy_TURTLE_DONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oT={init:function(){this.setColour(nT),this.appendDummyInput().appendField(ot.Msg.MIXLY_PYTHON_TURTLE_EXITONCLICK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_forward,"forward"],[ot.Msg.blockpy_backward,"backward"]];this.setColour(nT),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_MOVE_BY_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{forward:ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[t]}))}},aT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_left,"left"],[ot.Msg.blockpy_right,"right"]];this.setColour(nT),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_rotate).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{left:ot.Msg.MIXLY_TOOLTIP_TURTEL_LEFT,right:ot.Msg.MIXLY_TOOLTIP_TURTEL_RIGHT}[t]}))}},lT={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_setheading),this.appendDummyInput().appendField(ot.Msg.blockpy_setheading_degree),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uT={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_SCREEN_DELAY),this.appendDummyInput().appendField(ot.Msg.MIXLY_MILLIS),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SCREEN_DELAY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pT={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto),this.appendValueInput("val").setCheck(Number).appendField(ot.Msg.blockpy_turtle_goto_y),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_goto_position),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_T={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.PYLAB_LABEL_X,"x"],[ot.Msg.PYLAB_LABEL_Y,"y"]];this.setColour(nT),this.appendValueInput("VAR").appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_MIXPY_TURTLE_SETXY_TOOLTIP)}},dT={init:function(){this.setColour(nT);var t=[[ot.Msg.TURTLE_POS,"pos"],[ot.Msg.TURTLE_SHAPE,"shape"],[ot.Msg.TURTLE_HEADING,"heading"],[ot.Msg.MIXLY_MIXPY_TURTLE_WIDTH,"width"],[ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE,"shapesize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_POS_SHAPE).appendField(new ot.FieldDropdown(t),"DIR");var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pos:ot.Msg.MIXLY_TOOLTIP_TURTEL_POS,shape:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHAPE,heading:ot.Msg.MIXLY_TOOLTIP_TURTEL_HEADING,width:ot.Msg.MIXLY_TOOLTIP_TURTEL_WIDTH,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_GET_SPEED,shapesize:ot.Msg.MIXLY_TURTEL_GET_SHAPESIZE_TOOLTIP}[t]})),this.setOutput(!0),this.setInputsInline(!0)}},hT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.MIXLY_LCD_STAT_CLEAR,"clear"],[ot.Msg.blockpy_turtle_reset,"reset"],[ot.Msg.blockpy_turtle_home,"home"]];this.setColour(nT),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},cT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_penup,"penup"],[ot.Msg.blockpy_turtle_pendown,"pendown"]];this.setColour(nT),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{penup:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENUP,pendown:ot.Msg.MIXLY_TOOLTIP_TURTEL_PENDOWN}[t]}))}},TT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_beginfill,"begin"],[ot.Msg.blockpy_turtle_endfill,"end"]];this.setColour(nT),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{begin:ot.Msg.MIXLY_TOOLTIP_TURTEL_BEGINFILL,end:ot.Msg.MIXLY_TOOLTIP_TURTEL_ENDFILL}[t]}))}},IT={init:function(){this.appendDummyInput("").appendField(new ot.FieldTextInput("tina"),"TUR");var t=[[ot.Msg.blockpy_turtle_size,"pensize"],[ot.Msg.MIXLY_SPEED,"speed"]];this.setColour(nT),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_set).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_set_num),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{pensize:ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE,speed:ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED}[t]}))}},mT={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_size),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ET={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_set_speed),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_circle,"circle"],[ot.Msg.blockpy_turtle_dot,"dot"]];this.setColour(nT),this.appendValueInput("VAR").appendField(ot.Msg.blockpy_turtle_draw).appendField(new ot.FieldDropdown(t),"DIR").appendField(ot.Msg.blockpy_turtle_radius),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{circle:ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE,dot:ot.Msg.MIXLY_TOOLTIP_TURTEL_DOT}[t]}))}},gT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(ot.Msg.blockpy_turtle_radius),this.appendValueInput("data").setCheck(Number).appendField(ot.Msg.blockpy_turtle_angle),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_TURTEL_CIRCLE)}},OT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_hide,"hideturtle"],[ot.Msg.blockpy_turtle_show,"showturtle"]];this.setColour(nT),this.appendDummyInput("").appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{hideturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_HIDE,showturtle:ot.Msg.MIXLY_TOOLTIP_TURTEL_SHOW}[t]}))}},MT={init:function(){this.setColour(nT),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_bgcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ST={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.TURTLE_CLONE),this.setTooltip(ot.Msg.TURTLE_CLONE_TOOLTIP),this.setOutput(!0)}},CT={init:function(){this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},LT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},DT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_pencolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME"),this.appendDummyInput().appendField(ot.Msg.blockpy_turtle_fillcolor).appendField(new ot.FieldColour("#ff0000"),"FIELDNAME2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR1").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor),this.appendValueInput("VAR2").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bT={init:function(){this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_bgcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_pencolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_fillcolor_hex),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},FT={init:function(){this.appendValueInput("TUR").setCheck("Turtle");var t=[[ot.Msg.blockpy_turtle_shape_arrow,"arrow"],[ot.Msg.blockpy_turtle_shape_turtle,"turtle"],[ot.Msg.blockpy_turtle_shape_circle,"circle"],[ot.Msg.blockpy_turtle_shape_square,"square"],[ot.Msg.blockpy_turtle_shape_triangle,"triangle"],[ot.Msg.blockpy_turtle_shape_classic,"classic"]];this.setColour(nT),this.appendDummyInput("").appendField(ot.Msg.blockpy_turtle_shape).appendField(new ot.FieldDropdown(t),"DIR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_SHAPE_TOOLTIP)}},PT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE),this.appendValueInput("WID").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_WID),this.appendValueInput("LEN").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_LEN),this.appendValueInput("OUTLINE").setCheck(Number).appendField(ot.Msg.MIXLY_TURTEL_SHAPESIZE_OUTLINE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TOOLTIP_SHAPESIZE)}},kT={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_NUMINPUT),this.setColour(nT),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.appendValueInput("DEFAULT").setCheck(Number).appendField(ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("MIN").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MIN),this.appendValueInput("MAX").setCheck(Number).appendField(ot.Msg.MATH_ONLIST_OPERATOR_MAX),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ot.Msg.TURTLE_NUMINPUT_TOOLTIP)}},VT={init:function(){this.appendDummyInput("").appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT),this.setColour(nT),this.appendValueInput("TITLE").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_TITLE),this.appendValueInput("PROMPT").setCheck(String).appendField(ot.Msg.MIXLY_MIXPY_TURTLE_TEXTINPUT_PROMPT),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ot.Msg.TURTLE_TEXTINPUT_TOOLTIP)}},YT={init:function(){this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},xT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD_ITALIC,'bold","italic']];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},UT={init:function(){var t=[[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"],[ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"]],e=[[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_LEFT,"left"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[ot.Msg.MIXLY_TURTLE_WRITE_ALIGN_RIGHT,"right"]],n=[[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_NORMAL,"normal"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_BOLD,"bold"],[ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE_ITALIC,"italic"]];this.appendValueInput("TUR").setCheck("Turtle"),this.setColour(nT),this.appendValueInput("VAR").setCheck(String).appendField(ot.Msg.blockpy_turtle_write),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_MOVE).appendField(new ot.FieldDropdown(t),"MOVE"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_ALIGN).appendField(new ot.FieldDropdown(e),"ALIGN"),this.appendValueInput("FONTNAME").setCheck(String).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NAME),this.appendValueInput("FONTNUM").setCheck(Number).appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTLE_WRITE_FONT_TYPE).appendField(new ot.FieldDropdown(n),"FONTTYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.TURTLE_WRITE_TOOLTIP)}},BT={init:function(){this.setColour(nT),this.appendDummyInput("").setAlign(ot.inputs.Align.RIGHT).appendField(new ot.FieldColour("ff0000"),"COLOR"),this.setInputsInline(!0),this.setOutput(!0,String)}},XT={init:function(){this.setColour(nT),this.appendValueInput("TUR").setCheck("Turtle"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_GETSCREEN).appendField(new ot.FieldTextInput("screen"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_GETSCREEN_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},GT={init:function(){this.setColour(nT),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP)}},HT={init:function(){this.setColour(nT),this.appendValueInput("TUR"),this.appendDummyInput("").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONCLICK_TOOLTIP)}},WT={init:function(){this.setColour(nT),this.appendValueInput("TUR"),this.appendValueInput("VAR").appendField(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER),this.appendDummyInput("").appendField(ot.Msg.MIXLY_mSecond),this.appendValueInput("callback").appendField(ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ot.Msg.MIXLY_TURTEL_EVENT_ONTIMER_TOOLTIP)}},jT={init:function(){this.setColour(nT),this.appendValueInput("TUR"),this.appendDummyInput().appendField(ot.Msg.MIXLY_TURTEL_SCREEN_LISTEN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KT={init:function(){this.setColour(nT),this.appendValueInput("TUR"),this.appendValueInput("FILE").setCheck(String).appendField(ot.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ot.Msg.mixpy_TURTLE_SAVEFIG_TOOLTIP)}},qT=function(t,e){var n=this.getFieldValue("TYPE");return e.definitions_.import_FileDialog="import FileDialog",["FileDialog."+n+"()",e.ORDER_ATOMIC]},$T=function(t,e){var n=this.getFieldValue("CTYPE");return e.definitions_.import_aip="import aip",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = aip."+n+"("+e.valueToCode(this,"API_KEY",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"SECRET_KEY",e.ORDER_ATOMIC)+")\n"},zT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".synthesis("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},QT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".asr("+(e.valueToCode(this,"FILE",e.ORDER_ATOMIC)||'""')+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},JT=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},ZT=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".match("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"VAR2",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},tI=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},eI=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},nI=function(t,e){e.definitions_.import_aip="import aip";var n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),i=e.valueToCode(this,"STR1",e.ORDER_ATOMIC),s=e.valueToCode(this,"STR2",e.ORDER_ATOMIC);return[n+"."+e.valueToCode(this,"FUNC",e.ORDER_ATOMIC)+"("+i+","+s+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},iI=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".topic("+e.valueToCode(this,"STR1",e.ORDER_ATOMIC)+","+e.valueToCode(this,"STR2",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},sI=function(t,e){return e.definitions_.import_aip="import aip",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".newsSummary("+e.valueToCode(this,"STR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"LEN",e.ORDER_ATOMIC)+", options="+(e.valueToCode(this,"ATTR",e.ORDER_ATOMIC)||"{}")+")",e.ORDER_ATOMIC]},oI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},rI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},aI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},lI=function(t,e){return[this.getFieldValue("TYPE"),e.ORDER_ATOMIC]},uI=function(t,e){return e.definitions_.import_audio="import audio","audio.audio_record("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"TIME",e.ORDER_ATOMIC)||"0")+")\n"},pI=function(t,e){return e.definitions_.import_audio="import cam","cam.photo_capture("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+","+(e.valueToCode(this,"BUT",e.ORDER_ATOMIC)||'""')+")\n"},_I=function(t,e){var n=e.valueToCode(this,"AI",e.ORDER_ASSIGNMENT)||"0",i=this.getFieldValue("CTYPE");if("Image"==i)var s=n+'["result"][0]["keyword"]';if("Speech"==i)s=n+'["result"][0]';if("Face"==i||"OcrSimilarity"==i)s=n+'["score"]';if("Ocr"==i)s=n+'["words_result"]';return[s,e.ORDER_ATOMIC]},dI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,1,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,1,1,0,0], [0,0,1,0,0,1,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},hI=function(){return"path = [1]\nmask.show()\ncar = sprite.Sprite('xnie', position[1][0], position[1][1])\nhouse[1].show()\ncar.nowPos = 1\ndef drive(n):\n if g[car.nowPos][n]==1:\n car.slideTo(position[n][0], position[n][1], 1)\n car.nowPos = n\n else:\n print('移动失败!程序有误!')\n exit()\n"},cI=function(t,e){e.definitions_.import_random="import random";return"f = path[(len(path) - 1)]\nflag = 0\nfor _my_variable in [6,5,4,3,2,1,0]:\n if vis[_my_variable+1] == 0 and g[f][_my_variable+1] == 1:\n if mark[f][_my_variable+1] == 0:\n flag = 1\n break\n"},TI=function(t,e){return["flag == 1",e.ORDER_ATOMIC]},II=function(){return"mark[f][_my_variable+1] = 1\nvis[_my_variable+1] = 1\n"},mI=function(){return"path.append(_my_variable+1)\ndrive(path[len(path) - 1])\nhouse[_my_variable+1].show()\n"},EI=function(t,e){e.definitions_.import_time="import time";return"del path[len(path) - 1]\nhouse[0].show()\ntime.sleep(0.5)\nhouse[0].hide()\n"},fI=function(){var t="for i in range(7):\n mark[f][i+1] = 0\n vis[f] = 0\n";return t="house[f].hide()\ndrive(path[len(path) - 1])\n"+t},gI=function(t,e){return["len(path) == 7",e.ORDER_ATOMIC]},OI=function(){return'name = ["","学校","小智家","小欣家","小思家","小科家","贝贝家","乐乐家"]\nres = ""\nfor i in path:\n res = res + name[i] + "-"\nprint(res[:-1])\n'},MI=function(t,e){e.definitions_.import_sprite="import sprite";return"g = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0], [0,0,0,1,0,0,1,0,0,0], [0,1,1,0,1,0,0,0,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,0,1,0,0,0,1,0,0], [0,0,1,0,0,0,0,1,0,0], [0,0,0,0,1,1,1,0,0,0]]\nmark = [[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]\nvis = [0,1,0,0,0,0,0,0,0]\nposition = [[0, 0], [200, 200], [250, 60], [320, 200], [280, 380], [470, 250], [670, 90], [650, 340]]\nsprite.clearAllSprites()\nsprite.createBackground('ditu')\nmask = sprite.Sprite('white', 96, 354)\nmask.hide()\nhouse = [\n sprite.Sprite('mark', 150, 380),\n sprite.Sprite('xtxn', 96, 170),\n sprite.Sprite('xnvijx', 270, 45),\n sprite.Sprite('xnxbjx', 310, 182),\n sprite.Sprite('xnsijx', 300, 370),\n sprite.Sprite('xnkejx', 495, 220),\n sprite.Sprite('bwbwjx', 716, 85),\n sprite.Sprite('lelejx', 686, 314)\n]\nbarricade = sprite.Sprite('barricade', 610, 170)\nbarricade.enlargeTo(100)\nfor i in house:\n i.filterBrighter()\n i.hide()\n"},RI=function(t,e){return["f == 1",e.ORDER_ATOMIC]},AI=function(){return"print('没有符合条件的路线')\n"},SI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g = [[10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000],[10000,10000,500,300,10000,10000,10000,10000,10000,10000,10000],[10000,500,10000,10000,100,10000,10000,10000,10000,10000,10000],[10000,300,10000,10000,400,300,10000,10000,10000,10000,10000],[10000,10000,100,400,10000,10000,200,10000,10000,10000,10000],[10000,10000,10000,300,10000,10000,100,200,10000,10000,10000],[10000,10000,10000,10000,200,100,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,200,10000,10000,100,10000,10000],[10000,10000,10000,10000,10000,10000,100,100,10000,10000,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小思家","银行","邮局","餐厅","书店","医院","超市","小科家"]\nposition = [[0, 0], [60, 320], [510, 390], [240, 200], [750, 330], [410, 90], [540, 190], [550, 30], [720, 120]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_si_ke\')\nstu = sprite.Sprite(\'girl\', 60, 320)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},CI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'g =[[10000,10000,10000,10000,10000,10000,10000],[10000,10000,300,500,10000,10000,10000],[10000,300,10000,10000,300,700,10000],[10000,500,10000,10000,10000,100,10000],[10000,10000,300,10000,10000,10000,200],[10000,10000,700,100,10000,10000,100],[10000,10000,10000,10000,200,100,10000]]\nnow=1\nlast=1\npath=[]\npath.append(1)\nname = ["","小智家","邮局","银行","书店","餐厅","学校"]\nposition = [[0, 0], [70, 340], [70, 90], [550, 310], [420, 70], [730, 250], [650, 130]]\nsprite.clearAllSprites()\nsprite.createBackground(\'map_zhi_xue\')\nstu = sprite.Sprite(\'boy\', 70, 340)\nstu.enlargeTo(100)\ntime.sleep(1)\n\n'},LI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return'tmp=10000\nfor i in range(0, len(g), 1):\n if g[now][i]6:\n print("路线错乱!程序有误!")\n exit()\n'},yI=function(t,e){return["name[now] != '小科家'",e.ORDER_ATOMIC]},DI=function(t,e){return["name[now] != '学校'",e.ORDER_ATOMIC]},NI=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},bI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var i="print('层数过高!不得高于6层!')\nexit()\n";else i="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return i},vI=function(t,e){var n=e.valueToCode(this,"FROM_NUM",e.ORDER_ATOMIC)||"0",i=e.valueToCode(this,"TO_NUM",e.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${i}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${i}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${i}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${i}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${i}*200+200, 400-len(_Hanoi[${i}])*27, 0.2)\n _Hanoi[${i}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},wI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},FI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},PI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},kI=function(t,e){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",e.ORDER_ATOMIC]},VI=function(t,e){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",e.ORDER_ATOMIC]},YI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},xI=function(t,e){return["len(list)>=2",e.ORDER_ATOMIC]},UI=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},BI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},XI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},GI=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},HI=function(t,e){var n=this.getFieldValue("NUM");return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},WI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},jI=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},KI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},qI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},$I=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},zI=function(t,e){return["_rabbit < _head",e.ORDER_ATOMIC]},QI=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},JI=function(t,e){return["_rabbit*4 + _chick*2 == _foot",e.ORDER_ATOMIC]},ZI=function(t,e){e.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},tm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},em=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},nm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const i=[0,[1,3],[2,4],[5,7],[6]];var s="";return s+=`_S${n}.show()\ntime.sleep(1)\n`,s+=4!=n?`_Slen[${n}] = _Llen[${i[n][0]}] + _Llen[${i[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},im=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,e.ORDER_ATOMIC]},sm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),i="";return i+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},om=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},rm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},am=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},lm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},um=function(t,e){return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,e.ORDER_ATOMIC]},pm=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},_m=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},dm=function(t,e){e.definitions_.import_turtle="import turtle",e.definitions_.import_time="import time",e.definitions_.import_math="import math";var n=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),i=this.getFieldValue("NUM");return e.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",e.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",e.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if a 1"}]`,e.ORDER_ATOMIC]},WE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.groupby(by=${e.valueToCode(t,"KEY",e.ORDER_ATOMIC)||"'tag'"})`,e.ORDER_ATOMIC]},jE=function(t,e){return[`${e.valueToCode(t,"DICT",e.ORDER_ATOMIC)||"df"}.${t.getFieldValue("TYPE")}()`,e.ORDER_ATOMIC]},KE=function(t,e){e.definitions_.import_matplotlib_pyplot="import matplotlib.pyplot as plt";return"plt.cla()\n"},qE=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("VAR"),ot.Variables.NAME_TYPE),i=e.variableDB_.getName(this.getFieldValue("TYPE"),ot.Variables.NAME_TYPE),s="class "+i+":\n";s+=" def __init__(self):\n";for(var o=new Array(this.itemCount_),r=0;r{document.removeEventListener("DOMContentLoaded",t),this._pageLoad.resolve()};document.addEventListener("DOMContentLoaded",t)}else this._pageLoad.resolve();(async()=>{switch(n){case"python":case"python3":case"python3.11":const{KernelPython3:e}=await __webpack_require__.e(211).then(__webpack_require__.bind(__webpack_require__,211));this._kernel=new e(t);break;case"python3-old":case"python3.8":const{KernelPython3Old:i}=await __webpack_require__.e(195).then(__webpack_require__.bind(__webpack_require__,5195));this._kernel=new i(t);break;case"js":case"javascript":const{KernelJavaScript:s}=await __webpack_require__.e(97).then(__webpack_require__.bind(__webpack_require__,4097));this._kernel=new s(t);break;case"sql":const{KernelSQL:o}=await Promise.all([__webpack_require__.e(960),__webpack_require__.e(837)]).then(__webpack_require__.bind(__webpack_require__,592));this._kernel=new o(t);break;case"ocaml":const{KernelOCaml:r}=await __webpack_require__.e(38).then(__webpack_require__.bind(__webpack_require__,38));this._kernel=new r(t);break;default:return window.console.error(`Kernel '${n}' not supported.`),void this._kernelAvailable.reject()}window.Basthon=this._kernel,this._kernelAvailable.resolve(this._kernel)})()}async pageLoad(){await this._pageLoad.promise}async kernelAvailable(){return await this._kernelAvailable.promise}async kernelLoaded(){const t=await this.kernelAvailable();return await t.loaded(),t}get kernel(){return this._kernel}get kernelSafe(){var t;return(null===(t=this.kernel)||void 0===t?void 0:t.ready)?this.kernel:null}async showLoader(t,e=!1,n=!0){this.kernelAvailable().then((()=>{var t;return null===(t=this.kernel)||void 0===t?void 0:t.init()})),__webpack_require__.e(317).then(__webpack_require__.bind(__webpack_require__,1317));const i="basthon-loader-"+(e?"full":"foot"),s=document.createElement("div");s.id=this._loaderId,s.classList.add("darklighted"),s.classList.add("basthon-loader-root"),s.classList.add(i);const o=document.createElement("div");o.classList.add("basthon-loader-container"),o.classList.add(i),s.appendChild(o);const r=document.createElement("div");r.classList.add("basthon-loader-spinner"),r.classList.add(i),r.innerHTML="",o.appendChild(r);const a=document.createElement("div");a.classList.add("basthon-loader-break"),a.classList.add(i),o.appendChild(a);const l=document.createElement("div");l.classList.add("basthon-loader-text"),l.classList.add(i),l.innerHTML=t,o.appendChild(l),this._loaderTextElem=l;const u=document.createElement("div");u.classList.add("basthon-loader-text"),u.classList.add(i),u.style.display="none",o.appendChild(u),this._loaderTextError=u,await this.pageLoad(),document.body.appendChild(s),this._rootLoader=s;try{await this.kernelLoaded()}catch(t){const e=this.browser();this.setErrorText(`Erreur de chargement de Basthon !!!
Vérifiez que votre navigateur est à jour.
Version détectée : ${e.name} ${e.version}.`);for(const t of document.body.querySelectorAll(".basthon-loader-foot"))t.classList.remove("basthon-loader-foot"),t.classList.add("basthon-loader-full");return r.classList.remove("basthon-loader-spinner"),r.classList.add("basthon-loader-error"),void(this._doNotHideLoader=!0)}this._doNotHideLoader=!1,n&&this.hideLoader()}setLoaderText(t){null!=this._loaderTextElem&&(this._loaderTextElem.innerHTML=t)}setErrorText(t){null!=this._loaderTextElem&&(this._loaderTextElem.style.display="none"),null!=this._loaderTextError&&(this._loaderTextError.style.display="",this._loaderTextError.innerHTML=t)}hideLoader(){if(this._doNotHideLoader)return;const t=this._rootLoader;null!=t&&(t.classList.add("basthon-loader-hide"),window.setTimeout((()=>{this._rootLoader=void 0,t.remove()}),1100))}browser(){var t,e=navigator.userAgent,n=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(t=/\brv[ :]+(\d+)/g.exec(e)||[])[1]||""}:"Chrome"===n[1]&&null!=(t=e.match(/\bOPR|Edge\/(\d+)/))?{name:"Opera",version:t[1]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&n.splice(1,1,t[1]),{name:n[0],version:n[1]})}}class AO extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-image.html",new rt.HTMLTemplate('\r\n
')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["images"],AO);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("images","images",ot.Msg.PYTHON_PYODIDE_IMAGE),t.changeTo("output"),t.get("images")}}constructor(){super();const t=OO()(rt.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(t)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(t){const e=this.getContent(),n=function(t){t.style.width="auto",t.style.height="auto",t.style.maxWidth="100%",t.style.maxHeight="100%"};this.clean();let i=t.content,s=null,o=null;switch(t.display_type){case"p5":i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",new MutationObserver((function(t){t.forEach((t=>t.addedNodes.forEach((t=>{const e=t;null!=e.tagName&&["canvas","video"].includes(e.tagName.toLowerCase())&&n(e)}))))})).observe(i,{childList:!0}),i.querySelectorAll("canvas,video").forEach(n),e.append(i);break;case"matplotlib":s=i.querySelector("canvas"),s&&(i=s),i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"ocaml-canvas":i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"turtle":i.setAttribute("width","100%"),i.setAttribute("height","100%"),e.append(i.outerHTML);break;case"sympy":e.append(t.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let t=document.createElement("script");t.type="text/javascript",t.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(t)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in t.content){let i=t.content[n];"image/png"===n&&(i=''),e.append(i);break}break;case"tutor":if(e.append(OO()(t.content.replace("overflow-y%3A%20hidden%3B",""))),o=this.getContent()[0].getElementsByTagName("iframe")[0],null==o)return;o.style.maxHeight=o.style.minHeight="100%",new IntersectionObserver(((t,e)=>{const n=t[0];n&&!n.isIntersecting||(o.contentWindow?.postMessage({type:"redraw"},"*"),e.disconnect())})).observe(o);break;default:console.error(`Not supported node type '${t.display_type}' in eval.display result processing.`)}}}const SO=layui;var CO;!function(t){t[t.EPERM=1]="EPERM",t[t.ENOENT=2]="ENOENT",t[t.EINTR=4]="EINTR",t[t.EIO=5]="EIO",t[t.ENXIO=6]="ENXIO",t[t.EBADF=9]="EBADF",t[t.EAGAIN=11]="EAGAIN",t[t.ENOMEM=12]="ENOMEM",t[t.EACCES=13]="EACCES",t[t.EFAULT=14]="EFAULT",t[t.ENOTBLK=15]="ENOTBLK",t[t.EBUSY=16]="EBUSY",t[t.EEXIST=17]="EEXIST",t[t.EXDEV=18]="EXDEV",t[t.ENODEV=19]="ENODEV",t[t.ENOTDIR=20]="ENOTDIR",t[t.EISDIR=21]="EISDIR",t[t.EINVAL=22]="EINVAL",t[t.ENFILE=23]="ENFILE",t[t.EMFILE=24]="EMFILE",t[t.ETXTBSY=26]="ETXTBSY",t[t.EFBIG=27]="EFBIG",t[t.ENOSPC=28]="ENOSPC",t[t.ESPIPE=29]="ESPIPE",t[t.EROFS=30]="EROFS",t[t.EMLINK=31]="EMLINK",t[t.EPIPE=32]="EPIPE",t[t.EDOM=33]="EDOM",t[t.ERANGE=34]="ERANGE",t[t.EDEADLK=35]="EDEADLK",t[t.ENAMETOOLONG=36]="ENAMETOOLONG",t[t.ENOLCK=37]="ENOLCK",t[t.ENOSYS=38]="ENOSYS",t[t.ENOTEMPTY=39]="ENOTEMPTY",t[t.ELOOP=40]="ELOOP",t[t.ENOMSG=42]="ENOMSG",t[t.EBADE=52]="EBADE",t[t.EBADR=53]="EBADR",t[t.EXFULL=54]="EXFULL",t[t.ENOANO=55]="ENOANO",t[t.EBADRQC=56]="EBADRQC",t[t.ENOSTR=60]="ENOSTR",t[t.ENODATA=61]="ENODATA",t[t.ETIME=62]="ETIME",t[t.ENOSR=63]="ENOSR",t[t.ENONET=64]="ENONET",t[t.EREMOTE=66]="EREMOTE",t[t.ENOLINK=67]="ENOLINK",t[t.ECOMM=70]="ECOMM",t[t.EPROTO=71]="EPROTO",t[t.EBADMSG=74]="EBADMSG",t[t.EOVERFLOW=75]="EOVERFLOW",t[t.EBADFD=77]="EBADFD",t[t.ESTRPIPE=86]="ESTRPIPE",t[t.ENOTSOCK=88]="ENOTSOCK",t[t.EDESTADDRREQ=89]="EDESTADDRREQ",t[t.EMSGSIZE=90]="EMSGSIZE",t[t.EPROTOTYPE=91]="EPROTOTYPE",t[t.ENOPROTOOPT=92]="ENOPROTOOPT",t[t.EPROTONOSUPPORT=93]="EPROTONOSUPPORT",t[t.ESOCKTNOSUPPORT=94]="ESOCKTNOSUPPORT",t[t.ENOTSUP=95]="ENOTSUP",t[t.ENETDOWN=100]="ENETDOWN",t[t.ENETUNREACH=101]="ENETUNREACH",t[t.ENETRESET=102]="ENETRESET",t[t.ETIMEDOUT=110]="ETIMEDOUT",t[t.ECONNREFUSED=111]="ECONNREFUSED",t[t.EHOSTDOWN=112]="EHOSTDOWN",t[t.EHOSTUNREACH=113]="EHOSTUNREACH",t[t.EALREADY=114]="EALREADY",t[t.EINPROGRESS=115]="EINPROGRESS",t[t.ESTALE=116]="ESTALE",t[t.EREMOTEIO=121]="EREMOTEIO",t[t.EDQUOT=122]="EDQUOT"}(CO||(CO={}));const LO={[CO.EPERM]:"Operation not permitted",[CO.ENOENT]:"No such file or directory",[CO.EINTR]:"Interrupted system call",[CO.EIO]:"Input/output error",[CO.ENXIO]:"No such device or address",[CO.EBADF]:"Bad file descriptor",[CO.EAGAIN]:"Resource temporarily unavailable",[CO.ENOMEM]:"Cannot allocate memory",[CO.EACCES]:"Permission denied",[CO.EFAULT]:"Bad address",[CO.ENOTBLK]:"Block device required",[CO.EBUSY]:"Resource busy or locked",[CO.EEXIST]:"File exists",[CO.EXDEV]:"Invalid cross-device link",[CO.ENODEV]:"No such device",[CO.ENOTDIR]:"File is not a directory",[CO.EISDIR]:"File is a directory",[CO.EINVAL]:"Invalid argument",[CO.ENFILE]:"Too many open files in system",[CO.EMFILE]:"Too many open files",[CO.ETXTBSY]:"Text file busy",[CO.EFBIG]:"File is too big",[CO.ENOSPC]:"No space left on disk",[CO.ESPIPE]:"Illegal seek",[CO.EROFS]:"Cannot modify a read-only file system",[CO.EMLINK]:"Too many links",[CO.EPIPE]:"Broken pipe",[CO.EDOM]:"Numerical argument out of domain",[CO.ERANGE]:"Numerical result out of range",[CO.EDEADLK]:"Resource deadlock would occur",[CO.ENAMETOOLONG]:"File name too long",[CO.ENOLCK]:"No locks available",[CO.ENOSYS]:"Function not implemented",[CO.ENOTEMPTY]:"Directory is not empty",[CO.ELOOP]:"Too many levels of symbolic links",[CO.ENOMSG]:"No message of desired type",[CO.EBADE]:"Invalid exchange",[CO.EBADR]:"Invalid request descriptor",[CO.EXFULL]:"Exchange full",[CO.ENOANO]:"No anode",[CO.EBADRQC]:"Invalid request code",[CO.ENOSTR]:"Device not a stream",[CO.ENODATA]:"No data available",[CO.ETIME]:"Timer expired",[CO.ENOSR]:"Out of streams resources",[CO.ENONET]:"Machine is not on the network",[CO.EREMOTE]:"Object is remote",[CO.ENOLINK]:"Link has been severed",[CO.ECOMM]:"Communication error on send",[CO.EPROTO]:"Protocol error",[CO.EBADMSG]:"Bad message",[CO.EOVERFLOW]:"Value too large for defined data type",[CO.EBADFD]:"File descriptor in bad state",[CO.ESTRPIPE]:"Streams pipe error",[CO.ENOTSOCK]:"Socket operation on non-socket",[CO.EDESTADDRREQ]:"Destination address required",[CO.EMSGSIZE]:"Message too long",[CO.EPROTOTYPE]:"Protocol wrong type for socket",[CO.ENOPROTOOPT]:"Protocol not available",[CO.EPROTONOSUPPORT]:"Protocol not supported",[CO.ESOCKTNOSUPPORT]:"Socket type not supported",[CO.ENOTSUP]:"Operation is not supported",[CO.ENETDOWN]:"Network is down",[CO.ENETUNREACH]:"Network is unreachable",[CO.ENETRESET]:"Network dropped connection on reset",[CO.ETIMEDOUT]:"Connection timed out",[CO.ECONNREFUSED]:"Connection refused",[CO.EHOSTDOWN]:"Host is down",[CO.EHOSTUNREACH]:"No route to host",[CO.EALREADY]:"Operation already in progress",[CO.EINPROGRESS]:"Operation now in progress",[CO.ESTALE]:"Stale file handle",[CO.EREMOTEIO]:"Remote I/O error",[CO.EDQUOT]:"Disk quota exceeded"};class yO extends Error{static fromJSON(t){const e=new yO(t.errno,t.message,t.path,t.syscall);return e.code=t.code,e.stack=t.stack,e}static With(t,e,n){return new yO(CO[t],LO[CO[t]],e,n)}constructor(t,e=LO[t],n,i=""){super(e),this.errno=t,this.path=n,this.syscall=i,this.code=CO[t],this.message=this.code+": "+e+(this.path?`, '${this.path}'`:"")}toString(){return this.message}toJSON(){return{errno:this.errno,code:this.code,path:this.path,stack:this.stack,message:this.message,syscall:this.syscall}}bufferSize(){return 4+JSON.stringify(this.toJSON()).length}}let DO="/";function NO(t,e){let n="",i=0,s=-1,o=0,r="\0";for(let a=0;a<=t.length;++a){if(a2){const t=n.lastIndexOf("/");-1===t?(n="",i=0):(n=n.slice(0,t),i=n.length-1-n.lastIndexOf("/")),s=a,o=0;continue}if(0!==n.length){n="",i=0,s=a,o=0;continue}}e&&(n+=n.length>0?"/..":"..",i=2)}else n.length>0?n+="/"+t.slice(s+1,a):n=t.slice(s+1,a),i=a-s-1;s=a,o=0}else"."===r&&-1!==o?++o:o=-1}return n}function bO(...t){let e="";for(const n of[...t.reverse(),DO])if(n.length&&(e=`${n}/${e}`,n.startsWith("/")))break;const n=e.startsWith("/");return e=NO(e,!n),n?`/${e}`:e.length?e:"/"}function vO(...t){if(!t.length)return".";const e=t.join("/");return e?.length?function(t){if(!t.length)return".";const e=t.startsWith("/"),n=t.endsWith("/");return(t=NO(t,!e)).length?(n&&(t+="/"),e?`/${t}`:t):e?"/":n?"./":"."}(e):"."}function wO(t){if(0===t.length)return".";const e="/"===t[0];let n=-1,i=!0;for(let e=t.length-1;e>=1;--e)if("/"===t[e]){if(!i){n=e;break}}else i=!1;return-1===n?e?"/":".":e&&1===n?"//":t.slice(0,n)}function FO(t,e){let n=0,i=-1,s=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e===t)return"";let o=e.length-1,r=-1;for(let a=t.length-1;a>=0;--a)if("/"===t[a]){if(!s){n=a+1;break}}else-1===r&&(s=!1,r=a+1),o>=0&&(t[a]===e[o]?-1==--o&&(i=a):(o=-1,i=r));return n===i?i=r:-1===i&&(i=t.length),t.slice(n,i)}for(let e=t.length-1;e>=0;--e)if("/"===t[e]){if(!s){n=e+1;break}}else-1===i&&(s=!1,i=e+1);return-1===i?"":t.slice(n,i)}function PO(t){const e=t.startsWith("/"),n={root:e?"/":"",dir:"",base:"",ext:"",name:""};if(0===t.length)return n;const i=e?1:0;let s=-1,o=0,r=-1,a=!0,l=t.length-1,u=0;for(;l>=i;--l)if("/"!==t[l])-1===r&&(a=!1,r=l+1),"."===t[l]?-1===s?s=l:1!==u&&(u=1):-1!==s&&(u=-1);else if(!a){o=l+1;break}if(-1!==r){const i=0===o&&e?1:o;-1===s||0===u||1===u&&s===r-1&&s===o+1?n.base=n.name=t.slice(i,r):(n.name=t.slice(i,s),n.base=t.slice(i,r),n.ext=t.slice(s,r))}return o>0?n.dir=t.slice(0,o-1):e&&(n.dir="/"),n}const kO=new TextEncoder;function VO(t){if("string"!=typeof t)throw new yO(CO.EINVAL,"Can not encode a non-string");return kO.encode(t)}const YO=new TextDecoder;function xO(t){if(!(t instanceof Uint8Array))throw new yO(CO.EINVAL,"Can not decode a non-Uint8Array");return YO.decode(t)}function UO(t){return JSON.parse(xO(t),((t,e)=>""==t?e:BigInt(e)))}function BO(t){return VO(JSON.stringify(t,((t,e)=>""==t?e:e.toString())))}function XO(t,e){if("number"==typeof t)return t;if("string"==typeof t){const e=parseInt(t,8);if(!isNaN(e))return e}if("number"==typeof e)return e;throw new yO(CO.EINVAL,"Invalid mode: "+t?.toString())}function GO(t){if(t instanceof Date)return t;try{return new Date(t)}catch{throw new yO(CO.EINVAL,"Invalid time.")}}function HO(t){if((t=t.toString()).includes("\0"))throw new yO(CO.EINVAL,"Path can not contain null character");if(0==t.length)throw new yO(CO.EINVAL,"Path can not be empty");return bO(t.replaceAll(/[/\\]+/g,"/"))}function WO(t,e="utf8",n,i=0){return"object"!=typeof t||null===t?{encoding:"string"==typeof t?t:e??null,flag:n,mode:i}:{encoding:"string"==typeof t?.encoding?t.encoding:e??null,flag:"string"==typeof t?.flag?t.flag:n,mode:XO("mode"in t?t?.mode:null,i)}}function jO(){return crypto.getRandomValues(new BigUint64Array(1))[0]}const KO={uid:0,gid:0,suid:0,sgid:0,euid:0,egid:0,groups:[]};function qO(t){return{suid:t.uid,sgid:t.gid,euid:t.uid,egid:t.gid,groups:[],...t}}const $O=0,zO=4,QO=2,JO=1,ZO=1,tM=2,eM=4,nM=0,iM=1,sM=2,oM=64,rM=128,aM=256,lM=512,uM=1024,pM=65536,_M=262144,dM=131072,hM=1052672,cM=4096,TM=32768,IM=16384,mM=2048,EM=61440,fM=49152,gM=40960,OM=32768,MM=24576,RM=16384,AM=8192,SM=4096,CM=2048,LM=1024,yM=512,DM=448,NM=256,bM=128,vM=64,wM=56,FM=32,PM=16,kM=8,VM=7,YM=4,xM=2,UM=1,BM=0,XM=2**32-1,GM={checkAccess:!0,updateOnRead:!0,syncImmediately:!0,unsafeBufferReplace:!1};Promise.withResolvers??(Promise.withResolvers=function(){let t,e;const n=new Promise(((n,i)=>{t=n,e=i}));return{promise:n,resolve:t,reject:e}}),Symbol.dispose??(Symbol.dispose=Symbol("Symbol.dispose")),Symbol.asyncDispose??(Symbol.asyncDispose=Symbol("Symbol.asyncDispose"));class HM{_convert(t){return this._isBigint?BigInt(t):Number(t)}get blocks(){return this._convert(Math.ceil(Number(this.size)/512))}get atime(){return new Date(Number(this.atimeMs))}set atime(t){this.atimeMs=this._convert(t.getTime())}get mtime(){return new Date(Number(this.mtimeMs))}set mtime(t){this.mtimeMs=this._convert(t.getTime())}get ctime(){return new Date(Number(this.ctimeMs))}set ctime(t){this.ctimeMs=this._convert(t.getTime())}get birthtime(){return new Date(Number(this.birthtimeMs))}set birthtime(t){this.birthtimeMs=this._convert(t.getTime())}constructor({atimeMs:t,mtimeMs:e,ctimeMs:n,birthtimeMs:i,uid:s,gid:o,size:r,mode:a,ino:l}={}){this.dev=this._convert(0),this.ino=this._convert(0),this.rdev=this._convert(0),this.nlink=this._convert(1),this.blksize=this._convert(4096),this.uid=this._convert(0),this.gid=this._convert(0);const u=Date.now();this.atimeMs=this._convert(t??u),this.mtimeMs=this._convert(e??u),this.ctimeMs=this._convert(n??u),this.birthtimeMs=this._convert(i??u),this.uid=this._convert(s??0),this.gid=this._convert(o??0),this.size=this._convert(r??0),this.ino=this._convert(l??0),this.mode=this._convert(a??420&OM),this.mode&EM||(this.mode=this.mode|this._convert(OM))}isFile(){return(this.mode&EM)===OM}isDirectory(){return(this.mode&EM)===RM}isSymbolicLink(){return(this.mode&EM)===gM}isSocket(){return(this.mode&EM)===fM}isBlockDevice(){return(this.mode&EM)===MM}isCharacterDevice(){return(this.mode&EM)===AM}isFIFO(){return(this.mode&EM)===SM}hasAccess(t,e){const n=e?.credentials||KO;if(this.isSymbolicLink()||0===n.euid||0===n.egid)return!0;let i=0;return n.uid===this.uid&&(this.mode&NM&&(i|=zO),this.mode&bM&&(i|=QO),this.mode&vM&&(i|=JO)),(n.gid===this.gid||n.groups.includes(Number(this.gid)))&&(this.mode&FM&&(i|=zO),this.mode&PM&&(i|=QO),this.mode&kM&&(i|=JO)),this.mode&YM&&(i|=zO),this.mode&xM&&(i|=QO),this.mode&UM&&(i|=JO),(i&t)===t}chmod(t){this.mode=this._convert(this.mode&EM|t)}chown(t,e){t=Number(t),e=Number(e),!isNaN(t)&&0<=t&&t<2**32&&(this.uid=this._convert(t)),!isNaN(e)&&0<=e&&e<2**32&&(this.gid=this._convert(e))}get atimeNs(){return 1000n*BigInt(this.atimeMs)}get mtimeNs(){return 1000n*BigInt(this.mtimeMs)}get ctimeNs(){return 1000n*BigInt(this.ctimeMs)}get birthtimeNs(){return 1000n*BigInt(this.birthtimeMs)}}function WM(t,e,n){!isNaN(e)&&0<=e&&e<2**32&&(t.uid=e),!isNaN(n)&&0<=n&&n<2**32&&(t.gid=n)}class jM extends HM{constructor(){super(...arguments),this._isBigint=!1}}class KM extends HM{constructor(){super(...arguments),this._isBigint=!0}}class qM{constructor(){this.type=525687744115,this.bsize=4096,this.blocks=0,this.bfree=0,this.bavail=0,this.files=XM,this.ffree=XM}}class $M{constructor(){this.type=0x7a656e6673n,this.bsize=4096n,this.blocks=0n,this.bfree=0n,this.bavail=0n,this.files=BigInt(XM),this.ffree=BigInt(XM)}}const zM=["r","r+","rs","rs+","w","wx","w+","wx+","a","ax","a+","ax+"];function QM(t){if("number"==typeof t)return function(t){switch(t){case nM:return"r";case nM|hM:return"rs";case sM:return"r+";case sM|hM:return"rs+";case lM|oM|iM:return"w";case lM|oM|iM|rM:return"wx";case lM|oM|sM:return"w+";case lM|oM|sM|rM:return"wx+";case uM|oM|iM:return"a";case uM|oM|iM|rM:return"ax";case uM|oM|sM:return"a+";case uM|oM|sM|rM:return"ax+";default:throw new Error("Invalid flag number: "+t)}}(t);if(!zM.includes(t))throw new Error("Invalid flag string: "+t);return t}function JM(t){let e=0;return e<<=1,e+=+ZM(t),e<<=1,e+=+tR(t),e<<=1,e}function ZM(t){return-1!==t.indexOf("r")||-1!==t.indexOf("+")}function tR(t){return-1!==t.indexOf("w")||-1!==t.indexOf("a")||-1!==t.indexOf("+")}function eR(t){return-1!==t.indexOf("w")}function nR(t){return-1!==t.indexOf("a")}function iR(t){return-1!==t.indexOf("x")}class sR{constructor(t,e){this.fs=t,this.path=e}async[Symbol.asyncDispose](){await this.close()}[Symbol.dispose](){this.closeSync()}datasync(){return this.sync()}datasyncSync(){return this.syncSync()}}class oR extends sR{constructor(t,e,n,i,s=new Uint8Array(new ArrayBuffer(0,t.metadata().noResizableBuffers?{}:{maxByteLength:XM}))){if(super(t,e),this.flag=n,this.stats=i,this._buffer=s,this._position=0,this.dirty=!1,this.closed=!1,this.stats.size!=s.byteLength){if(ZM(this.flag))throw new Error(`Size mismatch: buffer length ${s.byteLength}, stats size ${this.stats.size}`);this.dirty=!0}}get buffer(){return this._buffer}get position(){return nR(this.flag)?this.stats.size:this._position}set position(t){this._position=t}async sync(){if(this.closed)throw yO.With("EBADF",this.path,"File.sync");this.dirty&&(await this.fs.sync(this.path,this._buffer,this.stats),this.dirty=!1)}syncSync(){if(this.closed)throw yO.With("EBADF",this.path,"File.sync");this.dirty&&(this.fs.syncSync(this.path,this._buffer,this.stats),this.dirty=!1)}async close(){if(this.closed)throw yO.With("EBADF",this.path,"File.close");await this.sync(),this.dispose()}closeSync(){if(this.closed)throw yO.With("EBADF",this.path,"File.close");this.syncSync(),this.dispose()}dispose(t){if(this.closed)throw yO.With("EBADF",this.path,"File.dispose");if(this.dirty&&!t)throw yO.With("EBUSY",this.path,"File.dispose");delete this._buffer,delete this.stats,this.closed=!0}stat(){if(this.closed)throw yO.With("EBADF",this.path,"File.stat");return Promise.resolve(new jM(this.stats))}statSync(){if(this.closed)throw yO.With("EBADF",this.path,"File.stat");return new jM(this.stats)}_truncate(t){if(this.closed)throw yO.With("EBADF",this.path,"File.truncate");if(this.dirty=!0,!tR(this.flag))throw new yO(CO.EPERM,"File not opened with a writeable mode.");if(this.stats.mtimeMs=Date.now(),t>this._buffer.length){const e=new Uint8Array(t-this._buffer.length);this._write(e,0,e.length,this._buffer.length)}else this.stats.size=t,this._buffer=t?this._buffer.slice(0,t):new Uint8Array}async truncate(t){this._truncate(t),GM.syncImmediately&&await this.sync()}truncateSync(t){this._truncate(t),GM.syncImmediately&&this.syncSync()}_write(t,e=0,n=this.stats.size,i=this.position){if(this.closed)throw yO.With("EBADF",this.path,"File.write");if(!tR(this.flag))throw new yO(CO.EPERM,"File not opened with a writeable mode.");this.dirty=!0;const s=i+n,o=t.slice(e,e+n);if(s>this.stats.size&&(this.stats.size=s,s>this._buffer.byteLength))if(this._buffer.buffer.resizable&&this._buffer.buffer.maxByteLength<=s)this._buffer.buffer.resize(s);else if(GM.unsafeBufferReplace)this._buffer=o;else{const t=new Uint8Array(new ArrayBuffer(s,this.fs.metadata().noResizableBuffers?{}:{maxByteLength:XM}));t.set(this._buffer),this._buffer=t}return this._buffer.set(o,i),this.stats.mtimeMs=Date.now(),this.position=i+o.byteLength,o.byteLength}async write(t,e,n,i){const s=this._write(t,e,n,i);return GM.syncImmediately&&await this.sync(),s}writeSync(t,e=0,n=this.stats.size,i=this.position){const s=this._write(t,e,n,i);return GM.syncImmediately&&this.syncSync(),s}_read(t,e=0,n=this.stats.size,i){if(this.closed)throw yO.With("EBADF",this.path,"File.read");if(!ZM(this.flag))throw new yO(CO.EPERM,"File not opened with a readable mode.");GM.updateOnRead&&(this.dirty=!0),this.stats.atimeMs=Date.now(),i??(i=this.position);let s=i+n;s>this.stats.size&&(s=i+Math.max(this.stats.size-i,0)),this._position=s;const o=s-i;return 0==o||new Uint8Array(t.buffer,e,n).set(this._buffer.slice(i,s)),o}async read(t,e,n,i){const s=this._read(t,e,n,i);return GM.syncImmediately&&await this.sync(),{bytesRead:s,buffer:t}}readSync(t,e,n,i){const s=this._read(t,e,n,i);return GM.syncImmediately&&this.syncSync(),s}async chmod(t){if(this.closed)throw yO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>EM?~EM:EM)|t,(GM.syncImmediately||t>EM)&&await this.sync()}chmodSync(t){if(this.closed)throw yO.With("EBADF",this.path,"File.chmod");this.dirty=!0,this.stats.mode=this.stats.mode&(t>EM?~EM:EM)|t,(GM.syncImmediately||t>EM)&&this.syncSync()}async chown(t,e){if(this.closed)throw yO.With("EBADF",this.path,"File.chown");this.dirty=!0,WM(this.stats,t,e),GM.syncImmediately&&await this.sync()}chownSync(t,e){if(this.closed)throw yO.With("EBADF",this.path,"File.chown");this.dirty=!0,WM(this.stats,t,e),GM.syncImmediately&&this.syncSync()}async utimes(t,e){if(this.closed)throw yO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,GM.syncImmediately&&await this.sync()}utimesSync(t,e){if(this.closed)throw yO.With("EBADF",this.path,"File.utimes");this.dirty=!0,this.stats.atime=t,this.stats.mtime=e,GM.syncImmediately&&this.syncSync()}}class rR{metadata(){return{name:this.constructor.name.toLowerCase(),readonly:!1,totalSpace:0,freeSpace:0,noResizableBuffers:!1,noAsyncCache:this._disableSync??!1,type:525687744115}}constructor(...t){}async ready(){}async exists(t){try{return await this.stat(t),!0}catch(t){return"ENOENT"!=t.code}}existsSync(t){try{return this.statSync(t),!0}catch(t){return"ENOENT"!=t.code}}}var aR=__webpack_require__(228);Symbol.toStringTag,Symbol.iterator;const lR=Intl.NumberFormat("en",{notation:"compact"});lR.format.bind(lR);function uR(t){return t.at(0).toUpperCase()+t.slice(1)}const pR=["int8","uint8","int16","uint16","int32","uint32","int64","uint64","float32","float64"],_R=[...pR,...pR.map((t=>uR(t))),"char"],dR=/^(u?int|float)(8|16|32|64)$/i;function hR(t){return"char"==t?"uint8":t.toLowerCase()}function cR(t){return dR.test(t.toString())}function TR(t){return"char"==t||dR.test(t.toString().toLowerCase())}Symbol.struct_init||=Symbol("struct_init"),Symbol.struct_metadata||=Symbol("struct_metadata");Symbol.struct_init,Symbol.struct_metadata;function IR(t){const e=Symbol.metadata||Object.getOwnPropertySymbols(t).find((t=>"Symbol.metadata"==t.description));var n;if(n=t,Symbol?.metadata&&(Symbol.metadata in n||Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:Object.create(null)})),!e)throw new ReferenceError("Could not get a reference to Symbol.metadata");return e}function mR(t){return"function"==typeof t&&IR(t)in t&&function(t){return null!=t&&"object"==typeof t&&Symbol.struct_metadata in t}(t[IR(t)])}function ER(t){return null!=t&&"object"==typeof t&&mR(t.constructor)}function fR(t){if(!ER(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct instance")}function gR(t){if(!function(t){return ER(t)||mR(t)}(t))throw new TypeError(("function"==typeof t?t.name:"object"==typeof t&&t?t.constructor.name:t)+" is not a struct")}function OR(t){if("string"==typeof t)return function(t){if(!TR(t))throw new TypeError("Not a valid primitive type: "+t)}(t),+hR(t).match(dR)[2]/8;gR(t);const e=mR(t)?t:t.constructor;return e[IR(e)][Symbol.struct_metadata].size}function MR(t={}){return function(e,n){n.metadata??={},n.metadata[Symbol.struct_init]||=[];let i=0;const s=new Map;for(const e of n.metadata[Symbol.struct_init]){const{name:n,type:a,length:l}=e;if(!TR(a)&&!mR(a))throw new TypeError("Not a valid type: "+a);s.set(n,{offset:i,type:TR(a)?hR(a):a,length:l}),i+=OR(a)*(l||1),o=i,r=t.align||1,i=Math.ceil(o/r)*r}var o,r;return n.metadata[Symbol.struct_metadata]={options:t,members:s,size:i},e}}function RR(t,e){return function(n,i){let s=i.name;if("symbol"==typeof s&&(console.warn("Symbol used for struct member name will be coerced to string: "+s.toString()),s=s.toString()),!s)throw new ReferenceError("Invalid name for struct member");return i.metadata??={},i.metadata[Symbol.struct_init]||=[],i.metadata[Symbol.struct_init].push({name:s,type:t,length:e}),n}}function AR(t){fR(t);const{options:e,members:n}=t.constructor[IR(t.constructor)][Symbol.struct_metadata],i=new Uint8Array(OR(t)),s=new DataView(i.buffer);for(const[o,{type:r,length:a,offset:l}]of n)for(let n=0;n<(a||1);n++){const u=l+OR(r)*n;let p=a>0?t[o][n]:t[o];if("string"==typeof p&&(p=p.charCodeAt(0)),!cR(r)){i.set(p?AR(p):new Uint8Array(OR(r)),u);continue}const _="set"+uR(r);"setInt64"!=_?"setUint64"!=_?s[_](u,Number(p),!e.bigEndian):s.setBigUint64(u,BigInt(p),!e.bigEndian):s.setBigInt64(u,BigInt(p),!e.bigEndian)}return i}function SR(t,e){fR(t);const{options:n,members:i}=t.constructor[IR(t.constructor)][Symbol.struct_metadata],s=e instanceof Uint8Array?e:new Uint8Array("buffer"in e?e.buffer:e),o=new DataView(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength));for(const[e,{type:r,offset:a,length:l}]of i)for(let i=0;i<(l||1);i++){let u=l>0?t[e]:t;const p=l>0?i:e,_=a+OR(r)*i;if("string"==typeof t[e]){t[e]=t[e].slice(0,i)+String.fromCharCode(o.getUint8(_))+t[e].slice(i+1);continue}if(!cR(r)){if(null===u[p]||void 0===u[p])continue;SR(u[p],new Uint8Array(s.slice(_,_+OR(r))));continue}l>0&&(u||=[]);const d="get"+uR(r);"getInt64"!=d?u[p]="getUint64"!=d?o[d](_,!n.bigEndian):o.getBigUint64(_,!n.bigEndian):u[p]=o.getBigInt64(_,!n.bigEndian)}}Symbol.metadata??=Symbol.for("Symbol.metadata");const CR=Object.fromEntries(_R.map((t=>{return[t,(e=t,function(t,n){return"number"==typeof t?RR(e,t):RR(e)(t,n)})];var e})));var LR=function(t,e,n,i,s,o){function r(t){if(void 0!==t&&"function"!=typeof t)throw new TypeError("Function expected");return t}for(var a,l=i.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!e&&t?i.static?t:t.prototype:null,_=e||(p?Object.getOwnPropertyDescriptor(p,i.name):{}),d=!1,h=n.length-1;h>=0;h--){var c={};for(var T in i)c[T]="access"===T?{}:i[T];for(var T in i.access)c.access[T]=i.access[T];c.addInitializer=function(t){if(d)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(t||null))};var I=(0,n[h])("accessor"===l?{get:_.get,set:_.set}:_[u],c);if("accessor"===l){if(void 0===I)continue;if(null===I||"object"!=typeof I)throw new TypeError("Object expected");(a=r(I.get))&&(_.get=a),(a=r(I.set))&&(_.set=a),(a=r(I.init))&&s.unshift(a)}else(a=r(I))&&("field"===l?s.unshift(a):_[u]=a)}p&&Object.defineProperty(p,i.name,_),d=!0},yR=function(t,e,n){for(var i=arguments.length>2,s=0;s{var t,e,n,i,s,o,r,a,l,u,p;let _,d,h,c,T,I,m,E,f,g,O,M,R,A=[MR()],S=[],C=[],L=[],y=[],D=[],N=[],b=[],v=[],w=[],F=[],P=[],k=[],V=[],Y=[],x=[],U=[],B=[],X=[],G=[],H=[],W=[],j=[],K=[];var q=d=class{constructor(t){if(this.data=yR(this,C,void 0),this.size=(yR(this,L),yR(this,y,void 0)),this.mode=(yR(this,D),yR(this,N,void 0)),this.nlink=(yR(this,b),yR(this,v,void 0)),this.uid=(yR(this,w),yR(this,F,void 0)),this.gid=(yR(this,P),yR(this,k,void 0)),this.atimeMs=(yR(this,V),yR(this,Y,void 0)),this.birthtimeMs=(yR(this,x),yR(this,U,void 0)),this.mtimeMs=(yR(this,B),yR(this,X,void 0)),this.ctimeMs=(yR(this,G),yR(this,H,void 0)),this.ino=(yR(this,W),yR(this,j,void 0)),yR(this,K),t){const e=OR(q),n=e-OR("uint64");if(t.byteLength{const $="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;h=[(t=CR).uint64.bind(t)],c=[(e=CR).uint32.bind(e)],T=[(n=CR).uint16.bind(n)],I=[(i=CR).uint32.bind(i)],m=[(s=CR).uint32.bind(s)],E=[(o=CR).uint32.bind(o)],f=[(r=CR).float64.bind(r)],g=[(a=CR).float64.bind(a)],O=[(l=CR).float64.bind(l)],M=[(u=CR).float64.bind(u)],R=[(p=CR).uint64.bind(p)],LR(null,null,h,{kind:"field",name:"data",static:!1,private:!1,access:{has:t=>"data"in t,get:t=>t.data,set:(t,e)=>{t.data=e}},metadata:$},C,L),LR(null,null,c,{kind:"field",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:$},y,D),LR(null,null,T,{kind:"field",name:"mode",static:!1,private:!1,access:{has:t=>"mode"in t,get:t=>t.mode,set:(t,e)=>{t.mode=e}},metadata:$},N,b),LR(null,null,I,{kind:"field",name:"nlink",static:!1,private:!1,access:{has:t=>"nlink"in t,get:t=>t.nlink,set:(t,e)=>{t.nlink=e}},metadata:$},v,w),LR(null,null,m,{kind:"field",name:"uid",static:!1,private:!1,access:{has:t=>"uid"in t,get:t=>t.uid,set:(t,e)=>{t.uid=e}},metadata:$},F,P),LR(null,null,E,{kind:"field",name:"gid",static:!1,private:!1,access:{has:t=>"gid"in t,get:t=>t.gid,set:(t,e)=>{t.gid=e}},metadata:$},k,V),LR(null,null,f,{kind:"field",name:"atimeMs",static:!1,private:!1,access:{has:t=>"atimeMs"in t,get:t=>t.atimeMs,set:(t,e)=>{t.atimeMs=e}},metadata:$},Y,x),LR(null,null,g,{kind:"field",name:"birthtimeMs",static:!1,private:!1,access:{has:t=>"birthtimeMs"in t,get:t=>t.birthtimeMs,set:(t,e)=>{t.birthtimeMs=e}},metadata:$},U,B),LR(null,null,O,{kind:"field",name:"mtimeMs",static:!1,private:!1,access:{has:t=>"mtimeMs"in t,get:t=>t.mtimeMs,set:(t,e)=>{t.mtimeMs=e}},metadata:$},X,G),LR(null,null,M,{kind:"field",name:"ctimeMs",static:!1,private:!1,access:{has:t=>"ctimeMs"in t,get:t=>t.ctimeMs,set:(t,e)=>{t.ctimeMs=e}},metadata:$},H,W),LR(null,null,R,{kind:"field",name:"ino",static:!1,private:!1,access:{has:t=>"ino"in t,get:t=>t.ino,set:(t,e)=>{t.ino=e}},metadata:$},j,K),LR(null,_={value:d},A,{kind:"class",name:d.name,metadata:$},null,S),q=d=_.value,$&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:$}),yR(d,S)})(),q=d})();var bR=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},vR=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class wR extends rR{async ready(){this._initialized||(await this.checkRoot(),this._initialized=!0)}constructor(t){super(),this.store=t,this._initialized=!1}metadata(){return{...super.metadata(),name:this.store.name}}async empty(){await this.store.clear(),await this.checkRoot()}emptySync(){this.store.clearSync(),this.checkRootSync()}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=bR(n,this.store.transaction(),!0),s=PO(t),o=PO(e),r=await this.findInode(i,s.dir,"rename"),a=UO(await this.get(i,r.data,s.dir,"rename"));if(!a[s.base])throw yO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0===(o.dir+"/").indexOf(t+"/"))throw new yO(CO.EBUSY,s.dir);const u=o.dir==s.dir,p=u?r:await this.findInode(i,o.dir,"rename"),_=u?a:UO(await this.get(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new NR(await this.get(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw yO.With("EPERM",e,"rename");await i.remove(t.data),await i.remove(_[o.base])}_[o.base]=l,await i.set(r.data,BO(a)),await i.set(p.data,BO(_)),await i.commit()}catch(t){n.error=t,n.hasError=!0}finally{const t=vR(n);t&&await t}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=bR(n,this.store.transaction(),!1),s=PO(t),o=PO(e),r=this.findInodeSync(i,s.dir,"rename"),a=UO(this.getSync(i,r.data,s.dir,"rename"));if(!a[s.base])throw yO.With("ENOENT",t,"rename");const l=a[s.base];if(delete a[s.base],0==(o.dir+"/").indexOf(t+"/"))throw new yO(CO.EBUSY,s.dir);const u=o.dir===s.dir,p=u?r:this.findInodeSync(i,o.dir,"rename"),_=u?a:UO(this.getSync(i,p.data,o.dir,"rename"));if(_[o.base]){const t=new NR(this.getSync(i,_[o.base],e,"rename"));if(!t.toStats().isFile())throw yO.With("EPERM",e,"rename");i.removeSync(t.data),i.removeSync(_[o.base])}_[o.base]=l,i.setSync(r.data,BO(a)),i.setSync(p.data,BO(_)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{vR(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{const n=bR(e,this.store.transaction(),!0);return(await this.findInode(n,t,"stat")).toStats()}catch(t){e.error=t,e.hasError=!0}finally{const t=vR(e);t&&await t}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=bR(e,this.store.transaction(),!1);return this.findInodeSync(n,t,"stat").toStats()}catch(t){e.error=t,e.hasError=!0}finally{vR(e)}}async createFile(t,e,n){const i=await this.commitNew(t,OM,n,new Uint8Array,"createFile");return new oR(this,t,e,i.toStats(),new Uint8Array)}createFileSync(t,e,n){const i=this.commitNewSync(t,OM,n,new Uint8Array,"createFile");return new oR(this,t,e,i.toStats(),new Uint8Array)}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=bR(n,this.store.transaction(),!0),s=await this.findInode(i,t,"openFile"),o=await this.get(i,s.data,t,"openFile");return new oR(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{const t=vR(n);t&&await t}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=bR(n,this.store.transaction(),!1),s=this.findInodeSync(i,t,"openFile"),o=this.getSync(i,s.data,t,"openFile");return new oR(this,t,e,s.toStats(),o)}catch(t){n.error=t,n.hasError=!0}finally{vR(n)}}async unlink(t){return this.remove(t,!1,"unlink")}unlinkSync(t){this.removeSync(t,!1,"unlink")}async rmdir(t){if((await this.readdir(t)).length)throw yO.With("ENOTEMPTY",t,"rmdir");await this.remove(t,!0,"rmdir")}rmdirSync(t){if(this.readdirSync(t).length)throw yO.With("ENOTEMPTY",t,"rmdir");this.removeSync(t,!0,"rmdir")}async mkdir(t,e){await this.commitNew(t,RM,e,VO("{}"),"mkdir")}mkdirSync(t,e){this.commitNewSync(t,RM,e,VO("{}"),"mkdir")}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{const n=bR(e,this.store.transaction(),!0),i=await this.findInode(n,t,"readdir");return Object.keys(UO(await this.get(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{const t=vR(e);t&&await t}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=bR(e,this.store.transaction(),!1),i=this.findInodeSync(n,t,"readdir");return Object.keys(UO(this.getSync(n,i.data,t,"readdir")))}catch(t){e.error=t,e.hasError=!0}finally{vR(e)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=bR(i,this.store.transaction(),!0),o=await this._findInode(s,t,"sync"),r=new NR(await this.get(s,o,t,"sync")),a=r.update(n);await s.set(r.data,e),a&&await s.set(o,AR(r)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=vR(i);t&&await t}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=bR(i,this.store.transaction(),!1),o=this._findInodeSync(s,t,"sync"),r=new NR(this.getSync(s,o,t,"sync")),a=r.update(n);s.setSync(r.data,e),a&&s.setSync(o,AR(r)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{vR(i)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=bR(n,this.store.transaction(),!0),s=wO(e),o=await this.findInode(i,s,"link"),r=UO(await this.get(i,o.data,s,"link")),a=await this._findInode(i,t,"link"),l=new NR(await this.get(i,a,t,"link"));l.nlink++,r[FO(e)]=a,i.setSync(a,AR(l)),i.setSync(o.data,BO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{const t=vR(n);t&&await t}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=bR(n,this.store.transaction(),!1),s=wO(e),o=this.findInodeSync(i,s,"link"),r=UO(this.getSync(i,o.data,s,"link")),a=this._findInodeSync(i,t,"link"),l=new NR(this.getSync(i,a,t,"link"));l.nlink++,r[FO(e)]=a,i.setSync(a,AR(l)),i.setSync(o.data,BO(r)),i.commitSync()}catch(t){n.error=t,n.hasError=!0}finally{vR(n)}}async checkRoot(){const t={stack:[],error:void 0,hasError:!1};try{const e=bR(t,this.store.transaction(),!0);if(await e.get(0n))return;const n=new NR;n.ino=0n,n.mode=511|RM,await e.set(n.data,VO("{}")),await e.set(0n,AR(n)),await e.commit()}catch(e){t.error=e,t.hasError=!0}finally{const e=vR(t);e&&await e}}checkRootSync(){const t={stack:[],error:void 0,hasError:!1};try{const e=bR(t,this.store.transaction(),!1);if(e.getSync(0n))return;const n=new NR;n.ino=0n,n.mode=511|RM,e.setSync(n.data,VO("{}")),e.setSync(0n,AR(n)),e.commitSync()}catch(e){t.error=e,t.hasError=!0}finally{vR(t)}}async _findInode(t,e,n,i=new Set){if(i.has(e))throw new yO(CO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=PO(e),r="/"==s?new NR(await this.get(t,0n,s,n)):await this.findInode(t,s,n,i),a=UO(await this.get(t,r.data,s,n));if(!(o in a))throw yO.With("ENOENT",bO(s,o),n);return a[o]}_findInodeSync(t,e,n,i=new Set){if(i.has(e))throw new yO(CO.EIO,"Infinite loop detected while finding inode",e);if(i.add(e),"/"==e)return 0n;const{dir:s,base:o}=PO(e),r="/"==s?new NR(this.getSync(t,0n,s,n)):this.findInodeSync(t,s,n,i),a=UO(this.getSync(t,r.data,s,n));if(!(o in a))throw yO.With("ENOENT",bO(s,o),n);return a[o]}async findInode(t,e,n,i=new Set){const s=await this._findInode(t,e,n,i);return new NR(await this.get(t,s,e,n))}findInodeSync(t,e,n,i=new Set){const s=this._findInodeSync(t,e,n,i);return new NR(this.getSync(t,s,e,n))}async get(t,e,n,i){const s=await t.get(e);if(!s)throw yO.With("ENOENT",n,i);return s}getSync(t,e,n,i){const s=t.getSync(e);if(!s)throw yO.With("ENOENT",n,i);return s}async allocNew(t,e,n){for(let e=0;e<5;e++){const e=jO();if(!await t.get(e))return e}throw new yO(CO.ENOSPC,"No IDs available",e,n)}allocNewSync(t,e,n){for(let e=0;e<5;e++){const e=jO();if(!t.getSync(e))return e}throw new yO(CO.ENOSPC,"No IDs available",e,n)}async commitNew(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw yO.With("EEXIST",t,s);const r=bR(o,this.store.transaction(),!0),{dir:a,base:l}=PO(t),u=await this.findInode(r,a,s),p=UO(await this.get(r,u.data,a,s));if(p[l])throw yO.With("EEXIST",t,s);const _=new NR;return _.ino=await this.allocNew(r,t,s),_.data=await this.allocNew(r,t,s),_.mode=n|e,_.uid=u.mode&CM?u.uid:KO.uid,_.gid=u.mode&LM?u.gid:KO.gid,_.size=i.length,await r.set(_.ino,AR(_)),await r.set(_.data,i),p[l]=_.ino,await r.set(u.data,BO(p)),await r.commit(),_}catch(t){o.error=t,o.hasError=!0}finally{const t=vR(o);t&&await t}}commitNewSync(t,e,n,i,s){const o={stack:[],error:void 0,hasError:!1};try{if("/"==t)throw yO.With("EEXIST",t,s);const r=bR(o,this.store.transaction(),!1),{dir:a,base:l}=PO(t),u=this.findInodeSync(r,a,s),p=UO(this.getSync(r,u.data,a,s));if(p[l])throw yO.With("EEXIST",t,s);const _=new NR;return _.ino=this.allocNewSync(r,t,s),_.data=this.allocNewSync(r,t,s),_.size=i.length,_.mode=n|e,_.uid=u.mode&CM?u.uid:KO.uid,_.gid=u.mode&LM?u.gid:KO.gid,r.setSync(_.ino,AR(_)),r.setSync(_.data,i),p[l]=_.ino,r.setSync(u.data,BO(p)),r.commitSync(),_}catch(t){o.error=t,o.hasError=!0}finally{vR(o)}}async remove(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=bR(i,this.store.transaction(),!0),{dir:o,base:r}=PO(t),a=await this.findInode(s,o,n),l=UO(await this.get(s,a.data,o,n));if(!l[r])throw yO.With("ENOENT",t,"remove");const u=l[r],p=new NR(await this.get(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw yO.With("EISDIR",t,"remove");await s.set(a.data,BO(l)),--p.nlink<1&&(await s.remove(p.data),await s.remove(u)),await s.commit()}catch(t){i.error=t,i.hasError=!0}finally{const t=vR(i);t&&await t}}removeSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=bR(i,this.store.transaction(),!1),{dir:o,base:r}=PO(t),a=this.findInodeSync(s,o,n),l=UO(this.getSync(s,a.data,o,n)),u=l[r];if(!u)throw yO.With("ENOENT",t,"remove");const p=new NR(this.getSync(s,u,t,n));if(delete l[r],!e&&p.toStats().isDirectory())throw yO.With("EISDIR",t,"remove");s.setSync(a.data,BO(l)),--p.nlink<1&&(s.removeSync(p.data),s.removeSync(u)),s.commitSync()}catch(t){i.error=t,i.hasError=!0}finally{vR(i)}}}class FR{constructor(t){this.store=t,this.done=!1}async[Symbol.asyncDispose](){this.done||await this.abort()}[Symbol.dispose](){this.done||this.abortSync()}}class PR extends FR{async keys(){return this.keysSync()}async get(t){return this.getSync(t)}async set(t,e){return this.setSync(t,e)}async remove(t){return this.removeSync(t)}async commit(){return this.commitSync()}async abort(){return this.abortSync()}}class kR extends PR{constructor(){super(...arguments),this.originalData=new Map,this.modifiedKeys=new Set}keysSync(){return this.store.keys()}getSync(t){const e=this.store.get(t);return this.stashOldValue(t,e),e}setSync(t,e){return this.markModified(t),this.store.set(t,e)}removeSync(t){this.markModified(t),this.store.delete(t)}commitSync(){this.done=!0}abortSync(){if(this.done){for(const t of this.modifiedKeys){const e=this.originalData.get(t);e?this.store.set(t,e):this.store.delete(t)}this.done=!0}}stashOldValue(t,e){this.originalData.has(t)||this.originalData.set(t,e)}markModified(t){this.modifiedKeys.add(t),this.originalData.has(t)||this.originalData.set(t,this.store.get(t))}}class VR extends Map{constructor(t="tmp"){super(),this.name=t}async sync(){}clearSync(){this.clear()}transaction(){return new kR(this)}}const YR={name:"InMemory",isAvailable:()=>!0,options:{name:{type:"string",required:!1}},create({name:t}){const e=new wR(new VR(t));return e.checkRootSync(),e}};"function"==typeof SuppressedError&&SuppressedError;class xR{constructor(){this.isEnabled=!1,this.sync=new Map,this.async=new Map}has(t){return this.isEnabled&&this.sync.has(t)}get(t){if(this.isEnabled)return this.sync.get(t)}set(t,e){this.isEnabled&&(this.sync.set(t,e),this.async.set(t,Promise.resolve(e)))}hasAsync(t){return this.isEnabled&&this.async.has(t)}getAsync(t){if(this.isEnabled)return this.async.get(t)}setAsync(t,e){this.isEnabled&&(this.async.set(t,e),e.then((e=>this.sync.set(t,e))))}clear(){this.isEnabled&&(this.sync.clear(),this.async.clear())}}const UR=new xR,BR=new xR;var XR=__webpack_require__(8287);function GR(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[t,"function"==typeof n?n.bind(e):n])))}const HR=new Map;let WR=100;function jR(t){const e=WR++;return HR.set(e,t),e}function KR(t){if(!HR.has(t))throw new yO(CO.EBADF);return HR.get(t)}const qR=new Map;function $R(t,e){if("/"!==t[0]&&(t="/"+t),t=bO(t),qR.has(t))throw new yO(CO.EINVAL,"Mount point "+t+" is already in use.");qR.set(t,e),BR.clear()}function zR(t){if("/"!==t[0]&&(t="/"+t),t=bO(t),!qR.has(t))throw new yO(CO.EINVAL,"Mount point "+t+" is already unmounted.");qR.delete(t),BR.clear()}function QR(t,e){const n=e?.root||"/";t=HO(vO(n,t));const i=[...qR].sort(((t,e)=>t[0].length>e[0].length?-1:1));for(const[e,s]of i)if(e.length<=t.length&&t.startsWith(e))return""===(t=t.slice(e.length>1?e.length:0))&&(t=n),{fs:s,path:t,mountPoint:e,root:n};throw new yO(CO.EIO,"No file system")}async function JR(){await Promise.all([...qR.values()].map((t=>t.ready())))}function ZR(t,e){for(const[n,i]of Object.entries(e))t=t?.replaceAll(n,i);return t}function tA(t,e){"string"==typeof t.stack&&(t.stack=ZR(t.stack,e));try{t.message=ZR(t.message,e)}catch{}return t.path&&(t.path=ZR(t.path,e)),t}function eA(t){"/"in t&&zR("/");for(const[e,n]of Object.entries(t))$R(e,n)}function nA(t,e){const n=t.metadata(),i=n.blockSize||4096;return{type:(e?BigInt:Number)(n.type),bsize:(e?BigInt:Number)(i),ffree:(e?BigInt:Number)(n.freeNodes||XM),files:(e?BigInt:Number)(n.totalNodes||XM),bavail:(e?BigInt:Number)(n.freeSpace/i),bfree:(e?BigInt:Number)(n.freeSpace/i),blocks:(e?BigInt:Number)(n.totalSpace/i)}}function iA(t,e){const n=this?.credentials;if(n?.uid&&n?.gid&&n?.euid&&n?.egid)throw new yO(CO.EPERM,"Can not chroot() as non-root user");return e&&this?(this.root+=t,this):function(t,e=structuredClone(KO)){const n={root:t,credentials:qO(e)},i=GR(st,n),s=GR(it,n);return{...n,...i,promises:s}}(vO(this?.root||"/",t),n)}$R("/",YR.create({name:"root"}));class sA extends aR{off(t,e,n,i){return super.off(t,e,n,i)}removeListener(t,e,n,i){return super.removeListener(t,e,n,i)}constructor(t){super(),this.path=t}setMaxListeners(){throw yO.With("ENOSYS",this.path,"Watcher.setMaxListeners")}getMaxListeners(){throw yO.With("ENOSYS",this.path,"Watcher.getMaxListeners")}prependListener(){throw yO.With("ENOSYS",this.path,"Watcher.prependListener")}prependOnceListener(){throw yO.With("ENOSYS",this.path,"Watcher.prependOnceListener")}rawListeners(){throw yO.With("ENOSYS",this.path,"Watcher.rawListeners")}ref(){return this}unref(){return this}}class oA extends sA{constructor(t,e){super(t),this.options=e,function(t,e){const n=HO(t);aA.has(n)||aA.set(n,new Set);aA.get(n).add(e)}(t.toString(),this)}close(){super.emit("close"),function(t,e){const n=HO(t);aA.has(n)&&(aA.get(n).delete(e),0===aA.get(n).size&&aA.delete(n))}(this.path.toString(),this)}[Symbol.dispose](){this.close()}}class rA extends sA{constructor(t,e){super(t),this.options=e,this.start()}onInterval(){try{const n=hA(this.path);t=this.previous,e=n,(t.size!=e.size||+t.atime!=+e.atime||+t.mtime!=+e.mtime||+t.ctime!=+e.ctime||t.mode!=e.mode)&&(this.emit("change",n,this.previous),this.previous=n)}catch(t){this.emit("error",t)}var t,e}start(){const t=this.options.interval||5e3;try{this.previous=hA(this.path)}catch(t){return void this.emit("error",t)}this.intervalId=setInterval(this.onInterval.bind(this),t),this.options.persistent||"object"!=typeof this.intervalId||this.intervalId.unref()}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0),this.removeAllListeners()}}const aA=new Map;function lA(t,e){if(e=HO(e),aA.has(e))for(const n of aA.get(e))n.emit("change",t,FO(e));let n,i=e;for(;i!==n;)if(n=i,i=wO(i),aA.has(i))for(const n of aA.get(i))n.emit("change",t,e.slice(i.length+("/"==i?0:1)))}var uA=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},pA=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function _A(t,e){t=HO(t),e=HO(e);const n=QR(t,this),i=QR(e,this);if(GM.checkAccess&&!hA.call(this,wO(t)).hasAccess(QO,this))throw yO.With("EACCES",t,"rename");try{if(n===i)return n.fs.renameSync(n.path,i.path),lA("rename",t.toString()),void lA("change",e.toString());MA.call(this,e,OA(t)),IA.call(this,t),lA("rename",t.toString())}catch(s){throw tA(s,{[n.path]:t,[i.path]:e})}}function dA(t){t=HO(t);try{const{fs:e,path:n}=QR(jA.call(this,t),this);return e.existsSync(n)}catch(t){if(t.errno==CO.ENOENT)return!1;throw t}}function hA(t,e){t=HO(t);const{fs:n,path:i}=QR(jA.call(this,t),this);try{const t=n.statSync(i);if(GM.checkAccess&&!t.hasAccess(zO,this))throw yO.With("EACCES",i,"stat");return e?.bigint?new KM(t):t}catch(e){throw tA(e,{[i]:t})}}function cA(t,e){t=HO(t);const{fs:n,path:i}=QR(t,this);try{const t=n.statSync(i);return e?.bigint?new KM(t):t}catch(e){throw tA(e,{[i]:t})}}function TA(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=uA(n,mA.call(this,t,"r+"),!1);if(e||(e=0),e<0)throw new yO(CO.EINVAL);i.truncateSync(e)}catch(t){n.error=t,n.hasError=!0}finally{pA(n)}}function IA(t){t=HO(t);const{fs:e,path:n}=QR(t,this);try{if(GM.checkAccess&&!(UR.get(t)||e.statSync(n)).hasAccess(QO,this))throw yO.With("EACCES",n,"unlink");e.unlinkSync(n),lA("rename",t.toString())}catch(e){throw tA(e,{[n]:t})}}function mA(t,e,n,i=!0){t=HO(t);const s=XO(n,420),o=QM(e);t=i?jA.call(this,t):t;const{fs:r,path:a}=QR(t,this);let l;try{l=r.statSync(a)}catch{}if(!l){if(!tR(o)&&!nR(o)||"r+"==o)throw yO.With("ENOENT",t,"_open");const e=r.statSync(wO(a));if(GM.checkAccess&&!e.hasAccess(QO,this))throw yO.With("EACCES",wO(t),"_open");if(!e.isDirectory())throw yO.With("ENOTDIR",wO(t),"_open");return r.createFileSync(a,o,s)}if(GM.checkAccess&&(!l.hasAccess(s,this)||!l.hasAccess(JM(o),this)))throw yO.With("EACCES",t,"_open");if(iR(o))throw yO.With("EEXIST",t,"_open");const u=r.openFileSync(a,o);return eR(o)&&u.truncateSync(0),u}function EA(t,e,n=$O){return jR(mA.call(this,t,e,n,!0))}function fA(t,e,n){return jR(mA.call(this,t,e,n,!1))}function gA(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=uA(i,mA.call(this,t,e,420,n),!1),o=s.statSync(),r=new Uint8Array(o.size);return s.readSync(r,0,o.size,0),r}catch(t){i.error=t,i.hasError=!0}finally{pA(i)}}function OA(t,e={}){const n=WO(e,null,"r",420);if(!ZM(QM(n.flag)))throw new yO(CO.EINVAL,"Flag passed to readFile must allow for reading.");const i=XR.Buffer.from(gA.call(this,"number"==typeof t?KR(t).path:t.toString(),n.flag,!0));return n.encoding?i.toString(n.encoding):i}function MA(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=WO(n,"utf8","w+",420),o=QM(s.flag);if(!tR(o))throw new yO(CO.EINVAL,"Flag passed to writeFile must allow for writing.");if("string"!=typeof e&&!s.encoding)throw new yO(CO.EINVAL,"Encoding not specified");const r="string"==typeof e?XR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!r)throw new yO(CO.EINVAL,"Data not specified");uA(i,mA.call(this,"number"==typeof t?KR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength,0),lA("change",t.toString())}catch(t){i.error=t,i.hasError=!0}finally{pA(i)}}function RA(t,e,n={}){const i={stack:[],error:void 0,hasError:!1};try{const s=WO(n,"utf8","a+",420),o=QM(s.flag);if(!nR(o))throw new yO(CO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new yO(CO.EINVAL,"Encoding not specified");const r="string"==typeof e?XR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);uA(i,mA.call(this,"number"==typeof t?KR(t).path:t.toString(),o,s.mode,!0),!1).writeSync(r,0,r.byteLength)}catch(t){i.error=t,i.hasError=!0}finally{pA(i)}}function AA(t,e){const n=KR(t).statSync();return e?.bigint?new KM(n):n}function SA(t){KR(t).closeSync(),HR.delete(t)}function CA(t,e=0){if(e||(e=0),e<0)throw new yO(CO.EINVAL);KR(t).truncateSync(e)}function LA(t){KR(t).syncSync()}function yA(t){KR(t).datasyncSync()}function DA(t,e,n,i,s){let o,r,a,l;if("string"==typeof e){l="number"==typeof n?n:null;const t="string"==typeof i?i:"utf8";r=0,o=XR.Buffer.from(e,t),a=o.byteLength}else o=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=n,a=i,l="number"==typeof s?s:null;const u=KR(t);l??(l=u.position);const p=u.writeSync(o,r,a,l);return lA("change",u.path),p}function NA(t,e,n,i,s){const o=KR(t),r="object"==typeof n?n.offset:n;return"object"==typeof n&&(i=n.length,s=n.position),s=Number(s),isNaN(s)&&(s=o.position),o.readSync(e,r,i,s)}function bA(t,e,n){KR(t).chownSync(e,n)}function vA(t,e){const n=XO(e,-1);if(n<0)throw new yO(CO.EINVAL,"Invalid mode.");KR(t).chmodSync(n)}function wA(t,e,n){KR(t).utimesSync(GO(e),GO(n))}function FA(t){t=HO(t);const{fs:e,path:n}=QR(jA.call(this,t),this);try{const i=UR.get(t)||e.statSync(n);if(!i.isDirectory())throw yO.With("ENOTDIR",n,"rmdir");if(GM.checkAccess&&!i.hasAccess(QO,this))throw yO.With("EACCES",n,"rmdir");e.rmdirSync(n),lA("rename",t.toString())}catch(e){throw tA(e,{[n]:t})}}function PA(t,e){e="object"==typeof e?e:{mode:e};const n=XO(e?.mode,511);t=jA.call(this,t);const{fs:i,path:s,root:o}=QR(t,this),r={[s]:t};try{if(!e?.recursive){if(GM.checkAccess&&!i.statSync(wO(s)).hasAccess(QO,this))throw yO.With("EACCES",wO(s),"mkdir");return i.mkdirSync(s,n)}const a=[];for(let e=s,n=t;!i.existsSync(e);e=wO(e),n=wO(n))a.unshift(e),r[e]=n;for(const t of a){if(GM.checkAccess&&!i.statSync(wO(t)).hasAccess(QO,this))throw yO.With("EACCES",wO(t),"mkdir");i.mkdirSync(t,n),lA("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw tA(t,r)}}function kA(t,e){e="object"==typeof e?e:{encoding:e},t=HO(t);const{fs:n,path:i}=QR(jA.call(this,t),this);let s;try{const e=UR.get(t)||n.statSync(i);if(UR.set(t,e),GM.checkAccess&&!e.hasAccess(zO,this))throw yO.With("EACCES",i,"readdir");if(!e.isDirectory())throw yO.With("ENOTDIR",i,"readdir");s=n.readdirSync(i)}catch(e){throw tA(e,{[i]:t})}const o=[];for(const r of s){const s=UR.get(vO(t,r))||n.statSync(vO(i,r));if(UR.set(vO(t,r),s),e?.withFileTypes?o.push(new nS(r,s)):"buffer"==e?.encoding?o.push(XR.Buffer.from(r)):o.push(r),s.isDirectory()&&e?.recursive)for(const n of kA.call(this,vO(t,r),{...e,_isIndirect:!0}))n instanceof nS?(n.path=vO(r,n.path),o.push(n)):XR.Buffer.isBuffer(n)?o.push(XR.Buffer.from(vO(r,xO(n)))):o.push(vO(r,n))}return e?._isIndirect||UR.clear(),o}function VA(t,e){if(t=HO(t),GM.checkAccess&&!hA(wO(t)).hasAccess(zO,this))throw yO.With("EACCES",wO(t),"link");if(e=HO(e),GM.checkAccess&&!hA(wO(e)).hasAccess(QO,this))throw yO.With("EACCES",wO(e),"link");const{fs:n,path:i}=QR(t,this),s=QR(e,this);if(n!=s.fs)throw yO.With("EXDEV",e,"link");try{if(GM.checkAccess&&!n.statSync(i).hasAccess(zO,this))throw yO.With("EACCES",i,"link");return n.linkSync(i,e)}catch(n){throw tA(n,{[i]:t,[s.path]:e})}}function YA(t,e,n="file"){if(!["file","dir","junction"].includes(n))throw new yO(CO.EINVAL,"Invalid type: "+n);if(dA.call(this,e))throw yO.With("EEXIST",e.toString(),"symlink");MA.call(this,e,t.toString());mA.call(this,e,"r+",420,!1).chmodSync(gM)}function xA(t,e){const n=XR.Buffer.from(gA.call(this,t.toString(),"r",!1)),i="object"==typeof e?e?.encoding:e;return"buffer"==i?n:n.toString(i)}function UA(t,e,n){const i=EA.call(this,t,"r+");bA(i,e,n),SA(i)}function BA(t,e,n){const i=fA.call(this,t,"r+");bA(i,e,n),SA(i)}function XA(t,e){const n=EA.call(this,t,"r+");vA(n,e),SA(n)}function GA(t,e){const n=fA.call(this,t,"r+");vA(n,e),SA(n)}function HA(t,e,n){const i=EA.call(this,t,"r+");wA(i,e,n),SA(i)}function WA(t,e,n){const i=fA.call(this,t,"r+");wA(i,e,n),SA(i)}function jA(t,e){t=HO(t);const n=(this?.root||"")+t;if(BR.has(n))return BR.get(n);const{base:i,dir:s}=PO(t),o="/"==s?"/":BR.get((this?.root||"")+s)||jA.call(this,s),r=vO(o,i),{fs:a,path:l}=QR(r,this);try{const i=UR.get(r)||a.statSync(l);if(UR.set(r,i),!i.isSymbolicLink())return BR.set(t,r),r;const s=bO(o,xA.call(this,r,e).toString()),u=BR.get((this?.root||"")+s)||jA.call(this,s);return BR.set(n,u),u}catch(e){if("ENOENT"==e.code)return t;throw tA(e,{[l]:r})}}function KA(t,e=384){if(GM.checkAccess&&!hA.call(this,t).hasAccess(e,this))throw new yO(CO.EACCES)}function qA(t,e){let n;t=HO(t);try{n=UR.get(t)||cA.bind(this)(t)}catch(t){if("ENOENT"!=t.code||!e?.force)throw t}if(n){switch(UR.set(t,n),n.mode&EM){case RM:if(e?.recursive)for(const n of kA.call(this,t,{_isIndirect:!0}))qA.call(this,vO(t,n),{...e,_isIndirect:!0});FA.call(this,t);break;case OM:case gM:case MM:case AM:IA.call(this,t);break;default:throw UR.clear(),new yO(CO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||UR.clear()}}function $A(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return PA.call(this,i),"buffer"==n?XR.Buffer.from(i):i}function zA(t,e,n){if(t=HO(t),e=HO(e),n&&n&ZO&&dA(e))throw new yO(CO.EEXIST,"Destination file already exists.",e,"copyFile");MA.call(this,e,OA(t)),lA("rename",e.toString())}function QA(t,e,n){const i=KR(t);let s=0;for(const t of e)s+=i.readSync(t,0,t.byteLength,n+s);return s}function JA(t,e,n){const i=KR(t);let s=0;for(const t of e)s+=i.writeSync(new Uint8Array(t.buffer),0,t.byteLength,n+s);return s}function ZA(t,e){return t=HO(t),new iS(t,this)}function tS(t,e,n){t=HO(t),e=HO(e);const i=cA.call(this,t);if(n?.errorOnExist&&dA.call(this,e))throw new yO(CO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&EM){case RM:if(!n?.recursive)throw new yO(CO.EISDIR,t+" is a directory (not copied)",t,"cp");PA.call(this,e,{recursive:!0});for(const i of kA.call(this,t,{withFileTypes:!0}))n.filter&&!n.filter(vO(t,i.name),vO(e,i.name))||tS.call(this,vO(t,i.name),vO(e,i.name),n);break;case OM:case gM:zA.call(this,t,e);break;default:throw new yO(CO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&HA.call(this,e,i.atime,i.mtime)}function eS(t,e){t=HO(t);const{fs:n}=QR(t,this);return nA(n,e?.bigint)}class nS{get name(){return FO(this.path)}constructor(t,e){this.path=t,this.stats=e}get parentPath(){return this.path}isFile(){return this.stats.isFile()}isDirectory(){return this.stats.isDirectory()}isBlockDevice(){return this.stats.isBlockDevice()}isCharacterDevice(){return this.stats.isCharacterDevice()}isSymbolicLink(){return this.stats.isSymbolicLink()}isFIFO(){return this.stats.isFIFO()}isSocket(){return this.stats.isSocket()}}class iS{checkClosed(){if(this.closed)throw new yO(CO.EBADF,"Can not use closed Dir")}constructor(t,e){this.path=t,this.context=e,this.closed=!1}close(t){if(this.closed=!0,!t)return Promise.resolve();t()}closeSync(){this.closed=!0}async _read(){return this.checkClosed(),this._entries??(this._entries=await RS.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}read(t){if(!t)return this._read();this._read().then((e=>t(void 0,e)))}readSync(){return this.checkClosed(),this._entries??(this._entries=kA.call(this.context,this.path,{withFileTypes:!0})),this._entries.length?this._entries.shift()??null:null}async next(){const t=await this._read();return t?{done:!1,value:t}:(await this.close(),{done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}var sS=__webpack_require__(6248);class oS extends sS.Readable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new yO(CO.EIO,e.toString()))}}}class rS extends sS.Writable{close(t=()=>null){try{super.destroy(),super.emit("close"),t()}catch(e){t(new yO(CO.EIO,e.toString()))}}}var aS=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},lS=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class uS{constructor(t,e){this.context=e;const n="number"!=typeof t;this.fd=n?jR(t):t,this.file=n?t:KR(t)}async chown(t,e){await this.file.chown(t,e),lA("change",this.file.path)}async chmod(t){const e=XO(t,-1);if(e<0)throw new yO(CO.EINVAL,"Invalid mode.");await this.file.chmod(e),lA("change",this.file.path)}datasync(){return this.file.datasync()}sync(){return this.file.sync()}async truncate(t){if(t||(t=0),t<0)throw new yO(CO.EINVAL);await this.file.truncate(t),lA("change",this.file.path)}async utimes(t,e){await this.file.utimes(GO(t),GO(e)),lA("change",this.file.path)}async appendFile(t,e={}){const n=WO(e,"utf8","a",420);if(!nR(QM(n.flag)))throw new yO(CO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof t&&!n.encoding)throw new yO(CO.EINVAL,"Encoding not specified");const i="string"==typeof t?XR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length),lA("change",this.file.path)}read(t,e,n,i){return isNaN(+i)&&(i=this.file.position),this.file.read(t,e,n,i)}async readFile(t){const e=WO(t,null,"r",292);if(!ZM(QM(e.flag)))throw new yO(CO.EINVAL,"Flag passed must allow for reading.");const{size:n}=await this.stat(),{buffer:i}=await this.file.read(new Uint8Array(n),0,n,0),s=XR.Buffer.from(i);return e.encoding?s.toString(e.encoding):s}readableWebStream(t={}){const e=globalThis;if(!("ReadableStream"in e))throw new yO(CO.ENOSYS,"ReadableStream is missing on globalThis");return new e.ReadableStream({start:async t=>{try{const e=65536,n=1e7;let i=0,s=0,o=NaN;for(;o>0;){const r=await this.read(new Uint8Array(e),0,e,s);if(!r.bytesRead)return void t.close();if(t.enqueue(r.buffer.slice(0,r.bytesRead)),s+=r.bytesRead,++i>=n)throw new yO(CO.EFBIG,"Too many iterations on readable stream",this.file.path,"FileHandle.readableWebStream");o=r.bytesRead}}catch(e){t.error(e)}},type:t.type})}readLines(t){throw yO.With("ENOSYS",this.file.path,"FileHandle.readLines")}[Symbol.asyncDispose](){return this.close()}async stat(t){const e=await this.file.stat();if(GM.checkAccess&&!e.hasAccess(zO,this.context))throw yO.With("EACCES",this.file.path,"stat");return t?.bigint?new KM(e):e}async write(t,e,n,i){let s,o,r;if("string"==typeof t){i="number"==typeof e?e:null;const a="string"==typeof n?n:"utf8";o=0,s=XR.Buffer.from(t,a),r=s.length}else s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),o=e,r=n,i="number"==typeof i?i:null;i??(i=this.file.position);const a=await this.file.write(s,o,r,i);return lA("change",this.file.path),{buffer:s,bytesWritten:a}}async writeFile(t,e={}){const n=WO(e,"utf8","w",420);if(!tR(QM(n.flag)))throw new yO(CO.EINVAL,"Flag passed must allow for writing.");if("string"!=typeof t&&!n.encoding)throw new yO(CO.EINVAL,"Encoding not specified");const i="string"==typeof t?XR.Buffer.from(t,n.encoding):t;await this.file.write(i,0,i.length,0),lA("change",this.file.path)}async close(){await this.file.close(),HR.delete(this.fd)}async writev(t,e){let n=0;for(const i of t)n+=(await this.write(i,0,i.length,e+n)).bytesWritten;return{bytesWritten:n,buffers:t}}async readv(t,e){let n=0;for(const i of t)n+=(await this.read(i,0,i.byteLength,e+n)).bytesRead;return{bytesRead:n,buffers:t}}createReadStream(t){const e=new oS({highWaterMark:t?.highWaterMark||65536,encoding:t.encoding,read:async t=>{try{const n=await this.read(new Uint8Array(t),0,t,this.file.position);e.push(n.bytesRead?n.buffer.slice(0,n.bytesRead):null),this.file.position+=n.bytesRead}catch(t){e.destroy(t)}}});return e.path=this.file.path,e}createWriteStream(t){const e=new rS({highWaterMark:t?.highWaterMark,encoding:t?.encoding,write:async(t,e,n)=>{try{const{bytesWritten:i}=await this.write(t,null,e);n(i==t.length?null:new Error("Failed to write full chunk"))}catch(t){n(t)}}});return e.path=this.file.path,e}}async function pS(t,e){t=HO(t),e=HO(e);const n=QR(t,this),i=QR(e,this);if(GM.checkAccess&&!(await dS.call(this,wO(t))).hasAccess(QO,this))throw yO.With("EACCES",t,"rename");try{if(n.mountPoint==i.mountPoint)return await n.fs.rename(n.path,i.path),lA("rename",t.toString()),void lA("change",e.toString());await fS.call(this,e,await ES(t)),await TS.call(this,t),lA("rename",t.toString())}catch(s){throw tA(s,{[n.path]:t,[i.path]:e})}}async function _S(t){try{const{fs:e,path:n}=QR(await wS.call(this,t),this);return await e.exists(n)}catch(t){if(t instanceof yO&&"ENOENT"==t.code)return!1;throw t}}async function dS(t,e){t=HO(t);const{fs:n,path:i}=QR(await wS.call(this,t),this);try{const t=await n.stat(i);if(GM.checkAccess&&!t.hasAccess(zO,this))throw yO.With("EACCES",i,"stat");return e?.bigint?new KM(t):t}catch(e){throw tA(e,{[i]:t})}}async function hS(t,e){t=HO(t);const{fs:n,path:i}=QR(t,this);try{const t=await n.stat(i);return e?.bigint?new KM(t):t}catch(e){throw tA(e,{[i]:t})}}async function cS(t,e=0){const n={stack:[],error:void 0,hasError:!1};try{const i=aS(n,await mS.call(this,t,"r+"),!0);await i.truncate(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=lS(n);t&&await t}}async function TS(t){t=HO(t);const{fs:e,path:n}=QR(t,this);try{if(GM.checkAccess&&!(await(UR.getAsync(t)||e.stat(n))).hasAccess(QO,this))throw yO.With("EACCES",n,"unlink");await e.unlink(n),lA("rename",t.toString())}catch(e){throw tA(e,{[n]:t})}}async function IS(t,e,n=420,i){t=HO(t);const s=XO(n,420),o=QM(e);t=i?await wS.call(this,t):t;const{fs:r,path:a}=QR(t,this),l=await r.stat(a).catch((()=>null));if(!l){if(!tR(o)&&!nR(o)||"r+"==o)throw yO.With("ENOENT",t,"_open");const e=await r.stat(wO(a));if(GM.checkAccess&&!e.hasAccess(QO,this))throw yO.With("EACCES",wO(t),"_open");if(!e.isDirectory())throw yO.With("ENOTDIR",wO(t),"_open");return new uS(await r.createFile(a,o,s),this)}if(GM.checkAccess&&!l.hasAccess(JM(o),this))throw yO.With("EACCES",t,"_open");if(iR(o))throw yO.With("EEXIST",t,"_open");const u=new uS(await r.openFile(a,o),this);return eR(o)&&await u.truncate(0),u}async function mS(t,e="r",n=420){return await IS.call(this,t,e,n,!0)}async function ES(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=WO(e,null,"r",420),s=aS(n,"object"==typeof t&&"fd"in t?t:await mS.call(this,t,i.flag,i.mode),!0);return await s.readFile(i)}catch(t){n.error=t,n.hasError=!0}finally{const t=lS(n);t&&await t}}async function fS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=WO(n,"utf8","w+",420),o=aS(i,t instanceof uS?t:await mS.call(this,t.toString(),s.flag,s.mode),!0),r=e;if("string"!=typeof r&&!(r instanceof Uint8Array))throw new yO(CO.EINVAL,"Iterables and streams not supported",o.file.path,"writeFile");await o.writeFile(r,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function gS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=WO(n,"utf8","a",420);if(!nR(QM(s.flag)))throw new yO(CO.EINVAL,"Flag passed to appendFile must allow for appending.");if("string"!=typeof e&&!s.encoding)throw new yO(CO.EINVAL,"Encoding not specified");const o="string"==typeof e?XR.Buffer.from(e,s.encoding):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=aS(i,"object"==typeof t&&"fd"in t?t:await mS.call(this,t,s.flag,s.mode),!0);await r.appendFile(o,s)}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function OS(t){t=await wS.call(this,t);const{fs:e,path:n}=QR(t,this);try{const i=await(UR.getAsync(t)||e.stat(n));if(!i)throw yO.With("ENOENT",t,"rmdir");if(!i.isDirectory())throw yO.With("ENOTDIR",n,"rmdir");if(GM.checkAccess&&!i.hasAccess(QO,this))throw yO.With("EACCES",n,"rmdir");await e.rmdir(n),lA("rename",t.toString())}catch(e){throw tA(e,{[n]:t})}}async function MS(t,e){e="object"==typeof e?e:{mode:e};const n=XO(e?.mode,511);t=await wS.call(this,t);const{fs:i,path:s,root:o}=QR(t,this),r={[s]:t};try{if(!e?.recursive){if(GM.checkAccess&&!(await i.stat(wO(s))).hasAccess(QO,this))throw yO.With("EACCES",wO(s),"mkdir");return await i.mkdir(s,n),void lA("rename",t.toString())}const a=[];for(let e=s,n=t;!await i.exists(e);e=wO(e),n=wO(n))a.unshift(e),r[e]=n;for(const t of a){if(GM.checkAccess&&!(await i.stat(wO(t))).hasAccess(QO,this))throw yO.With("EACCES",wO(t),"mkdir");await i.mkdir(t,n),lA("rename",t)}return 1==o.length?a[0]:a[0]?.slice(o.length)}catch(t){throw tA(t,r)}}async function RS(t,e){e="object"==typeof e?e:{encoding:e},t=await wS.call(this,t);const n=e=>{throw tA(e,{[s]:t})},{fs:i,path:s}=QR(t,this),o=UR.getAsync(t)||i.stat(s).catch(n);UR.setAsync(t,o);const r=await o;if(!r)throw yO.With("ENOENT",t,"readdir");if(GM.checkAccess&&!r.hasAccess(zO,this))throw yO.With("EACCES",t,"readdir");if(!r.isDirectory())throw yO.With("ENOTDIR",t,"readdir");const a=await i.readdir(s).catch(n),l=[];return await Promise.all(a.map((async o=>{let r;if(e?.recursive||e?.withFileTypes){const e=UR.getAsync(vO(t,o))||i.stat(vO(s,o)).catch(n);UR.setAsync(vO(t,o),e),r=await e}if(e?.withFileTypes?l.push(new nS(o,r)):"buffer"==e?.encoding?l.push(XR.Buffer.from(o)):l.push(o),e?.recursive&&r?.isDirectory())for(const n of await RS.call(this,vO(t,o),{...e,_isIndirect:!0}))n instanceof nS?(n.path=vO(o,n.path),l.push(n)):XR.Buffer.isBuffer(n)?l.push(XR.Buffer.from(vO(o,xO(n)))):l.push(vO(o,n))}))),e?._isIndirect||UR.clear(),l}async function AS(t,e){t=HO(t),e=HO(e);const{fs:n,path:i}=QR(t,this),s=QR(e,this);if(n!=s.fs)throw yO.With("EXDEV",e,"link");try{if(GM.checkAccess&&!(await n.stat(wO(t))).hasAccess(zO,this))throw yO.With("EACCES",wO(i),"link");if(GM.checkAccess&&!(await dS.call(this,wO(e))).hasAccess(QO,this))throw yO.With("EACCES",wO(e),"link");if(GM.checkAccess&&!(await n.stat(i)).hasAccess(zO,this))throw yO.With("EACCES",i,"link");return await n.link(i,s.path)}catch(n){throw tA(n,{[s.path]:e,[i]:t})}}async function SS(t,e,n="file"){const i={stack:[],error:void 0,hasError:!1};try{if(!["file","dir","junction"].includes(n))throw new yO(CO.EINVAL,"Invalid symlink type: "+n);if(await _S.call(this,e))throw yO.With("EEXIST",e.toString(),"symlink");const s=aS(i,await IS.call(this,e,"w+",420,!1),!0);await s.writeFile(t.toString()),await s.file.chmod(gM)}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function CS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=aS(n,await IS.call(this,HO(t),"r",420,!1),!0),s=await i.readFile(),o="object"==typeof e?e?.encoding:e;return"buffer"==o?s:s.toString(o)}catch(t){n.error=t,n.hasError=!0}finally{const t=lS(n);t&&await t}}async function LS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=aS(i,await mS.call(this,t,"r+"),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function yS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=aS(i,await IS.call(this,t,"r+",420,!1),!0);await s.chown(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function DS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=aS(n,await mS.call(this,t,"r+"),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=lS(n);t&&await t}}async function NS(t,e){const n={stack:[],error:void 0,hasError:!1};try{const i=aS(n,await IS.call(this,t,"r+",420,!1),!0);await i.chmod(e)}catch(t){n.error=t,n.hasError=!0}finally{const t=lS(n);t&&await t}}async function bS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=aS(i,await mS.call(this,t,"r+"),!0);await s.utimes(e,n)}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function vS(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{const s=aS(i,await IS.call(this,t,"r+",420,!1),!0);await s.utimes(new Date(e),new Date(n))}catch(t){i.error=t,i.hasError=!0}finally{const t=lS(i);t&&await t}}async function wS(t,e){t=HO(t);const n=(this?.root||"")+t;if(BR.hasAsync(n))return BR.getAsync(n);const{base:i,dir:s}=PO(t),o="/"==s?"/":await(BR.getAsync((this?.root||"")+s)||wS.call(this,s)),r=vO(o,i),{fs:a,path:l}=QR(r,this);try{const e=UR.getAsync(r)||a.stat(l);if(UR.setAsync(r,e),!(await e).isSymbolicLink())return BR.set(t,r),r;const i=bO(o,(await CS.call(this,r)).toString()),s=BR.getAsync((this?.root||"")+i)||wS.call(this,i);return BR.setAsync(n,s),await s}catch(e){if("ENOENT"==e.code)return t;throw tA(e,{[l]:r})}}function FS(t,e={}){return{[Symbol.asyncIterator](){const n=new oA(t.toString(),"string"!=typeof e?e:{encoding:e}),i=[];function s(){n.close();for(const t of i)t({value:null,done:!0});return i.length=0,Promise.resolve({value:null,done:!0})}return n.on("change",((t,e)=>{i.shift()?.({value:{eventType:t,filename:e},done:!1})})),{async next(){const{promise:t,resolve:e}=Promise.withResolvers();return i.push(e),t},return:s,throw:s}}}}async function PS(t,e=$O){if(!GM.checkAccess)return;if(!(await dS.call(this,t)).hasAccess(e,this))throw new yO(CO.EACCES)}async function kS(t,e){t=HO(t);const n=await(UR.getAsync(t)||hS.call(this,t).catch((t=>{if("ENOENT"!=t.code||!e?.force)throw t})));if(n){switch(UR.set(t,n),n.mode&EM){case RM:if(e?.recursive)for(const n of await RS.call(this,t,{_isIndirect:!0}))await kS.call(this,vO(t,n),{...e,_isIndirect:!0});await OS.call(this,t);break;case OM:case gM:case MM:case AM:await TS.call(this,t);break;default:throw UR.clear(),new yO(CO.EPERM,"File type not supported",t,"rm")}e?._isIndirect||UR.clear()}}async function VS(t,e){const n="object"==typeof e?e?.encoding:e||"utf8",i="/tmp/"+`${t}${Date.now()}-${Math.random().toString(36).slice(2)}`;return await MS.call(this,i),"buffer"==n?XR.Buffer.from(i):i}async function YS(t,e,n){if(t=HO(t),e=HO(e),n&&n&ZO&&await _S.call(this,e))throw new yO(CO.EEXIST,"Destination file already exists.",e,"copyFile");await fS.call(this,e,await ES.call(this,t)),lA("rename",e.toString())}function xS(t,e){return t=HO(t),Promise.resolve(new iS(t,this))}async function US(t,e,n){t=HO(t),e=HO(e);const i=await hS.call(this,t);if(n?.errorOnExist&&await _S.call(this,e))throw new yO(CO.EEXIST,"Destination file or directory already exists.",e,"cp");switch(i.mode&EM){case RM:{if(!n?.recursive)throw new yO(CO.EISDIR,t+" is a directory (not copied)",t,"cp");const[i]=await Promise.all([RS.call(this,t,{withFileTypes:!0}),MS.call(this,e,{recursive:!0})]),s=async i=>{n.filter&&!n.filter(vO(t,i.name),vO(e,i.name))||await US.call(this,vO(t,i.name),vO(e,i.name),n)};await Promise.all(i.map(s));break}case OM:case gM:await YS.call(this,t,e);break;default:throw new yO(CO.EPERM,"File type not supported",t,"rm")}n?.preserveTimestamps&&await bS.call(this,e,i.atime,i.mtime)}async function BS(t,e){t=HO(t);const{fs:n}=QR(t,this);return Promise.resolve(nA(n,e?.bigint))}const XS=()=>{};function GS(t,e,n=XS){pS.call(this,t,e).then((()=>n())).catch(n)}function HS(t,e=XS){_S.call(this,t).then(e).catch((()=>e(!1)))}function WS(t,e,n=XS){n="function"==typeof e?e:n,dS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function jS(t,e,n=XS){n="function"==typeof e?e:n,hS.call(this,t,"function"!=typeof e?e:{}).then((t=>n(void 0,t))).catch(n)}function KS(t,e=0,n=XS){n="function"==typeof e?e:n;const i="number"==typeof e?e:0;cS.call(this,t,i).then((()=>n())).catch(n)}function qS(t,e=XS){TS.call(this,t).then((()=>e())).catch(e)}function $S(t,e,n,i=XS){const s=XO(n,420);i="function"==typeof n?n:i,mS.call(this,t,e,s).then((t=>i(void 0,t.fd))).catch(i)}function zS(t,e,n=XS){n="function"==typeof e?e:n,ES.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function QS(t,e,n,i=XS){i="function"==typeof n?n:i,fS.call(this,t,e,"function"!=typeof n?n:null).then((()=>i(void 0))).catch(i)}function JS(t,e,n,i=XS){const s="function"!=typeof n?n:void 0;i="function"==typeof n?n:i,gS.call(this,t,e,s).then((()=>i())).catch(i)}function ZS(t,e,n=XS){n="function"==typeof e?e:n,KR(t).stat().then((t=>n(void 0,"object"==typeof e&&e?.bigint?new KM(t):t))).catch(n)}function tC(t,e=XS){const n=KR(t).close();HR.delete(t),n.then((()=>e())).catch(e)}function eC(t,e,n=XS){const i="number"==typeof e?e:0;n="function"==typeof e?e:n;const s=KR(t);if(i<0)throw new yO(CO.EINVAL);s.truncate(i).then((()=>n())).catch(n)}function nC(t,e=XS){KR(t).sync().then((()=>e())).catch(e)}function iC(t,e=XS){KR(t).datasync().then((()=>e())).catch(e)}function sC(t,e,n,i,s,o=XS){let r,a,l,u,p;const _=new uS(t,this);if("string"==typeof e){switch(p="utf8",typeof n){case"function":o=n;break;case"number":u=n,p="string"==typeof i?i:"utf8",o="function"==typeof s?s:o;break;default:return void(o="function"==typeof i?i:"function"==typeof s?s:o)(new yO(CO.EINVAL,"Invalid arguments."))}r=XR.Buffer.from(e),a=0,l=r.length;const t=o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r.toString(p)))).catch(t)}else{r=XR.Buffer.from(e.buffer),a=n,l=i,u="number"==typeof s?s:null;const t="function"==typeof s?s:o;_.write(r,a,l,u).then((({bytesWritten:e})=>t(void 0,e,r))).catch(t)}}function oC(t,e,n,i,s,o=XS){new uS(t,this).read(e,n,i,s).then((({bytesRead:t,buffer:e})=>o(void 0,t,e))).catch(o)}function rC(t,e,n,i=XS){new uS(t,this).chown(e,n).then((()=>i())).catch(i)}function aC(t,e,n){new uS(t,this).chmod(e).then((()=>n())).catch(n)}function lC(t,e,n,i=XS){new uS(t,this).utimes(e,n).then((()=>i())).catch(i)}function uC(t,e=XS){OS.call(this,t).then((()=>e())).catch(e)}function pC(t,e,n=XS){MS.call(this,t,e).then((()=>n())).catch(n)}function _C(t,e,n=XS){n="function"==typeof e?e:n;const i="function"!=typeof e?e:{};RS.call(this,t,i).then((t=>n(void 0,t))).catch(n)}function dC(t,e,n=XS){AS.call(this,t,e).then((()=>n())).catch(n)}function hC(t,e,n,i=XS){const s="string"==typeof n?n:"file";i="function"==typeof n?n:i,SS.call(this,t,e,s).then((()=>i())).catch(i)}function cC(t,e,n=XS){n="function"==typeof e?e:n,CS.call(this,t).then((t=>n(void 0,t))).catch(n)}function TC(t,e,n,i=XS){LS.call(this,t,e,n).then((()=>i())).catch(i)}function IC(t,e,n,i=XS){yS.call(this,t,e,n).then((()=>i())).catch(i)}function mC(t,e,n=XS){DS.call(this,t,e).then((()=>n())).catch(n)}function EC(t,e,n=XS){NS.call(this,t,e).then((()=>n())).catch(n)}function fC(t,e,n,i=XS){bS.call(this,t,e,n).then((()=>i())).catch(i)}function gC(t,e,n,i=XS){vS.call(this,t,e,n).then((()=>i())).catch(i)}function OC(t,e,n=XS){n="function"==typeof e?e:n,wS.call(this,t,"function"==typeof e?null:e).then((t=>n(void 0,t))).catch(n)}function MC(t,e,n=XS){const i="number"==typeof e?e:zO;n="function"==typeof e?e:n,PS.call(this,t,i).then((()=>n())).catch(n)}const RC=new Map;function AC(t,e,n){const i=HO(t.toString()),s="function"!=typeof e?e:{};if("function"==typeof e&&(n=e),!n)throw new yO(CO.EINVAL,"No listener specified",t.toString(),"watchFile");if(RC.has(i)){const t=RC.get(i);return void(t&&t.listeners.add(n))}const o=new rA(i,s);o.on("change",((t,e)=>{const n=RC.get(i);if(n)for(const i of n.listeners)i(t,e)})),RC.set(i,{watcher:o,listeners:new Set})}function SC(t,e=XS){const n=HO(t.toString()),i=RC.get(n);i&&(e&&e!==XS?i.listeners.delete(e):i.listeners.clear(),0===i.listeners.size&&(i.watcher.stop(),RC.delete(n)))}function CC(t,e,n){const i=new oA(HO(t),"object"==typeof e?e:{});return n="function"==typeof e?e:n,i.on("change",n||XS),i}function LC(t,e){const n=this;let i;const s=new oS({highWaterMark:(e="object"==typeof e?e:{encoding:e}).highWaterMark||65536,encoding:e.encoding||"utf8",async read(o){try{i||(i=await mS.call(n,t,"r",e?.mode));const r=await i.read(new Uint8Array(o),0,o,i.file.position);s.push(r.bytesRead?r.buffer.slice(0,r.bytesRead):null),i.file.position+=r.bytesRead,r.bytesRead||await i.close()}catch(t){await(i?.close()),s.destroy(t)}},destroy(t,e){i?.close().then((()=>e(t))).catch(XS)}});return s.path=t.toString(),s}function yC(t,e){const n=this;let i;e="object"==typeof e?e:{encoding:e};const s=new rS({highWaterMark:e?.highWaterMark,async write(s,o,r){try{i||(i=await mS.call(n,t,"w",e?.mode||438)),await i.write(s,0,o),r(void 0)}catch(t){await(i?.close()),r(t)}},destroy(t,e){e(t),i?.close().then((()=>e(t))).catch(e)},final(t){i?.close().then((()=>t())).catch(t)}});return s.path=t.toString(),s}function DC(t,e,n=XS){n="function"==typeof e?e:n,kS.call(this,t,"function"==typeof e?void 0:e).then((()=>n(void 0))).catch(n)}function NC(t,e,n=XS){n="function"==typeof e?e:n,VS.call(this,t,"function"!=typeof e?e:null).then((t=>n(void 0,t))).catch(n)}function bC(t,e,n,i=XS){i="function"==typeof n?n:i,YS.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function vC(t,e,n,i=XS){i="function"==typeof n?n:i,new uS(t,this).readv(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesRead:e})=>i(void 0,e,t))).catch(i)}function wC(t,e,n,i=XS){i="function"==typeof n?n:i,new uS(t,this).writev(e,"function"==typeof n?void 0:n).then((({buffers:t,bytesWritten:e})=>i(void 0,e,t))).catch(i)}function FC(t,e,n=XS){n="function"==typeof e?e:n,xS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}function PC(t,e,n,i=XS){i="function"==typeof n?n:i,US.call(this,t,e,"function"==typeof n?void 0:n).then((()=>i(void 0))).catch(i)}function kC(t,e,n=XS){n="function"==typeof e?e:n,BS.call(this,t,"function"==typeof e?void 0:e).then((t=>n(void 0,t))).catch(n)}async function VC(t,e){const n=await mS.call(this,t.toString(),"r"),i=await n.readFile();return await n.close(),new Blob([i],e)}var YC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},xC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});function UC(t){return class extends t{constructor(){super(...arguments),this._queue=[],this._isInitialized=!1}get _queueRunning(){return!!this._queue.length}queueDone(){return new Promise((t=>{const e=()=>this._queueRunning?setTimeout(e):t();e()}))}async ready(){if(await super.ready(),await this.queueDone(),!this._isInitialized&&!this._disableSync){if(this.checkSync(),await this._sync.ready(),this._sync instanceof wR&&this instanceof wR){const t=this._sync.store.transaction(),e=this.store.transaction(),n=[];for(const i of await e.keys())n.push(e.get(i).then((e=>t.setSync(i,e))));return await Promise.all(n),void(this._isInitialized=!0)}try{await this.crossCopy("/"),this._isInitialized=!0}catch(t){throw this._isInitialized=!1,t}}}checkSync(t,e){if(this._disableSync)throw new yO(CO.ENOTSUP,"Sync caching has been disabled for this async file system",t,e);if(!this._sync)throw new yO(CO.ENOTSUP,"No sync cache is attached to this async file system",t,e)}renameSync(t,e){this.checkSync(t,"rename"),this._sync.renameSync(t,e),this.queue("rename",t,e)}statSync(t){return this.checkSync(t,"stat"),this._sync.statSync(t)}createFileSync(t,e,n){return this.checkSync(t,"createFile"),this._sync.createFileSync(t,e,n),this.queue("createFile",t,e,n),this.openFileSync(t,e)}openFileSync(t,e){this.checkSync(t,"openFile");const n=this._sync.openFileSync(t,e+"+"),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new oR(this,t,e,i,s)}unlinkSync(t){this.checkSync(t,"unlinkSync"),this._sync.unlinkSync(t),this.queue("unlink",t)}rmdirSync(t){this.checkSync(t,"rmdir"),this._sync.rmdirSync(t),this.queue("rmdir",t)}mkdirSync(t,e){this.checkSync(t,"mkdir"),this._sync.mkdirSync(t,e),this.queue("mkdir",t,e)}readdirSync(t){return this.checkSync(t,"readdir"),this._sync.readdirSync(t)}linkSync(t,e){this.checkSync(t,"link"),this._sync.linkSync(t,e),this.queue("link",t,e)}syncSync(t,e,n){this.checkSync(t,"sync"),this._sync.syncSync(t,e,n),this.queue("sync",t,e,n)}existsSync(t){return this.checkSync(t,"exists"),this._sync.existsSync(t)}async crossCopy(t){this.checkSync(t,"crossCopy");const e=await this.stat(t);if(!e.isDirectory()){const n={stack:[],error:void 0,hasError:!1};try{const i=YC(n,await this.openFile(t,QM("r")),!0),s=YC(n,this._sync.createFileSync(t,QM("w"),e.mode),!1),o=new Uint8Array(e.size);return await i.read(o),void s.writeSync(o,0,e.size)}catch(t){n.error=t,n.hasError=!0}finally{const t=xC(n);t&&await t}}if("/"!==t){const e=await this.stat(t);this._sync.mkdirSync(t,e.mode)}const n=[];for(const e of await this.readdir(t))n.push(this.crossCopy(vO(t,e)));await Promise.all(n)}async _next(){if(!this._queueRunning)return;const[t,...e]=this._queue.shift();await this[t](...e),await this._next()}queue(...t){this._queue.push(t),this._next()}}}new Map;UC(rR);new Map;Map;BC=rR;var BC;var XC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},GC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});class HC{get isLocked(){return this._isLocked}constructor(t){this.previous=t,this.current=Promise.withResolvers(),this._isLocked=!0}async done(){await(this.previous?.done()),await this.current.promise}unlock(){this.current.resolve(),this._isLocked=!1}[Symbol.dispose](){this.unlock()}}class WC{async ready(){return await this._fs.ready()}metadata(){return this._fs.metadata()}addLock(){const t=new HC(this.currentLock);return this.currentLock=t,t}async lock(t,e){const n=this.currentLock,i=this.addLock(),s=(new Error).stack;return setTimeout((()=>{if(i.isLocked){const n=yO.With("EDEADLK",t,e);throw n.stack+=s?.slice(5),n}}),5e3),await(n?.done()),i}lockSync(t,e){if(this.currentLock?.isLocked)throw yO.With("EBUSY",t,e);return this.addLock()}get isLocked(){return!!this.currentLock?.isLocked}async rename(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,await this.lock(t,"rename"),!1);await this._fs.rename(t,e)}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}renameSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,this.lockSync(t,"rename"),!1);return this._fs.renameSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}async stat(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,await this.lock(t,"stat"),!1);return await this._fs.stat(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}statSync(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,this.lockSync(t,"stat"),!1);return this._fs.statSync(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}async openFile(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,await this.lock(t,"openFile"),!1);const i=await this._fs.openFile(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}openFileSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,this.lockSync(t,"openFile"),!1);const i=this._fs.openFileSync(t,e);return i.fs=this,i}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}async createFile(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{XC(i,await this.lock(t,"createFile"),!1);const s=await this._fs.createFile(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{GC(i)}}createFileSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{XC(i,this.lockSync(t,"createFile"),!1);const s=this._fs.createFileSync(t,e,n);return s.fs=this,s}catch(t){i.error=t,i.hasError=!0}finally{GC(i)}}async unlink(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,await this.lock(t,"unlink"),!1);await this._fs.unlink(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}unlinkSync(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,this.lockSync(t,"unlink"),!1);return this._fs.unlinkSync(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}async rmdir(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,await this.lock(t,"rmdir"),!1);await this._fs.rmdir(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}rmdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,this.lockSync(t,"rmdir"),!1);return this._fs.rmdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}async mkdir(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,await this.lock(t,"mkdir"),!1);await this._fs.mkdir(t,e)}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}mkdirSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,this.lockSync(t,"mkdir"),!1);return this._fs.mkdirSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}async readdir(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,await this.lock(t,"readdir"),!1);return await this._fs.readdir(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}readdirSync(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,this.lockSync(t,"readdir"),!1);return this._fs.readdirSync(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}async exists(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,await this.lock(t,"exists"),!1);return await this._fs.exists(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}existsSync(t){const e={stack:[],error:void 0,hasError:!1};try{XC(e,this.lockSync(t,"exists"),!1);return this._fs.existsSync(t)}catch(t){e.error=t,e.hasError=!0}finally{GC(e)}}async link(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,await this.lock(t,"link"),!1);await this._fs.link(t,e)}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}linkSync(t,e){const n={stack:[],error:void 0,hasError:!1};try{XC(n,this.lockSync(t,"link"),!1);return this._fs.linkSync(t,e)}catch(t){n.error=t,n.hasError=!0}finally{GC(n)}}async sync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{XC(i,await this.lock(t,"sync"),!1);await this._fs.sync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{GC(i)}}syncSync(t,e,n){const i={stack:[],error:void 0,hasError:!1};try{XC(i,this.lockSync(t,"sync"),!1);return this._fs.syncSync(t,e,n)}catch(t){i.error=t,i.hasError=!0}finally{GC(i)}}}var jC=function(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var i,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=e[Symbol.asyncDispose]}if(void 0===i){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=e[Symbol.dispose],n&&(s=i)}if("function"!=typeof i)throw new TypeError("Object not disposable.");s&&(i=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:i,async:n})}else n&&t.stack.push({async:!0});return e},KC=function(t){return function(e){function n(n){e.error=e.hasError?new t(n,e.error,"An error was suppressed during disposal."):n,e.hasError=!0}return function t(){for(;e.stack.length;){var i=e.stack.pop();try{var s=i.dispose&&i.dispose.call(i.value);if(i.async)return Promise.resolve(s).then(t,(function(e){return n(e),t()}))}catch(t){n(t)}}if(e.hasError)throw e.error}()}}("function"==typeof SuppressedError?SuppressedError:function(t,e,n){var i=new Error(n);return i.name="SuppressedError",i.error=t,i.suppressed=e,i});const qC="/.deleted";class $C extends rR{async ready(){await this.readable.ready(),await this.writable.ready(),await this._ready}constructor({writable:t,readable:e}){if(super(),this._isInitialized=!1,this._deletedFiles=new Set,this._deleteLog="",this._deleteLogUpdatePending=!1,this._deleteLogUpdateNeeded=!1,this.writable=t,this.readable=e,this.writable.metadata().readonly)throw new yO(CO.EINVAL,"Writable file system must be writable.");this._ready=this._initialize()}metadata(){return{...super.metadata(),name:zC.name}}async sync(t,e,n){await this.copyForWrite(t),await this.writable.exists(t)||await this.writable.createFile(t,"w",420),await this.writable.sync(t,e,n)}syncSync(t,e,n){this.copyForWriteSync(t),this.writable.syncSync(t,e,n)}async _initialize(){if(!this._isInitialized){try{const t=await this.writable.openFile(qC,QM("r")),{size:e}=await t.stat(),{buffer:n}=await t.read(new Uint8Array(e));this._deleteLog=xO(n)}catch(t){if(t.errno!==CO.ENOENT)throw t}this._isInitialized=!0,this._reparseDeletionLog()}}getDeletionLog(){return this._deleteLog}async restoreDeletionLog(t){this._deleteLog=t,this._reparseDeletionLog(),await this.updateLog("")}async rename(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),await this.copyForWrite(t);try{await this.writable.rename(t,e)}catch{if(this._deletedFiles.has(t))throw yO.With("ENOENT",t,"rename")}}renameSync(t,e){this.checkInitialized(),this.checkPath(t),this.checkPath(e),this.copyForWriteSync(t);try{this.writable.renameSync(t,e)}catch{if(this._deletedFiles.has(t))throw yO.With("ENOENT",t,"rename")}}async stat(t){this.checkInitialized();try{return await this.writable.stat(t)}catch{if(this._deletedFiles.has(t))throw yO.With("ENOENT",t,"stat");const e=await this.readable.stat(t);return e.mode|=146,e}}statSync(t){this.checkInitialized();try{return this.writable.statSync(t)}catch{if(this._deletedFiles.has(t))throw yO.With("ENOENT",t,"stat");const e=this.readable.statSync(t);return e.mode|=146,e}}async openFile(t,e){if(await this.writable.exists(t))return this.writable.openFile(t,e);const n=await this.readable.openFile(t,QM("r")),i=await n.stat(),{buffer:s}=await n.read(new Uint8Array(i.size));return new oR(this,t,e,i,s)}openFileSync(t,e){if(this.writable.existsSync(t))return this.writable.openFileSync(t,e);const n=this.readable.openFileSync(t,QM("r")),i=n.statSync(),s=new Uint8Array(i.size);return n.readSync(s),new oR(this,t,e,i,s)}async createFile(t,e,n){return this.checkInitialized(),await this.writable.createFile(t,e,n),this.openFile(t,e)}createFileSync(t,e,n){return this.checkInitialized(),this.writable.createFileSync(t,e,n),this.openFileSync(t,e)}async link(t,e){this.checkInitialized(),await this.copyForWrite(t),await this.writable.link(t,e)}linkSync(t,e){this.checkInitialized(),this.copyForWriteSync(t),this.writable.linkSync(t,e)}async unlink(t){if(this.checkInitialized(),this.checkPath(t),!await this.exists(t))throw yO.With("ENOENT",t,"unlink");await this.writable.exists(t)&&await this.writable.unlink(t),await this.exists(t)&&await this.deletePath(t)}unlinkSync(t){if(this.checkInitialized(),this.checkPath(t),!this.existsSync(t))throw yO.With("ENOENT",t,"unlink");this.writable.existsSync(t)&&this.writable.unlinkSync(t),this.existsSync(t)&&this.deletePath(t)}async rmdir(t){if(this.checkInitialized(),!await this.exists(t))throw yO.With("ENOENT",t,"rmdir");if(await this.writable.exists(t)&&await this.writable.rmdir(t),await this.exists(t)){if((await this.readdir(t)).length)throw yO.With("ENOTEMPTY",t,"rmdir");await this.deletePath(t)}}rmdirSync(t){if(this.checkInitialized(),!this.existsSync(t))throw yO.With("ENOENT",t,"rmdir");if(this.writable.existsSync(t)&&this.writable.rmdirSync(t),this.existsSync(t)){if(this.readdirSync(t).length)throw yO.With("ENOTEMPTY",t,"rmdir");this.deletePath(t)}}async mkdir(t,e){if(this.checkInitialized(),await this.exists(t))throw yO.With("EEXIST",t,"mkdir");await this.createParentDirectories(t),await this.writable.mkdir(t,e)}mkdirSync(t,e){if(this.checkInitialized(),this.existsSync(t))throw yO.With("EEXIST",t,"mkdir");this.createParentDirectoriesSync(t),this.writable.mkdirSync(t,e)}async readdir(t){this.checkInitialized();const e=[];try{e.push(...await this.writable.readdir(t))}catch{}try{e.push(...(await this.readable.readdir(t)).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}readdirSync(t){this.checkInitialized();let e=[];try{e=e.concat(this.writable.readdirSync(t))}catch{}try{e=e.concat(this.readable.readdirSync(t).filter((e=>!this._deletedFiles.has(`${t}/${e}`))))}catch{}const n={};return e.filter((t=>{const e=!n[t];return n[t]=!0,e}))}async deletePath(t){this._deletedFiles.add(t),await this.updateLog(`d${t}\n`)}async updateLog(t){if(this._deleteLog+=t,this._deleteLogUpdatePending)return void(this._deleteLogUpdateNeeded=!0);this._deleteLogUpdatePending=!0;const e=await this.writable.openFile(qC,QM("w"));try{await e.write(VO(this._deleteLog)),this._deleteLogUpdateNeeded&&(this._deleteLogUpdateNeeded=!1,await this.updateLog(""))}catch(t){this._deleteLogError=t}finally{this._deleteLogUpdatePending=!1}}_reparseDeletionLog(){this._deletedFiles.clear();for(const t of this._deleteLog.split("\n"))t.startsWith("d")&&this._deletedFiles.add(t.slice(1))}checkInitialized(){if(!this._isInitialized)throw new yO(CO.EPERM,"OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it.");if(!this._deleteLogError)return;const t=this._deleteLogError;throw delete this._deleteLogError,t}checkPath(t){if(t==qC)throw yO.With("EPERM",t,"checkPath")}createParentDirectoriesSync(t){let e=wO(t);const n=[];for(;!this.writable.existsSync(e);)n.push(e),e=wO(e);for(const t of n.reverse())this.writable.mkdirSync(t,this.statSync(t).mode)}async createParentDirectories(t){let e=wO(t);const n=[];for(;!await this.writable.exists(e);)n.push(e),e=wO(e);for(const t of n.reverse()){const e=await this.stat(t);await this.writable.mkdir(t,e.mode)}}copyForWriteSync(t){if(!this.existsSync(t))throw yO.With("ENOENT",t,"copyForWrite");this.writable.existsSync(wO(t))||this.createParentDirectoriesSync(t),this.writable.existsSync(t)||this.copyToWritableSync(t)}async copyForWrite(t){if(!await this.exists(t))throw yO.With("ENOENT",t,"copyForWrite");if(await this.writable.exists(wO(t))||await this.createParentDirectories(t),!await this.writable.exists(t))return this.copyToWritable(t)}copyToWritableSync(t){const e={stack:[],error:void 0,hasError:!1};try{const n=this.statSync(t);if(n.isDirectory())return void this.writable.mkdirSync(t,n.mode);const i=new Uint8Array(n.size);jC(e,this.readable.openFileSync(t,"r"),!1).readSync(i);jC(e,this.writable.createFileSync(t,"w",146|n.mode),!1).writeSync(i)}catch(t){e.error=t,e.hasError=!0}finally{KC(e)}}async copyToWritable(t){const e={stack:[],error:void 0,hasError:!1};try{const n=await this.stat(t);if(n.isDirectory())return void await this.writable.mkdir(t,n.mode);const i=new Uint8Array(n.size),s=jC(e,await this.readable.openFile(t,"r"),!0);await s.read(i);const o=jC(e,await this.writable.createFile(t,"w",146|n.mode),!0);await o.write(i)}catch(t){e.error=t,e.hasError=!0}finally{const t=KC(e);t&&await t}}}class zC extends(function(t){return class extends WC{constructor(...e){super(),this._fs=new t(...e)}}}($C)){}function QC(t,e,n){if(t instanceof yO)return t;const i=t instanceof DOMException?CO[function(t){switch(t.name){case"IndexSizeError":case"HierarchyRequestError":case"InvalidCharacterError":case"InvalidStateError":case"SyntaxError":case"NamespaceError":case"TypeMismatchError":case"ConstraintError":case"VersionError":case"URLMismatchError":case"InvalidNodeTypeError":return"EINVAL";case"WrongDocumentError":return"EXDEV";case"NoModificationAllowedError":case"InvalidModificationError":case"InvalidAccessError":case"SecurityError":case"NotAllowedError":return"EACCES";case"NotFoundError":return"ENOENT";case"NotSupportedError":return"ENOTSUP";case"InUseAttributeError":return"EBUSY";case"NetworkError":return"ENETDOWN";case"AbortError":return"EINTR";case"QuotaExceededError":return"ENOSPC";case"TimeoutError":return"ETIMEDOUT";case"ReadOnlyError":return"EROFS";default:return"EIO"}}(t)]:CO.EIO,s=new yO(i,t.message,e,n);return s.stack=t.stack,s.cause=t.cause,s}globalThis.__zenfs__=st;class JC extends(UC(rR)){constructor(t){super(),this._handles=new Map,this._sync=YR.create({name:"accessfs-cache"}),this._handles.set("/",t)}metadata(){return{...super.metadata(),name:"WebAccess",noResizableBuffers:!0}}async sync(t,e){await this.writeFile(t,e)}async rename(t,e){const n=await this.getHandle(t);if(n instanceof FileSystemDirectoryHandle){const n=await this.readdir(t);if(await this.mkdir(e),!n.length)return void await this.unlink(t);for(const i of n)await this.rename(vO(t,i),vO(e,i)),await this.unlink(t);return}if(!(n instanceof FileSystemFileHandle))throw new yO(CO.ENOTSUP,"Not a file or directory handle",t,"rename");const i=await n.getFile().catch((e=>{throw QC(e,t,"rename")})),s=await this.getHandle(wO(e));if(!(s instanceof FileSystemDirectoryHandle))return;const o=await s.getFileHandle(FO(e),{create:!0}).catch((t=>{throw QC(t,e,"rename")})),r=await o.createWritable();await r.write(await i.arrayBuffer()),await r.close(),await this.unlink(t)}async writeFile(t,e){if(e.buffer.resizable)throw new yO(CO.EINVAL,"Resizable buffers can not be written",t,"write");const n=await this.getHandle(wO(t));if(!(n instanceof FileSystemDirectoryHandle))return;const i=await n.getFileHandle(FO(t),{create:!0}),s=await i.createWritable();await s.write(e),await s.close()}async createFile(t,e){return await this.writeFile(t,new Uint8Array),this.openFile(t,e)}async stat(t){const e=await this.getHandle(t);if(!e)throw yO.With("ENOENT",t,"stat");if(e instanceof FileSystemDirectoryHandle)return new jM({mode:511|RM,size:4096});if(e instanceof FileSystemFileHandle){const{lastModified:t,size:n}=await e.getFile();return new jM({mode:511|OM,size:n,mtimeMs:t})}throw new yO(CO.EBADE,"Handle is not a directory or file",t,"stat")}async openFile(t,e){const n=await this.getHandle(t);if(!(n instanceof FileSystemFileHandle))throw yO.With("EISDIR",t,"openFile");const i=await n.getFile().catch((e=>{throw QC(e,t,"openFile")})),s=new Uint8Array(await i.arrayBuffer()),o=new jM({mode:511|OM,size:i.size,mtimeMs:i.lastModified});return new oR(this,t,e,o,s)}async unlink(t){const e=await this.getHandle(wO(t));if(!(e instanceof FileSystemDirectoryHandle))throw yO.With("ENOTDIR",wO(t),"unlink");await e.removeEntry(FO(t),{recursive:!0}).catch((e=>{throw QC(e,t,"unlink")}))}async link(t){}async rmdir(t){return this.unlink(t)}async mkdir(t){if(await this.getHandle(t).catch((t=>{if("ENOENT"!=t.code)throw t})))throw yO.With("EEXIST",t,"mkdir");const e=await this.getHandle(wO(t));if(!(e instanceof FileSystemDirectoryHandle))throw yO.With("ENOTDIR",t,"mkdir");await e.getDirectoryHandle(FO(t),{create:!0})}async readdir(t){const e=await this.getHandle(t);if(!(e instanceof FileSystemDirectoryHandle))throw yO.With("ENOTDIR",t,"readdir");const n=[];for await(const t of e.keys())n.push(t);return n}async getHandle(t){if(this._handles.has(t))return this._handles.get(t);let e="/";for(const n of t.split("/").slice(1)){const t=this._handles.get(e);if(!(t instanceof FileSystemDirectoryHandle))throw yO.With("ENOTDIR",e,"getHandle");e=vO(e,n);const i=await t.getDirectoryHandle(n).catch((i=>{switch(i.name){case"TypeMismatchError":return t.getFileHandle(n).catch((t=>{}));case"TypeError":throw new yO(CO.ENOENT,i.message,e,"getHandle");default:throw QC(i,e,"getHandle")}}));i&&this._handles.set(e,i)}return this._handles.get(t)}}function ZC(t){return new Promise(((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)}))}let tL;function eL(){return tL||(tL=function(t,e){const n=indexedDB.open(t);n.onupgradeneeded=()=>n.result.createObjectStore(e);const i=ZC(n);return(t,n)=>i.then((i=>n(i.transaction(e,t).objectStore(e))))}("keyval-store","keyval")),tL}class nL extends JC{constructor(t){super(t)}async readFile(t){const e=await this.getHandle(t);if(e instanceof window.FileSystemFileHandle){const t=await e.getFile();return await t.text()}return""}}class iL extends rt.FS{#t=null;#e=new TextEncoder;constructor(){super()}async showDirectoryPicker(){const t=await window.showDirectoryPicker({mode:"readwrite"});if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return await this.setFSCache(t),this.#t=new nL(t),t}async loadFS(){let t=await this.getFSCache();if(!t)return null;if("granted"!==await t.requestPermission({mode:"readwrite"}))throw new Error("readwrite access to directory not granted");return this.#t=new nL(t),t}async getFSCache(){return function(t,e=eL()){return e("readonly",(e=>ZC(e.get(t))))}("mixly-pyodide-fs")}async setFSCache(t){await function(t,e,n=eL()){return n("readwrite",(n=>(n.put(e,t),ZC(n.transaction))))}("mixly-pyodide-fs",t)}async createFile(t){return this.#t.createFile(t,"")}async readFile(t){return this.#t.readFile(t)}async writeFile(t,e){const n=this.#e.encode(e);return this.#t.writeFile(t,n)}async isFile(t){const e=await this.#t.stat(t);return!(!e||33279!==e.mode)}async renameFile(t,e){return await this.#t.rename(t,e)}async moveFile(t,e){return this.renameFile(t,e)}async deleteFile(t){return this.#t.unlink(t)}async createDirectory(t){return this.#t.mkdir(t,511)}async readDirectory(t){return await this.#t.readdir(t)}async isDirectory(t){const e=await this.#t.stat(t);return!(!e||16895!==e.mode)}async isDirectoryEmpty(t){const e=await this.readDirectory(t);return!e?.length}async renameDirectory(t,e){return this.#t.rename(t,e)}async moveDirectory(t,e){return this.#t.rename(t,e)}async deleteDirectory(t){return this.#t.rmdir(t)}}class sL extends rt.FileTree{constructor(){super(new iL)}async readFolder(t){let e=[];try{const n=this.getFS();if(!await n.isDirectory(t))return e;const i=await n.readDirectory(t);for(let s of i){const i=fO.join(t,s);if(await n.isDirectory(i)){const t=await n.isDirectoryEmpty(i);e.push({type:"folder",id:i,children:!t,title:`/${this.getRootFolderName()}${i}`})}else e.push({type:"file",id:i,children:!1,title:`/${this.getRootFolderName()}${i}`})}}catch(t){rt.Debug.error(t)}return e}}class oL extends rt.PageBase{static{rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem.html",new rt.HTMLTemplate('\r\n
\r\n
\r\n
\r\n
')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-open-fs.html",new rt.HTMLTemplate('\r\n
\r\n \r\n
')),rt.HTMLTemplate.add("html/statusbar/statusbar-filesystem-editor-empty.html",new rt.HTMLTemplate('\r\n
\r\n
\r\n
')),this.init=function(){rt.StatusBarsManager.typesRegistry.register(["file-system"],oL);const t=rt.Workspace.getMain().getStatusBarsManager();return t.add("file-system","file-system",ot.Msg.PYTHON_PYODIDE_FILE_SYSTEM),t.changeTo("output"),t.get("file-system")}}#n=null;#i=null;#s=null;#o=null;#r=null;#a=null;#l=null;#u=null;#p=!1;#_=!1;#d=!1;#h=null;constructor(){super();const t=OO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem.html").render());this.setContent(t),this.#l=new sL,this.#i=t.children(".file-tree"),this.#o=OO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-open-fs.html").render({msg:{loadFS:ot.Msg.PYTHON_PYODIDE_LOAD_FILE_SYSTEM}})),this.#i.append(this.#o),this.#a=new rt.StatusBar,this.#s=t.children(".editor"),this.#r=OO()(rt.HTMLTemplate.get("html/statusbar/statusbar-filesystem-editor-empty.html").render()),this.#s.append(this.#r)}#c(){this.#u=new rt.DragV(this.getContent()[0],{min:"150px",startSize:"15%",full:[!1,!1]}),this.#u.bind("sizeChanged",(()=>{this.resize()})),this.#o.children("button").click((()=>{this.selectFS().catch(rt.Debug.error)})),this.#l.bind("beforeSelectLeaf",(t=>{const e=t[0].id,n=this.#a.getFileMode(fO.extname(e));return n?(this.#a.setMode(n),!0):(SO.layer.msg(rt.Msg.Lang["statusbar.ampy.cannotEdit"],{time:1e3}),!1)})),this.#l.bind("afterSelectLeaf",(async t=>{const e=t[0].id;this.#l.showProgress();const n=this.#l.getFS();try{const t=await n.readFile(e);this.showEditor(),this.#a.setValue(t),this.#a.scrollToTop(),this.#a.focus(),this.setStatus(!1)}catch(t){rt.Debug.error(t),this.hideEditor(),this.#l.deselectAll()}this.#l.hideProgress()})),this.#l.bind("afterCreateNode",(t=>{this.#l.refreshFolder(t)})),this.#l.bind("afterDeleteNode",(t=>{this.#l.refreshFolder(t)})),this.#l.bind("afterRenameNode",(t=>{this.#l.refreshFolder(t)})),this.#l.bind("afterRefreshNode",(()=>{this.#l.getSelectedNodeId()||this.hideEditor()}));const t=this.#l.getContextMenu().getItem("menu");t.add({weight:7,type:"copy_path",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["fileTree.copyPath"],""),callback:(t,{$trigger:e})=>{let n=null;n="root"===e.attr("type")?this.#l.getRootFolderTitle():e.attr("title"),navigator.clipboard.writeText(n).catch(rt.Debug.error)}}}),t.add({weight:14,type:"sep5",preconditionFn:t=>{const e=this.#l.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:"---------"}),t.add({weight:15,type:"refresh",preconditionFn:t=>{const e=this.#l.getSelectedNodeId();let n=t.attr("type"),i=t.attr("id");return"file"!==n||e===i},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.refresh"],""),callback:(t,{$trigger:e})=>{let n=e.attr("type");if("root"===n)this.#l.openRootFolder(),this.#l.refreshFolder("/");else if("folder"===n){let t=e.attr("id");this.#l.openNode(t),this.#l.refreshFolder(t)}else{const t=this.#l.getSelectedNodes();this.#l.runEvent("afterSelectLeaf",t)}}}}),t.add({weight:16,type:"sep6",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:"---------"}),t.add({weight:17,type:"exit",preconditionFn:t=>{let e=t.attr("type");return["root"].includes(e)},data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["statusbar.ampy.exit"],""),callback:()=>{this.closeFS()}}}),t.remove("copy"),t.remove("cut"),t.remove("paste"),t.remove("sep2");const e=this.#a.getContextMenu().getItem("code");e.empty(),e.add({weight:0,type:"cut",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.cut"],"Ctrl+X"),callback:()=>this.#a.cut()}}),e.add({weight:1,type:"copy",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.copy"],"Ctrl+C"),callback:()=>this.#a.copy()}}),e.add({weight:2,type:"paste",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.paste"],"Ctrl+V"),callback:()=>this.#a.paste()}}),e.add({weight:3,type:"sep1",data:"---------"}),e.add({weight:4,type:"togglecomment",data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["editor.contextMenu.togglecomment"],"Ctrl+/"),callback:()=>this.#a.commentLine()}}),e.add({weight:6,type:"sep2",preconditionFn:()=>this.#d,data:"---------"}),e.add({weight:7,type:"save",preconditionFn:()=>this.#d,data:{isHtmlName:!0,name:rt.ContextMenu.getItem(rt.Msg.Lang["file.save"],"Ctrl+S"),callback:async()=>{await this.put()}}});const{commands:n}=this.#a.getEditor();n.addCommand({name:"save",bindKey:"Ctrl-S",exec:async()=>{this.#d&&await this.put()}})}async put(){this.#l.showProgress();const t=this.#l.getSelectedNodeId(),e=this.#l.getFS();try{await e.writeFile(t,this.#a.getValue()),this.setStatus(!1)}catch(t){rt.Debug.error(t)}finally{this.#l.hideProgress()}}showFileTree(){this.#p||(this.#o.detach(),this.#i.empty(),this.#i.append(this.#l.getContent()),this.#p=!0)}hideFileTree(){this.#p&&(this.#l.getContent().detach(),this.#i.empty(),this.#i.append(this.#o),this.#p=!1)}showEditor(){this.#_||(this.#r.detach(),this.#s.empty(),this.#s.append(this.#a.getContent()),this.#_=!0)}hideEditor(){this.#_&&(this.#a.getContent().detach(),this.#s.empty(),this.#s.append(this.#r),this.#_=!1,this.setStatus(!1))}getDrag(){return this.#u}init(){super.init(),this.hideCloseBtn(),this.#a.init(),this.#c();const t=this.#a.getEditor();t.setReadOnly(!1),t.renderer.setShowGutter(!0),t.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0,newLineMode:"unix"}),t.on("change",(()=>{this.setStatus(!0)})),this.loadFS().catch(rt.Debug.error)}async loadFS(){const t=this.#l.getFS(),e=await t.loadFS();await this.openFS(e)}async selectFS(){const t=this.#l.getFS(),e=await t.showDirectoryPicker();await this.openFS(e)}async openFS(t){if(!t?.name)return;const e="/"+t.name;this.#l.setFolderPath("/"),this.#l.setRootFolderTitle(e),this.#l.setRootFolderName(t.name),this.#l.openRootFolder(),this.showFileTree(),this.#h=await window.pyodide.mountNativeFS(e,t)}closeFS(){const t=this.#l.getRootFolderTitle();if(Object.keys(window.pyodide.FS.root.contents).includes(fO.basename(t))){const e=window.pyodide.FS.lookupPath(t,{follow_mount:!1});window.pyodide.FS.isMountpoint(e.node)&&window.pyodide.FS.unmount(t)}this.#l.getFS().setFSCache(null),this.#l.deselectAll(),this.hideFileTree(),this.hideEditor(),this.setStatus(!1)}onMounted(){super.onMounted(),this.#a.onMounted(),this.#l.onMounted()}onUnmounted(){super.onUnmounted(),this.#a.onUnmounted(),this.#l.onUnmounted()}resize(){super.resize(),this.#a.resize(),this.#l.resize()}setStatus(t){this.#d!==t&&(this.#d=t)}getNativeFS(){return this.#h}dispose(){this.#a.dispose(),this.#a=null,this.#l.dispose(),this.#l=null,super.dispose()}}class rL{static{rt.HTMLTemplate.add("html/statusbar/loader.html",new rt.HTMLTemplate('\r\n
\r\n
\r\n

{{d.msg.loading}}

\r\n
')),this.pythonShell=null,this.kernelLoaded=!1,this.$loader=OO()(rt.HTMLTemplate.get("html/statusbar/loader.html").render({msg:{loading:ot.Msg.PYTHON_PYODIDE_LOADING}})),this.statusBarImage=null,this.statusBarFileSystem=null,this.init=async function(){rt.app.getFooterBar().getContent().after(this.$loader);const t=fO.relative(rt.Env.indexDirPath,rt.Env.boardDirPath),e=new RO({rootPath:fO.join(t,"deps"),language:"python3"}),n=await e.kernelAvailable();n&&(await n.init(),await n.loaded(),this.loader=e,this.kernel=n,this.statusBarImage=AO.init(),this.statusBarFileSystem=oL.init(),this.pythonShell=new rL,this.pyodide=window.pyodide,this.interruptBuffer=new Uint8Array(new ArrayBuffer(1)),this.pyodide.setInterruptBuffer(this.interruptBuffer),this.kernelLoaded=!0,this.$loader.remove(),this.$loader=null)},this.run=async function(){if(!this.kernelLoaded)return;const t=rt.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(t)},this.stop=async function(){if(this.kernelLoaded)return this.pythonShell.stop()}}#T=null;#I=null;#m=null;#E={row:0,column:0};#f="";#g=null;#O=null;#M=!1;#R=!1;#A=null;#S=()=>this.#C();#L=[{name:"REPL-Enter",bindKey:"Enter",exec:t=>{if(t.getSession().selection.getCursor().row===this.#E.row){const t=this.#T.getEndPos();let e=this.#T.getValueRange(this.#E,t);e=e.replace(this.#f,""),this.#g?.(e),this.#g=null,this.#O=null,this.#T.addValue("\n"),this.#y()}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:t=>{const e=t.getSession().selection.getCursor();return e.row{this.#R=!1,this.#T.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`),this.syncfs(!1).catch(rt.Debug.error)})),this.#A.addEventListener("eval.output",(t=>{this.#T.addValue(t.content)})),this.#A.addEventListener("eval.error",(()=>{this.#R=!1,this.#T.addValue(`\n==${rt.Msg.Lang["shell.finish"]}==`)})),this.#A.addEventListener("eval.input",(t=>{const e=String(t?.content?.prompt);this.#T.addValue(e),this.#f=e,this.#g=t.resolve,this.#O=t.reject,this.#D()})),this.#A.addEventListener("eval.display",(t=>{this.#m.changeTo("images"),this.#I.display(t)}))}#C(){const t=this.#T.getEditor(),e=t.getSession().selection.getCursor();t.setReadOnly(e.row{window.pyodide.FS.syncfs(t,e)}))}sleep(t){return new Promise((e=>setTimeout(e,t)))}}const aL={init:async function(){const t=rt.app.getNav();t.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:ot.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{rL.run().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:4}),t.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:ot.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{rL.stop().catch(rt.Debug.error)},scopeType:rt.Nav.Scope.LEFT,weight:5}),await rL.init()}};aL.init(),Object.assign(ot.Variables,lt),Object.assign(ot.Procedures,gu),ot.Python=Ou,ot.generator=Ou,rt.Profile.default={},Object.assign(ot.Blocks,t,e,n,i,s,o,r,a,l,u,p,_,d,C,L,y,D,N,b,v,w,F,P,k,V,Y,x,U),Object.assign(ot.Python.forBlock,h,c,T,I,m,E,f,g,O,M,R,A,S,B,X,G,Om,H,W,j,K,q,z,Q,J,Z,tt,et)})()})(); \ No newline at end of file diff --git a/boards/default/python_skulpt/main.bundle.js b/boards/default/python_skulpt/main.bundle.js index bed5c3c0..f4d968ae 100644 --- a/boards/default/python_skulpt/main.bundle.js +++ b/boards/default/python_skulpt/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{var t={23:()=>{Sk.builtinFiles={files:{"src/builtin/this.py":'s = """Gur Mra bs Clguba, ol Gvz Crgref\n\nOrnhgvshy vf orggre guna htyl.\nRkcyvpvg vf orggre guna vzcyvpvg.\nFvzcyr vf orggre guna pbzcyrk.\nPbzcyrk vf orggre guna pbzcyvpngrq.\nSyng vf orggre guna arfgrq.\nFcnefr vf orggre guna qrafr.\nErnqnovyvgl pbhagf.\nFcrpvny pnfrf nera\'g fcrpvny rabhtu gb oernx gur ehyrf.\nNygubhtu cenpgvpnyvgl orngf chevgl.\nReebef fubhyq arire cnff fvyragyl.\nHayrff rkcyvpvgyl fvyraprq.\nVa gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.\nGurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.\nNygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh\'er Qhgpu.\nAbj vf orggre guna arire.\nNygubhtu arire vf bsgra orggre guna *evtug* abj.\nVs gur vzcyrzragngvba vf uneq gb rkcynva, vg\'f n onq vqrn.\nVs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.\nAnzrfcnprf ner bar ubaxvat terng vqrn -- yrg\'f qb zber bs gubfr!"""\n\nd = {}\nfor c in (65, 97):\n for i in range(26):\n d[chr(i+c)] = chr((i+13) % 26 + c)\n\nprint("".join([d.get(c, c) for c in s]))\n',"src/lib/abc.py":'import _sk_fail; _sk_fail._("abc")\n',"src/lib/aifc.py":'import _sk_fail; _sk_fail._("aifc")\n',"src/lib/antigravity.py":'import webbrowser\n\nwebbrowser.open("https://xkcd.com/353/")\n',"src/lib/anydbm.py":'import _sk_fail; _sk_fail._("anydbm")\n',"src/lib/ast.py":'import _sk_fail; _sk_fail._("ast")\n',"src/lib/asynchat.py":'import _sk_fail; _sk_fail._("asynchat")\n',"src/lib/asyncore.py":'import _sk_fail; _sk_fail._("asyncore")\n',"src/lib/atexit.py":'import _sk_fail; _sk_fail._("atexit")\n',"src/lib/audiodev.py":'import _sk_fail; _sk_fail._("audiodev")\n',"src/lib/base64.py":'import _sk_fail; _sk_fail._("base64")\n',"src/lib/BaseHTTPServer.py":'import _sk_fail; _sk_fail._("BaseHTTPServer")\n',"src/lib/Bastion.py":'import _sk_fail; _sk_fail._("Bastion")\n',"src/lib/bdb.py":'import _sk_fail; _sk_fail._("bdb")\n',"src/lib/binhex.py":'import _sk_fail; _sk_fail._("binhex")\n',"src/lib/bisect.py":'"""Bisection algorithms."""\n\ndef insort_right(a, x, lo=0, hi=None):\n """Insert item x in list a, and keep it sorted assuming a is sorted.\n\n If x is already in a, insert it to the right of the rightmost x.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if x < a[mid]: hi = mid\n else: lo = mid+1\n a.insert(lo, x)\n\ndef bisect_right(a, x, lo=0, hi=None):\n """Return the index where to insert item x in list a, assuming a is sorted.\n\n The return value i is such that all e in a[:i] have e <= x, and all e in\n a[i:] have e > x. So if x already appears in the list, a.insert(x) will\n insert just after the rightmost x already there.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if x < a[mid]: hi = mid\n else: lo = mid+1\n return lo\n\ndef insort_left(a, x, lo=0, hi=None):\n """Insert item x in list a, and keep it sorted assuming a is sorted.\n\n If x is already in a, insert it to the left of the leftmost x.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if a[mid] < x: lo = mid+1\n else: hi = mid\n a.insert(lo, x)\n\n\ndef bisect_left(a, x, lo=0, hi=None):\n """Return the index where to insert item x in list a, assuming a is sorted.\n\n The return value i is such that all e in a[:i] have e < x, and all e in\n a[i:] have e >= x. So if x already appears in the list, a.insert(x) will\n insert just before the leftmost x already there.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if a[mid] < x: lo = mid+1\n else: hi = mid\n return lo\n\n# Overwrite above definitions with a fast C implementation\ntry:\n from _bisect import *\nexcept ImportError:\n pass\n\n# Create aliases\nbisect = bisect_right\ninsort = insort_right\n',"src/lib/bsddb/__init__.py":'import _sk_fail; _sk_fail._("bsddb")\n',"src/lib/cgi.py":'import _sk_fail; _sk_fail._("cgi")\n',"src/lib/CGIHTTPServer.py":'import _sk_fail; _sk_fail._("CGIHTTPServer")\n',"src/lib/cgitb.py":'import _sk_fail; _sk_fail._("cgitb")\n',"src/lib/chunk.py":'import _sk_fail; _sk_fail._("chunk")\n',"src/lib/cmd.py":'import _sk_fail; _sk_fail._("cmd")\n',"src/lib/code.py":'import _sk_fail; _sk_fail._("code")\n',"src/lib/codecs.py":'import _sk_fail; _sk_fail._("codecs")\n',"src/lib/codeop.py":'import _sk_fail; _sk_fail._("codeop")\n',"src/lib/colorsys.py":'import _sk_fail; _sk_fail._("colorsys")\n',"src/lib/commands.py":'import _sk_fail; _sk_fail._("commands")\n',"src/lib/compileall.py":'import _sk_fail; _sk_fail._("compileall")\n',"src/lib/compiler/__init__.py":'import _sk_fail; _sk_fail._("compiler")\n',"src/lib/config/__init__.py":'import _sk_fail; _sk_fail._("config")\n',"src/lib/ConfigParser.py":'import _sk_fail; _sk_fail._("ConfigParser")\n',"src/lib/contextlib.py":'import _sk_fail; _sk_fail._("contextlib")\n',"src/lib/Cookie.py":'import _sk_fail; _sk_fail._("Cookie")\n',"src/lib/cookielib.py":'import _sk_fail; _sk_fail._("cookielib")\n',"src/lib/copy.py":'"""\nThis file was modified from CPython.\nCopyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,\n2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved\n"""\nimport types\nclass Error(Exception):\n pass\nerror = Error \nclass _EmptyClass:\n pass\ntry:\n long\nexcept NameError:\n long = int\ntry:\n bytes\nexcept NameError:\n bytes = str\n\ndef check_notimplemented_state(x):\n getstate = getattr(x, "__getstate__", None)\n setstate = getattr(x, "__setstate__", None)\n initargs = getattr(x, "__getinitargs__", None)\n if getstate or setstate or initargs:\n raise NotImplementedError("Skulpt does not yet support copying with user-defined __getstate__, __setstate__ or __getinitargs__()")\n\n\ndef copy(x):\n cls = type(x)\n if callable(x):\n return x\n copier = getattr(cls, "__copy__", None)\n if copier:\n return copier(x)\n if cls in (type(None), int, float, bool, str, bytes, tuple, type, frozenset, long):\n return x\n if (cls == list) or (cls == dict) or (cls == set) or (cls == slice):\n return cls(x)\n reductor = getattr(x, "__reduce_ex__", None)\n if reductor:\n rv = reductor(4)\n else:\n reductor = getattr(x, "__reduce__", None)\n if reductor:\n rv = reductor()\n elif str(cls)[1:6] == "class":\n check_notimplemented_state(x)\n copier = _copy_inst\n return copier(x)\n else:\n raise Error("un(shallow)copyable object of type %s" % cls)\n if isinstance(rv, str):\n return x\n return _reconstruct(x, rv, 0)\n\ndef _copy_inst(x):\n if hasattr(x, \'__copy__\'):\n return x.__copy__()\n if hasattr(x, \'__getinitargs__\'):\n args = x.__getinitargs__()\n y = x.__class__(*args)\n else:\n y = _EmptyClass()\n y.__class__ = x.__class__\n if hasattr(x, \'__getstate__\'):\n state = x.__getstate__()\n else:\n state = x.__dict__\n if hasattr(y, \'__setstate__\'):\n y.__setstate__(state)\n else:\n y.__dict__.update(state)\n return y\n\nd = _deepcopy_dispatch = {}\n\ndef deepcopy(x, memo=None, _nil=[]):\n """Deep copy operation on arbitrary Python objects.\n See the module\'s __doc__ string for more info.\n """\n if memo is None:\n memo = {}\n idx = id(x)\n y = memo.get(idx, _nil)\n if y is not _nil:\n return y\n cls = type(x)\n copier = _deepcopy_dispatch.get(cls)\n if copier:\n y = copier(x, memo)\n else:\n try:\n issc = issubclass(cls, type)\n except TypeError: # cls is not a class (old Boost; see SF #502085)\n issc = 0\n if issc:\n y = _deepcopy_atomic(x, memo)\n else:\n copier = getattr(x, "__deepcopy__", None)\n if copier:\n y = copier(memo)\n else:\n reductor = getattr(x, "__reduce_ex__", None)\n if reductor:\n rv = reductor(2)\n else:\n rv = None\n reductor = getattr(x, "__reduce__", None)\n if reductor:\n rv = reductor()\n elif str(cls)[1:6] == "class":\n check_notimplemented_state(x)\n copier = _deepcopy_dispatch["InstanceType"]\n y = copier(x, memo)\n else:\n raise Error(\n "un(deep)copyable object of type %s" % cls)\n if rv is not None:\n y = _reconstruct(x, rv, 1, memo)\n memo[idx] = y\n _keep_alive(x, memo) # Make sure x lives at least as long as d\n return y\n\ndef _deepcopy_atomic(x, memo):\n return x\nd[type(None)] = _deepcopy_atomic\n# d[type(Ellipsis)] = _deepcopy_atomic\nd[type(NotImplemented)] = _deepcopy_atomic\nd[int] = _deepcopy_atomic\nd[float] = _deepcopy_atomic\nd[bool] = _deepcopy_atomic\nd[complex] = _deepcopy_atomic\nd[bytes] = _deepcopy_atomic\nd[str] = _deepcopy_atomic\n# try:\n# d[types.CodeType] = _deepcopy_atomic\n# except AttributeError:\n# pass\nd[type] = _deepcopy_atomic\n# d[types.BuiltinFunctionType] = _deepcopy_atomic\nd[types.FunctionType] = _deepcopy_atomic\n# d[weakref.ref] = _deepcopy_atomic\n\ndef _deepcopy_list(x, memo):\n y = []\n memo[id(x)] = y\n for a in x:\n y.append(deepcopy(a, memo))\n return y\nd[list] = _deepcopy_list\n\ndef _deepcopy_set(x, memo):\n result = set([]) # make empty set\n memo[id(x)] = result # register this set in the memo for loop checking\n for a in x: # go through elements of set\n result.add(deepcopy(a, memo)) # add the copied elements into the new set\n return result # return the new set\nd[set] = _deepcopy_set\n\ndef _deepcopy_frozenset(x, memo):\n result = frozenset(_deepcopy_set(x,memo)) \n memo[id(x)] = result \n return result\nd[frozenset] = _deepcopy_frozenset\n\ndef _deepcopy_tuple(x, memo):\n y = [deepcopy(a, memo) for a in x]\n # We\'re not going to put the tuple in the memo, but it\'s still important we\n # check for it, in case the tuple contains recursive mutable structures.\n try:\n return memo[id(x)]\n except KeyError:\n pass\n for k, j in zip(x, y):\n if k is not j:\n y = tuple(y)\n break\n else:\n y = x\n return y\nd[tuple] = _deepcopy_tuple\n\ndef _deepcopy_dict(x, memo):\n y = {}\n memo[id(x)] = y\n for key, value in x.items():\n y[deepcopy(key, memo)] = deepcopy(value, memo)\n return y\nd[dict] = _deepcopy_dict\n\n# def _deepcopy_method(x, memo): # Copy instance methods\n# y = type(x)(x.im_func, deepcopy(x.im_self, memo), x.im_class);\n# return y\nd[types.MethodType] = _deepcopy_atomic\n\ndef _deepcopy_inst(x, memo):\n if hasattr(x, \'__deepcopy__\'):\n return x.__deepcopy__(memo)\n if hasattr(x, \'__getinitargs__\'):\n args = x.__getinitargs__()\n args = deepcopy(args, memo)\n y = x.__class__(*args)\n else:\n y = _EmptyClass()\n y.__class__ = x.__class__\n memo[id(x)] = y\n if hasattr(x, \'__getstate__\'):\n state = x.__getstate__()\n else:\n state = x.__dict__\n state = deepcopy(state, memo)\n if hasattr(y, \'__setstate__\'):\n y.__setstate__(state)\n else:\n y.__dict__.update(state)\n return y\nd["InstanceType"] = _deepcopy_inst\n\ndef _keep_alive(x, memo):\n """Keeps a reference to the object x in the memo.\n Because we remember objects by their id, we have\n to assure that possibly temporary objects are kept\n alive by referencing them.\n We store a reference at the id of the memo, which should\n normally not be used unless someone tries to deepcopy\n the memo itself...\n """\n try:\n memo[id(memo)].append(x)\n except KeyError:\n # aha, this is the first one :-)\n memo[id(memo)]=[x]\n\ndef _reconstruct(x, info, deep, memo=None):\n if isinstance(info, str):\n return x\n assert isinstance(info, tuple)\n if memo is None:\n memo = {}\n n = len(info)\n assert n in (2, 3, 4, 5)\n callable, args = info[:2]\n if n > 2:\n state = info[2]\n else:\n state = None\n if n > 3:\n listiter = info[3]\n else:\n listiter = None\n if n > 4:\n dictiter = info[4]\n else:\n dictiter = None\n if deep:\n args = deepcopy(args, memo)\n y = callable(*args)\n memo[id(x)] = y\n\n if state is not None:\n if deep:\n state = deepcopy(state, memo)\n if hasattr(y, \'__setstate__\'):\n y.__setstate__(state)\n else:\n if isinstance(state, tuple) and len(state) == 2:\n state, slotstate = state\n else:\n slotstate = None\n if state is not None:\n y.__dict__.update(state)\n if slotstate is not None:\n for key, value in slotstate.items():\n setattr(y, key, value)\n\n if listiter is not None:\n for item in listiter:\n if deep:\n item = deepcopy(item, memo)\n y.append(item)\n if dictiter is not None:\n for key, value in dictiter:\n if deep:\n key = deepcopy(key, memo)\n value = deepcopy(value, memo)\n y[key] = value\n return y\n\ndel d\n\ndel types\n\n# Helper for instance creation without calling __init__\nclass _EmptyClass:\n pass',"src/lib/copy_reg.py":'import _sk_fail; _sk_fail._("copy_reg")\n',"src/lib/cProfile.py":'import _sk_fail; _sk_fail._("cProfile")\n',"src/lib/csv.py":'import _sk_fail; _sk_fail._("csv")\n',"src/lib/ctypes/macholib/__init__.py":'import _sk_fail; _sk_fail._("macholib")\n',"src/lib/ctypes/__init__.py":'import _sk_fail; _sk_fail._("ctypes")\n',"src/lib/curses/__init__.py":'import _sk_fail; _sk_fail._("curses")\n',"src/lib/dbhash.py":'import _sk_fail; _sk_fail._("dbhash")\n',"src/lib/decimal.py":'import _sk_fail; _sk_fail._("decimal")\n',"src/lib/difflib.py":'import _sk_fail; _sk_fail._("difflib")\n',"src/lib/dircache.py":'import _sk_fail; _sk_fail._("dircache")\n',"src/lib/dis.py":'import _sk_fail; _sk_fail._("dis")\n',"src/lib/distutils/command/__init__.py":'import _sk_fail; _sk_fail._("command")\n',"src/lib/distutils/tests/__init__.py":'import _sk_fail; _sk_fail._("tests")\n',"src/lib/distutils/__init__.py":'import _sk_fail; _sk_fail._("distutils")\n',"src/lib/doctest.py":'import _sk_fail; _sk_fail._("doctest")\n',"src/lib/DocXMLRPCServer.py":'import _sk_fail; _sk_fail._("DocXMLRPCServer")\n',"src/lib/dumbdbm.py":'import _sk_fail; _sk_fail._("dumbdbm")\n',"src/lib/dummy_thread.py":'import _sk_fail; _sk_fail._("dummy_thread")\n',"src/lib/dummy_threading.py":'import _sk_fail; _sk_fail._("dummy_threading")\n',"src/lib/email/mime/__init__.py":'import _sk_fail; _sk_fail._("mime")\n',"src/lib/email/test/data/__init__.py":'import _sk_fail; _sk_fail._("data")\n',"src/lib/email/__init__.py":'import _sk_fail; _sk_fail._("email")\n',"src/lib/encodings/__init__.py":'import _sk_fail; _sk_fail._("encodings")\n',"src/lib/filecmp.py":'import _sk_fail; _sk_fail._("filecmp")\n',"src/lib/fileinput.py":'import _sk_fail; _sk_fail._("fileinput")\n',"src/lib/fnmatch.py":'import _sk_fail; _sk_fail._("fnmatch")\n',"src/lib/formatter.py":'import _sk_fail; _sk_fail._("formatter")\n',"src/lib/fpformat.py":'import _sk_fail; _sk_fail._("fpformat")\n',"src/lib/fractions.py":'import _sk_fail; _sk_fail._("fractions")\n',"src/lib/ftplib.py":'import _sk_fail; _sk_fail._("ftplib")\n',"src/lib/genericpath.py":'import _sk_fail; _sk_fail._("genericpath")\n',"src/lib/getopt.py":'import _sk_fail; _sk_fail._("getopt")\n',"src/lib/getpass.py":'import _sk_fail; _sk_fail._("getpass")\n',"src/lib/gettext.py":'import _sk_fail; _sk_fail._("gettext")\n',"src/lib/glob.py":'import _sk_fail; _sk_fail._("glob")\n',"src/lib/gzip.py":'import _sk_fail; _sk_fail._("gzip")\n',"src/lib/hashlib.py":'import _sk_fail; _sk_fail._("hashlib")\n',"src/lib/heapq.py":'import _sk_fail; _sk_fail._("heapq")\n',"src/lib/hmac.py":'import _sk_fail; _sk_fail._("hmac")\n',"src/lib/hotshot/__init__.py":'import _sk_fail; _sk_fail._("hotshot")\n',"src/lib/htmlentitydefs.py":'import _sk_fail; _sk_fail._("htmlentitydefs")\n',"src/lib/htmllib.py":'import _sk_fail; _sk_fail._("htmllib")\n',"src/lib/HTMLParser.py":'import _sk_fail; _sk_fail._("HTMLParser")\n',"src/lib/httplib.py":'import _sk_fail; _sk_fail._("httplib")\n',"src/lib/idlelib/Icons/__init__.py":'import _sk_fail; _sk_fail._("Icons")\n',"src/lib/idlelib/__init__.py":'import _sk_fail; _sk_fail._("idlelib")\n',"src/lib/ihooks.py":'import _sk_fail; _sk_fail._("ihooks")\n',"src/lib/imaplib.py":'import _sk_fail; _sk_fail._("imaplib")\n',"src/lib/imghdr.py":'import _sk_fail; _sk_fail._("imghdr")\n',"src/lib/imputil.py":'import _sk_fail; _sk_fail._("imputil")\n',"src/lib/io.py":'import _sk_fail; _sk_fail._("io")\n',"src/lib/lib-dynload/__init__.py":'import _sk_fail; _sk_fail._("lib-dynload")\n',"src/lib/lib-tk/__init__.py":'import _sk_fail; _sk_fail._("lib-tk")\n',"src/lib/lib2to3/fixes/__init__.py":'import _sk_fail; _sk_fail._("fixes")\n',"src/lib/lib2to3/pgen2/__init__.py":'import _sk_fail; _sk_fail._("pgen2")\n',"src/lib/lib2to3/tests/__init__.py":'import _sk_fail; _sk_fail._("tests")\n',"src/lib/lib2to3/__init__.py":'import _sk_fail; _sk_fail._("lib2to3")\n',"src/lib/linecache.py":'import _sk_fail; _sk_fail._("linecache")\n',"src/lib/locale.py":'import _sk_fail; _sk_fail._("locale")\n',"src/lib/logging/__init__.py":'import _sk_fail; _sk_fail._("logging")\n',"src/lib/macpath.py":'import _sk_fail; _sk_fail._("macpath")\n',"src/lib/macurl2path.py":'import _sk_fail; _sk_fail._("macurl2path")\n',"src/lib/mailbox.py":'import _sk_fail; _sk_fail._("mailbox")\n',"src/lib/mailcap.py":'import _sk_fail; _sk_fail._("mailcap")\n',"src/lib/markupbase.py":'import _sk_fail; _sk_fail._("markupbase")\n',"src/lib/md5.py":'import _sk_fail; _sk_fail._("md5")\n',"src/lib/mhlib.py":'import _sk_fail; _sk_fail._("mhlib")\n',"src/lib/mimetools.py":'import _sk_fail; _sk_fail._("mimetools")\n',"src/lib/mimetypes.py":'import _sk_fail; _sk_fail._("mimetypes")\n',"src/lib/MimeWriter.py":'import _sk_fail; _sk_fail._("MimeWriter")\n',"src/lib/mimify.py":'import _sk_fail; _sk_fail._("mimify")\n',"src/lib/modulefinder.py":'import _sk_fail; _sk_fail._("modulefinder")\n',"src/lib/multifile.py":'import _sk_fail; _sk_fail._("multifile")\n',"src/lib/multiprocessing/dummy/__init__.py":'import _sk_fail; _sk_fail._("dummy")\n',"src/lib/multiprocessing/__init__.py":'import _sk_fail; _sk_fail._("multiprocessing")\n',"src/lib/mutex.py":'import _sk_fail; _sk_fail._("mutex")\n',"src/lib/netrc.py":'import _sk_fail; _sk_fail._("netrc")\n',"src/lib/new.py":'import _sk_fail; _sk_fail._("new")\n',"src/lib/nntplib.py":'import _sk_fail; _sk_fail._("nntplib")\n',"src/lib/ntpath.py":'import _sk_fail; _sk_fail._("ntpath")\n',"src/lib/nturl2path.py":'import _sk_fail; _sk_fail._("nturl2path")\n',"src/lib/numbers.py":"Number = (int, float, complex)\nIntegral = int\nComplex = complex\n","src/lib/opcode.py":'import _sk_fail; _sk_fail._("opcode")\n',"src/lib/optparse.py":'import _sk_fail; _sk_fail._("optparse")\n',"src/lib/os.py":'import _sk_fail; _sk_fail._("os")\n',"src/lib/os2emxpath.py":'import _sk_fail; _sk_fail._("os2emxpath")\n',"src/lib/pdb.py":'import _sk_fail; _sk_fail._("pdb")\n',"src/lib/pickle.py":'import _sk_fail; _sk_fail._("pickle")\n',"src/lib/pickletools.py":'import _sk_fail; _sk_fail._("pickletools")\n',"src/lib/pipes.py":'import _sk_fail; _sk_fail._("pipes")\n',"src/lib/pkgutil.py":'import _sk_fail; _sk_fail._("pkgutil")\n',"src/lib/platform.py":'import _sk_fail; _sk_fail._("platform")\n',"src/lib/plistlib.py":'import _sk_fail; _sk_fail._("plistlib")\n',"src/lib/popen2.py":'import _sk_fail; _sk_fail._("popen2")\n',"src/lib/poplib.py":'import _sk_fail; _sk_fail._("poplib")\n',"src/lib/posixfile.py":'import _sk_fail; _sk_fail._("posixfile")\n',"src/lib/posixpath.py":'import _sk_fail; _sk_fail._("posixpath")\n',"src/lib/pprint.py":'import _sk_fail; _sk_fail._("pprint")\n',"src/lib/profile.py":'import _sk_fail; _sk_fail._("profile")\n',"src/lib/pstats.py":'import _sk_fail; _sk_fail._("pstats")\n',"src/lib/pty.py":'import _sk_fail; _sk_fail._("pty")\n',"src/lib/pyclbr.py":'import _sk_fail; _sk_fail._("pyclbr")\n',"src/lib/pydoc.py":'import _sk_fail; _sk_fail._("pydoc")\n',"src/lib/pydoc_topics.py":'import _sk_fail; _sk_fail._("pydoc_topics")\n',"src/lib/pythonds/basic/deque.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n#deque.py\n\n\nclass Deque:\n def __init__(self):\n self.items = []\n\n def isEmpty(self):\n return self.items == []\n\n def addFront(self, item):\n self.items.append(item)\n\n def addRear(self, item):\n self.items.insert(0,item)\n\n def removeFront(self):\n return self.items.pop()\n\n def removeRear(self):\n return self.items.pop(0)\n\n def size(self):\n return len(self.items)\n","src/lib/pythonds/basic/queue.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n#queue.py\n\nclass Queue:\n def __init__(self):\n self.items = []\n\n def isEmpty(self):\n return self.items == []\n\n def enqueue(self, item):\n self.items.insert(0,item)\n\n def dequeue(self):\n return self.items.pop()\n\n def size(self):\n return len(self.items)\n","src/lib/pythonds/basic/stack.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n#stack.py\n\nclass Stack:\n def __init__(self):\n self.items = []\n\n def isEmpty(self):\n return self.items == []\n\n def push(self, item):\n self.items.append(item)\n\n def pop(self):\n return self.items.pop()\n\n def peek(self):\n return self.items[len(self.items)-1]\n\n def size(self):\n return len(self.items)\n\n","src/lib/pythonds/basic/__init__.py":'\n#__all__ = ["stack"]\n\n\n#from .stack import Stack\n#from .queue import Queue\n\n\n\n',"src/lib/pythonds/graphs/adjGraph.py":'#\n# adjGraph\n#\n# Created by Brad Miller on 2005-02-24.\n# Copyright (c) 2005 Brad Miller, David Ranum, Luther College. All rights reserved.\n#\n\nimport sys\nimport os\nimport unittest\n\nclass Graph:\n def __init__(self):\n self.vertices = {}\n self.numVertices = 0\n \n def addVertex(self,key):\n self.numVertices = self.numVertices + 1\n newVertex = Vertex(key)\n self.vertices[key] = newVertex\n return newVertex\n \n def getVertex(self,n):\n if n in self.vertices:\n return self.vertices[n]\n else:\n return None\n\n def __contains__(self,n):\n return n in self.vertices\n \n def addEdge(self,f,t,cost=0):\n if f not in self.vertices:\n nv = self.addVertex(f)\n if t not in self.vertices:\n nv = self.addVertex(t)\n self.vertices[f].addNeighbor(self.vertices[t],cost)\n \n def getVertices(self):\n return list(self.vertices.keys())\n \n def __iter__(self):\n return iter(self.vertices.values())\n \nclass Vertex:\n def __init__(self,num):\n self.id = num\n self.connectedTo = {}\n self.color = \'white\'\n self.dist = sys.maxsize\n self.pred = None\n self.disc = 0\n self.fin = 0\n\n # def __lt__(self,o):\n # return self.id < o.id\n \n def addNeighbor(self,nbr,weight=0):\n self.connectedTo[nbr] = weight\n \n def setColor(self,color):\n self.color = color\n \n def setDistance(self,d):\n self.dist = d\n\n def setPred(self,p):\n self.pred = p\n\n def setDiscovery(self,dtime):\n self.disc = dtime\n \n def setFinish(self,ftime):\n self.fin = ftime\n \n def getFinish(self):\n return self.fin\n \n def getDiscovery(self):\n return self.disc\n \n def getPred(self):\n return self.pred\n \n def getDistance(self):\n return self.dist\n \n def getColor(self):\n return self.color\n \n def getConnections(self):\n return self.connectedTo.keys()\n \n def getWeight(self,nbr):\n return self.connectedTo[nbr]\n \n def __str__(self):\n return str(self.id) + ":color " + self.color + ":disc " + str(self.disc) + ":fin " + str(self.fin) + ":dist " + str(self.dist) + ":pred \\n\\t[" + str(self.pred)+ "]\\n"\n \n def getId(self):\n return self.id\n\nclass adjGraphTests(unittest.TestCase):\n def setUp(self):\n self.tGraph = Graph()\n \n def testMakeGraph(self):\n gFile = open("test.dat")\n for line in gFile:\n fVertex, tVertex = line.split(\'|\')\n fVertex = int(fVertex)\n tVertex = int(tVertex)\n self.tGraph.addEdge(fVertex,tVertex)\n for i in self.tGraph:\n adj = i.getAdj()\n for k in adj:\n print(i, k)\n\n \nif __name__ == \'__main__\':\n unittest.main()\n \n',"src/lib/pythonds/graphs/priorityQueue.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \nimport unittest\n\n# this implementation of binary heap takes key value pairs,\n# we will assume that the keys are all comparable\n\nclass PriorityQueue:\n def __init__(self):\n self.heapArray = [(0,0)]\n self.currentSize = 0\n\n def buildHeap(self,alist):\n self.currentSize = len(alist)\n self.heapArray = [(0,0)]\n for i in alist:\n self.heapArray.append(i)\n i = len(alist) // 2 \n while (i > 0):\n self.percDown(i)\n i = i - 1\n \n def percDown(self,i):\n while (i * 2) <= self.currentSize:\n mc = self.minChild(i)\n if self.heapArray[i][0] > self.heapArray[mc][0]:\n tmp = self.heapArray[i]\n self.heapArray[i] = self.heapArray[mc]\n self.heapArray[mc] = tmp\n i = mc\n \n def minChild(self,i):\n if i*2 > self.currentSize:\n return -1\n else:\n if i*2 + 1 > self.currentSize:\n return i*2\n else:\n if self.heapArray[i*2][0] < self.heapArray[i*2+1][0]:\n return i*2\n else:\n return i*2+1\n\n def percUp(self,i):\n while i // 2 > 0:\n if self.heapArray[i][0] < self.heapArray[i//2][0]:\n tmp = self.heapArray[i//2]\n self.heapArray[i//2] = self.heapArray[i]\n self.heapArray[i] = tmp\n i = i//2\n \n def add(self,k):\n self.heapArray.append(k)\n self.currentSize = self.currentSize + 1\n self.percUp(self.currentSize)\n\n def delMin(self):\n retval = self.heapArray[1][1]\n self.heapArray[1] = self.heapArray[self.currentSize]\n self.currentSize = self.currentSize - 1\n self.heapArray.pop()\n self.percDown(1)\n return retval\n \n def isEmpty(self):\n if self.currentSize == 0:\n return True\n else:\n return False\n\n def decreaseKey(self,val,amt):\n # this is a little wierd, but we need to find the heap thing to decrease by\n # looking at its value\n done = False\n i = 1\n myKey = 0\n while not done and i <= self.currentSize:\n if self.heapArray[i][1] == val:\n done = True\n myKey = i\n else:\n i = i + 1\n if myKey > 0:\n self.heapArray[myKey] = (amt,self.heapArray[myKey][1])\n self.percUp(myKey)\n \n def __contains__(self,vtx):\n for pair in self.heapArray:\n if pair[1] == vtx:\n return True\n return False\n \nclass TestBinHeap(unittest.TestCase):\n def setUp(self):\n self.theHeap = PriorityQueue()\n self.theHeap.add((2,'x'))\n self.theHeap.add((3,'y'))\n self.theHeap.add((5,'z'))\n self.theHeap.add((6,'a'))\n self.theHeap.add((4,'d'))\n\n\n def testInsert(self):\n assert self.theHeap.currentSize == 5\n\n def testDelmin(self):\n assert self.theHeap.delMin() == 'x'\n assert self.theHeap.delMin() == 'y'\n \n def testDecKey(self):\n self.theHeap.decreaseKey('d',1)\n assert self.theHeap.delMin() == 'd'\n \nif __name__ == '__main__':\n unittest.main()\n","src/lib/pythonds/graphs/__init__.py":"\n\nfrom .adjGraph import Graph\nfrom .adjGraph import Vertex\nfrom .priorityQueue import PriorityQueue\n","src/lib/pythonds/trees/balance.py":"#!/bin/env python3.1\n# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005, 2010\n# \n\nfrom .bst import BinarySearchTree, TreeNode\n\nclass AVLTree(BinarySearchTree):\n '''\n Author: Brad Miller\n Date: 1/15/2005\n Description: Imlement a binary search tree with the following interface\n functions: \n __contains__(y) <==> y in x\n __getitem__(y) <==> x[y]\n __init__()\n __len__() <==> len(x)\n __setitem__(k,v) <==> x[k] = v\n clear()\n get(k)\n has_key(k)\n items() \n keys() \n values()\n put(k,v)\n '''\n\n\n def _put(self,key,val,currentNode):\n if key < currentNode.key:\n if currentNode.hasLeftChild():\n self._put(key,val,currentNode.leftChild)\n else:\n currentNode.leftChild = TreeNode(key,val,parent=currentNode)\n self.updateBalance(currentNode.leftChild)\n else:\n if currentNode.hasRightChild():\n self._put(key,val,currentNode.rightChild)\n else:\n currentNode.rightChild = TreeNode(key,val,parent=currentNode)\n self.updateBalance(currentNode.rightChild) \n\n def updateBalance(self,node):\n if node.balanceFactor > 1 or node.balanceFactor < -1:\n self.rebalance(node)\n return\n if node.parent != None:\n if node.isLeftChild():\n node.parent.balanceFactor += 1\n elif node.isRightChild():\n node.parent.balanceFactor -= 1\n\n if node.parent.balanceFactor != 0:\n self.updateBalance(node.parent)\n\n def rebalance(self,node):\n if node.balanceFactor < 0:\n if node.rightChild.balanceFactor > 0:\n # Do an LR Rotation\n self.rotateRight(node.rightChild)\n self.rotateLeft(node)\n else:\n # single left\n self.rotateLeft(node)\n elif node.balanceFactor > 0:\n if node.leftChild.balanceFactor < 0:\n # Do an RL Rotation\n self.rotateLeft(node.leftChild)\n self.rotateRight(node)\n else:\n # single right\n self.rotateRight(node)\n\n def rotateLeft(self,rotRoot):\n newRoot = rotRoot.rightChild\n rotRoot.rightChild = newRoot.leftChild\n if newRoot.leftChild != None:\n newRoot.leftChild.parent = rotRoot\n newRoot.parent = rotRoot.parent\n if rotRoot.isRoot():\n self.root = newRoot\n else:\n if rotRoot.isLeftChild():\n rotRoot.parent.leftChild = newRoot\n else:\n rotRoot.parent.rightChild = newRoot\n newRoot.leftChild = rotRoot\n rotRoot.parent = newRoot\n rotRoot.balanceFactor = rotRoot.balanceFactor + 1 - min(newRoot.balanceFactor, 0)\n newRoot.balanceFactor = newRoot.balanceFactor + 1 + max(rotRoot.balanceFactor, 0)\n\n\n def rotateRight(self,rotRoot):\n newRoot = rotRoot.leftChild\n rotRoot.leftChild = newRoot.rightChild\n if newRoot.rightChild != None:\n newRoot.rightChild.parent = rotRoot\n newRoot.parent = rotRoot.parent\n if rotRoot.isRoot():\n self.root = newRoot\n else:\n if rotRoot.isRightChild():\n rotRoot.parent.rightChild = newRoot\n else:\n rotRoot.parent.leftChild = newRoot\n newRoot.rightChild = rotRoot\n rotRoot.parent = newRoot\n rotRoot.balanceFactor = rotRoot.balanceFactor - 1 - max(newRoot.balanceFactor, 0)\n newRoot.balanceFactor = newRoot.balanceFactor - 1 + min(rotRoot.balanceFactor, 0)\n \n","src/lib/pythonds/trees/binaryTree.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n\nclass BinaryTree:\n \"\"\"\n A recursive implementation of Binary Tree\n Using links and Nodes approach.\n \"\"\" \n def __init__(self,rootObj):\n self.key = rootObj\n self.leftChild = None\n self.rightChild = None\n\n def insertLeft(self,newNode):\n if self.leftChild == None:\n self.leftChild = BinaryTree(newNode)\n else:\n t = BinaryTree(newNode)\n t.left = self.leftChild\n self.leftChild = t\n \n def insertRight(self,newNode):\n if self.rightChild == None:\n self.rightChild = BinaryTree(newNode)\n else:\n t = BinaryTree(newNode)\n t.right = self.rightChild\n self.rightChild = t\n\n def isLeaf(self):\n return ((not self.leftChild) and (not self.rightChild))\n\n def getRightChild(self):\n return self.rightChild\n\n def getLeftChild(self):\n return self.leftChild\n\n def setRootVal(self,obj):\n self.key = obj\n\n def getRootVal(self,):\n return self.key\n\n def inorder(self):\n if self.leftChild:\n self.leftChild.inorder()\n print(self.key)\n if self.rightChild:\n self.rightChild.inorder()\n\n def postorder(self):\n if self.leftChild:\n self.leftChild.postorder()\n if self.rightChild:\n self.rightChild.postorder()\n print(self.key)\n\n\n def preorder(self):\n print(self.key)\n if self.leftChild:\n self.leftChild.preorder()\n if self.rightChild:\n self.rightChild.preorder()\n\n def printexp(self):\n if self.leftChild:\n print('(')\n self.leftChild.printexp()\n print(self.key)\n if self.rightChild:\n self.rightChild.printexp()\n print(')')\n\n def postordereval(self):\n opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv}\n res1 = None\n res2 = None\n if self.leftChild:\n res1 = self.leftChild.postordereval() #// \\label{peleft}\n if self.rightChild:\n res2 = self.rightChild.postordereval() #// \\label{peright}\n if res1 and res2:\n return opers[self.key](res1,res2) #// \\label{peeval}\n else:\n return self.key\n\ndef inorder(tree):\n if tree != None:\n inorder(tree.getLeftChild())\n print(tree.getRootVal())\n inorder(tree.getRightChild())\n\ndef printexp(tree):\n if tree.leftChild:\n print('(')\n printexp(tree.getLeftChild())\n print(tree.getRootVal())\n if tree.rightChild:\n printexp(tree.getRightChild())\n print(')') \n\ndef printexp(tree):\n sVal = \"\"\n if tree:\n sVal = '(' + printexp(tree.getLeftChild())\n sVal = sVal + str(tree.getRootVal())\n sVal = sVal + printexp(tree.getRightChild()) + ')'\n return sVal\n\ndef postordereval(tree):\n opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv}\n res1 = None\n res2 = None\n if tree:\n res1 = postordereval(tree.getLeftChild()) #// \\label{peleft}\n res2 = postordereval(tree.getRightChild()) #// \\label{peright}\n if res1 and res2:\n return opers[tree.getRootVal()](res1,res2) #// \\label{peeval}\n else:\n return tree.getRootVal()\n\ndef height(tree):\n if tree == None:\n return -1\n else:\n return 1 + max(height(tree.leftChild),height(tree.rightChild))\n\n# t = BinaryTree(7)\n# t.insertLeft(3)\n# t.insertRight(9)\n# inorder(t)\n# import operator\n# x = BinaryTree('*')\n# x.insertLeft('+')\n# l = x.getLeftChild()\n# l.insertLeft(4)\n# l.insertRight(5)\n# x.insertRight(7)\n# print(printexp(x))\n# print(postordereval(x))\n# print(height(x))\n","src/lib/pythonds/trees/binheap.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n\n# this heap takes key value pairs, we will assume that the keys are integers\nclass BinHeap:\n def __init__(self):\n self.heapList = [0]\n self.currentSize = 0\n\n\n def buildHeap(self,alist):\n i = len(alist) // 2\n self.currentSize = len(alist)\n self.heapList = [0] + alist[:]\n print(len(self.heapList), i)\n while (i > 0):\n print(self.heapList, i)\n self.percDown(i)\n i = i - 1\n print(self.heapList,i)\n \n def percDown(self,i):\n while (i * 2) <= self.currentSize:\n mc = self.minChild(i)\n if self.heapList[i] > self.heapList[mc]:\n tmp = self.heapList[i]\n self.heapList[i] = self.heapList[mc]\n self.heapList[mc] = tmp\n i = mc\n \n def minChild(self,i):\n if i * 2 + 1 > self.currentSize:\n return i * 2\n else:\n if self.heapList[i * 2] < self.heapList[i * 2 + 1]:\n return i * 2\n else:\n return i * 2 + 1\n\n def percUp(self,i):\n while i // 2 > 0:\n if self.heapList[i] < self.heapList[i//2]:\n tmp = self.heapList[i // 2]\n self.heapList[i // 2] = self.heapList[i]\n self.heapList[i] = tmp\n i = i // 2\n \n def insert(self,k):\n self.heapList.append(k)\n self.currentSize = self.currentSize + 1\n self.percUp(self.currentSize)\n\n def delMin(self):\n retval = self.heapList[1]\n self.heapList[1] = self.heapList[self.currentSize]\n self.currentSize = self.currentSize - 1\n self.heapList.pop()\n self.percDown(1)\n return retval\n \n def isEmpty(self):\n if currentSize == 0:\n return True\n else:\n return False\n","src/lib/pythonds/trees/bst.py":"#!/bin/env python3.1\n# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005, 2010\n# \n\nclass BinarySearchTree:\n '''\n Author: Brad Miller\n Date: 1/15/2005\n Description: Imlement a binary search tree with the following interface\n functions: \n __contains__(y) <==> y in x\n __getitem__(y) <==> x[y]\n __init__()\n __len__() <==> len(x)\n __setitem__(k,v) <==> x[k] = v\n clear()\n get(k)\n items() \n keys() \n values()\n put(k,v)\n in\n del <==> \n '''\n\n def __init__(self):\n self.root = None\n self.size = 0\n \n def put(self,key,val):\n if self.root:\n self._put(key,val,self.root)\n else:\n self.root = TreeNode(key,val)\n self.size = self.size + 1\n\n def _put(self,key,val,currentNode):\n if key < currentNode.key:\n if currentNode.hasLeftChild():\n self._put(key,val,currentNode.leftChild)\n else:\n currentNode.leftChild = TreeNode(key,val,parent=currentNode)\n else:\n if currentNode.hasRightChild():\n self._put(key,val,currentNode.rightChild)\n else:\n currentNode.rightChild = TreeNode(key,val,parent=currentNode)\n \n def __setitem__(self,k,v):\n self.put(k,v)\n\n def get(self,key):\n if self.root:\n res = self._get(key,self.root)\n if res:\n return res.payload\n else:\n return None\n else:\n return None\n \n def _get(self,key,currentNode):\n if not currentNode:\n return None\n elif currentNode.key == key:\n return currentNode\n elif key < currentNode.key:\n return self._get(key,currentNode.leftChild)\n else:\n return self._get(key,currentNode.rightChild)\n \n \n def __getitem__(self,key):\n res = self.get(key)\n if res:\n return res\n else:\n raise KeyError('Error, key not in tree')\n \n\n def __contains__(self,key):\n if self._get(key,self.root):\n return True\n else:\n return False\n \n def length(self):\n return self.size\n\n def __len__(self):\n return self.size\n\n def __iter__(self):\n return self.root.__iter__()\n \n def delete(self,key):\n if self.size > 1:\n nodeToRemove = self._get(key,self.root)\n if nodeToRemove:\n self.remove(nodeToRemove)\n self.size = self.size-1\n else:\n raise KeyError('Error, key not in tree')\n elif self.size == 1 and self.root.key == key:\n self.root = None\n self.size = self.size - 1\n else:\n raise KeyError('Error, key not in tree')\n\n def __delitem__(self,key):\n self.delete(key)\n \n def remove(self,currentNode):\n if currentNode.isLeaf(): #leaf\n if currentNode == currentNode.parent.leftChild:\n currentNode.parent.leftChild = None\n else:\n currentNode.parent.rightChild = None\n elif currentNode.hasBothChildren(): #interior\n succ = currentNode.findSuccessor()\n succ.spliceOut()\n currentNode.key = succ.key\n currentNode.payload = succ.payload\n else: # this node has one child\n if currentNode.hasLeftChild():\n if currentNode.isLeftChild():\n currentNode.leftChild.parent = currentNode.parent\n currentNode.parent.leftChild = currentNode.leftChild\n elif currentNode.isRightChild():\n currentNode.leftChild.parent = currentNode.parent\n currentNode.parent.rightChild = currentNode.leftChild\n else:\n currentNode.replaceNodeData(currentNode.leftChild.key,\n currentNode.leftChild.payload,\n currentNode.leftChild.leftChild,\n currentNode.leftChild.rightChild)\n else:\n if currentNode.isLeftChild():\n currentNode.rightChild.parent = currentNode.parent\n currentNode.parent.leftChild = currentNode.rightChild\n elif currentNode.isRightChild():\n currentNode.rightChild.parent = currentNode.parent\n currentNode.parent.rightChild = currentNode.rightChild\n else:\n currentNode.replaceNodeData(currentNode.rightChild.key,\n currentNode.rightChild.payload,\n currentNode.rightChild.leftChild,\n currentNode.rightChild.rightChild)\n\n def inorder(self):\n self._inorder(self.root)\n\n def _inorder(self,tree):\n if tree != None:\n self._inorder(tree.leftChild)\n print(tree.key)\n self._inorder(tree.rightChild)\n\n def postorder(self):\n self._postorder(self.root)\n\n def _postorder(self, tree):\n if tree:\n self._postorder(tree.rightChild)\n self._postorder(tree.leftChild)\n print(tree.key) \n\n def preorder(self):\n self._preorder(self,self.root)\n\n def _preorder(self,tree):\n if tree:\n print(tree.key) \n self._preorder(tree.leftChild)\n self._preorder(tree.rightChild)\n\n \nclass TreeNode:\n def __init__(self,key,val,left=None,right=None,parent=None):\n self.key = key\n self.payload = val\n self.leftChild = left\n self.rightChild = right\n self.parent = parent\n self.balanceFactor = 0\n \n def hasLeftChild(self):\n return self.leftChild\n\n def hasRightChild(self):\n return self.rightChild\n \n def isLeftChild(self):\n return self.parent and self.parent.leftChild == self\n\n def isRightChild(self):\n return self.parent and self.parent.rightChild == self\n\n def isRoot(self):\n return not self.parent\n\n def isLeaf(self):\n return not (self.rightChild or self.leftChild)\n\n def hasAnyChildren(self):\n return self.rightChild or self.leftChild\n\n def hasBothChildren(self):\n return self.rightChild and self.leftChild\n \n def replaceNodeData(self,key,value,lc,rc):\n self.key = key\n self.payload = value\n self.leftChild = lc\n self.rightChild = rc\n if self.hasLeftChild():\n self.leftChild.parent = self\n if self.hasRightChild():\n self.rightChild.parent = self\n \n def findSuccessor(self):\n succ = None\n if self.hasRightChild():\n succ = self.rightChild.findMin()\n else:\n if self.parent:\n if self.isLeftChild():\n succ = self.parent\n else:\n self.parent.rightChild = None\n succ = self.parent.findSuccessor()\n self.parent.rightChild = self\n return succ\n\n\n def spliceOut(self):\n if self.isLeaf():\n if self.isLeftChild():\n self.parent.leftChild = None\n else:\n self.parent.rightChild = None\n elif self.hasAnyChildren():\n if self.hasLeftChild():\n if self.isLeftChild():\n self.parent.leftChild = self.leftChild\n else:\n self.parent.rightChild = self.leftChild\n self.leftChild.parent = self.parent\n else:\n if self.isLeftChild():\n self.parent.leftChild = self.rightChild\n else:\n self.parent.rightChild = self.rightChild\n self.rightChild.parent = self.parent\n\n def findMin(self):\n current = self\n while current.hasLeftChild():\n current = current.leftChild\n return current\n\n def __iter__(self):\n \"\"\"The standard inorder traversal of a binary tree.\"\"\"\n if self:\n if self.hasLeftChild():\n for elem in self.leftChild:\n yield elem\n yield self.key\n if self.hasRightChild():\n for elem in self.rightChild:\n yield elem\n\n \n","src/lib/pythonds/trees/__init__.py":"\n# from .binaryTree import BinaryTree\n# from .balance import AVLTree\n# from .bst import BinarySearchTree\n# from .binheap import BinHeap\n\n\n","src/lib/pythonds/__init__.py":"","src/lib/py_compile.py":'import _sk_fail; _sk_fail._("py_compile")\n',"src/lib/Queue.py":'import _sk_fail; _sk_fail._("Queue")\n',"src/lib/quopri.py":'import _sk_fail; _sk_fail._("quopri")\n',"src/lib/repr.py":'import _sk_fail; _sk_fail._("repr")\n',"src/lib/rexec.py":'import _sk_fail; _sk_fail._("rexec")\n',"src/lib/rfc822.py":'import _sk_fail; _sk_fail._("rfc822")\n',"src/lib/rlcompleter.py":'import _sk_fail; _sk_fail._("rlcompleter")\n',"src/lib/robotparser.py":'import _sk_fail; _sk_fail._("robotparser")\n',"src/lib/runpy.py":'import _sk_fail; _sk_fail._("runpy")\n',"src/lib/sched.py":'import _sk_fail; _sk_fail._("sched")\n',"src/lib/sets.py":'import _sk_fail; _sk_fail._("sets")\n',"src/lib/sgmllib.py":'import _sk_fail; _sk_fail._("sgmllib")\n',"src/lib/sha.py":'import _sk_fail; _sk_fail._("sha")\n',"src/lib/shelve.py":'import _sk_fail; _sk_fail._("shelve")\n',"src/lib/shlex.py":'import _sk_fail; _sk_fail._("shlex")\n',"src/lib/shutil.py":'import _sk_fail; _sk_fail._("shutil")\n',"src/lib/SimpleHTTPServer.py":'import _sk_fail; _sk_fail._("SimpleHTTPServer")\n',"src/lib/SimpleXMLRPCServer.py":'import _sk_fail; _sk_fail._("SimpleXMLRPCServer")\n',"src/lib/site.py":'import _sk_fail; _sk_fail._("site")\n',"src/lib/smtpd.py":'import _sk_fail; _sk_fail._("smtpd")\n',"src/lib/smtplib.py":'import _sk_fail; _sk_fail._("smtplib")\n',"src/lib/sndhdr.py":'import _sk_fail; _sk_fail._("sndhdr")\n',"src/lib/socket.py":'import _sk_fail; _sk_fail._("socket")\n',"src/lib/SocketServer.py":'import _sk_fail; _sk_fail._("SocketServer")\n',"src/lib/sqlite3/__init__.py":'import _sk_fail; _sk_fail._("sqlite3")\n',"src/lib/sre.py":'import _sk_fail; _sk_fail._("sre")\n',"src/lib/sre_compile.py":'import _sk_fail; _sk_fail._("sre_compile")\n',"src/lib/sre_constants.py":'import _sk_fail; _sk_fail._("sre_constants")\n',"src/lib/sre_parse.py":'import _sk_fail; _sk_fail._("sre_parse")\n',"src/lib/ssl.py":'import _sk_fail; _sk_fail._("ssl")\n',"src/lib/stat.py":'import _sk_fail; _sk_fail._("stat")\n',"src/lib/statvfs.py":'import _sk_fail; _sk_fail._("statvfs")\n',"src/lib/StringIO.py":'r"""File-like objects that read from or write to a string buffer.\n\nThis implements (nearly) all stdio methods.\n\nf = StringIO() # ready for writing\nf = StringIO(buf) # ready for reading\nf.close() # explicitly release resources held\nflag = f.isatty() # always false\npos = f.tell() # get current position\nf.seek(pos) # set current position\nf.seek(pos, mode) # mode 0: absolute; 1: relative; 2: relative to EOF\nbuf = f.read() # read until EOF\nbuf = f.read(n) # read up to n bytes\nbuf = f.readline() # read until end of line (\'\\n\') or EOF\nlist = f.readlines()# list of f.readline() results until EOF\nf.truncate([size]) # truncate file at to at most size (default: current pos)\nf.write(buf) # write at current position\nf.writelines(list) # for line in list: f.write(line)\nf.getvalue() # return whole file\'s contents as a string\n\nNotes:\n- Using a real file is often faster (but less convenient).\n- There\'s also a much faster implementation in C, called cStringIO, but\n it\'s not subclassable.\n- fileno() is left unimplemented so that code which uses it triggers\n an exception early.\n- Seeking far beyond EOF and then writing will insert real null\n bytes that occupy space in the buffer.\n- There\'s a simple test set (see end of this file).\n"""\n\n__all__ = ["StringIO"]\n\ndef _complain_ifclosed(closed):\n if closed:\n raise ValueError("I/O operation on closed file")\n\nclass StringIO:\n """class StringIO([buffer])\n\n When a StringIO object is created, it can be initialized to an existing\n string by passing the string to the constructor. If no string is given,\n the StringIO will start empty.\n\n The StringIO object can accept either Unicode or 8-bit strings, but\n mixing the two may take some care. If both are used, 8-bit strings that\n cannot be interpreted as 7-bit ASCII (that use the 8th bit) will cause\n a UnicodeError to be raised when getvalue() is called.\n """\n def __init__(self, buf = \'\'):\n # Force self.buf to be a string or unicode\n if not isinstance(buf, str):\n buf = str(buf)\n self.buf = buf\n self.len = len(buf)\n self.buflist = []\n self.pos = 0\n self.closed = False\n self.softspace = 0\n\n def __iter__(self):\n return self\n\n def next(self):\n """A file object is its own iterator, for example iter(f) returns f\n (unless f is closed). When a file is used as an iterator, typically\n in a for loop (for example, for line in f: print line), the next()\n method is called repeatedly. This method returns the next input line,\n or raises StopIteration when EOF is hit.\n """\n _complain_ifclosed(self.closed)\n r = self.readline()\n if not r:\n raise StopIteration\n return r\n\n def close(self):\n """Free the memory buffer.\n """\n if not self.closed:\n self.closed = True\n self.buf = None\n self.pos = None\n\n def isatty(self):\n """Returns False because StringIO objects are not connected to a\n tty-like device.\n """\n _complain_ifclosed(self.closed)\n return False\n\n def seek(self, pos, mode = 0):\n """Set the file\'s current position.\n\n The mode argument is optional and defaults to 0 (absolute file\n positioning); other values are 1 (seek relative to the current\n position) and 2 (seek relative to the file\'s end).\n\n There is no return value.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n if mode == 1:\n pos += self.pos\n elif mode == 2:\n pos += self.len\n self.pos = max(0, pos)\n\n def tell(self):\n """Return the file\'s current position."""\n _complain_ifclosed(self.closed)\n return self.pos\n\n def read(self, n = -1):\n """Read at most size bytes from the file\n (less if the read hits EOF before obtaining size bytes).\n\n If the size argument is negative or omitted, read all data until EOF\n is reached. The bytes are returned as a string object. An empty\n string is returned when EOF is encountered immediately.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n if n is None or n < 0:\n newpos = self.len\n else:\n newpos = min(self.pos+n, self.len)\n r = self.buf[self.pos:newpos]\n self.pos = newpos\n return r\n\n def readline(self, length=None):\n r"""Read one entire line from the file.\n\n A trailing newline character is kept in the string (but may be absent\n when a file ends with an incomplete line). If the size argument is\n present and non-negative, it is a maximum byte count (including the\n trailing newline) and an incomplete line may be returned.\n\n An empty string is returned only when EOF is encountered immediately.\n\n Note: Unlike stdio\'s fgets(), the returned string contains null\n characters (\'\\0\') if they occurred in the input.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n i = self.buf.find(\'\\n\', self.pos)\n if i < 0:\n newpos = self.len\n else:\n newpos = i+1\n if length is not None and length >= 0:\n if self.pos + length < newpos:\n newpos = self.pos + length\n r = self.buf[self.pos:newpos]\n self.pos = newpos\n return r\n\n def readlines(self, sizehint = 0):\n """Read until EOF using readline() and return a list containing the\n lines thus read.\n\n If the optional sizehint argument is present, instead of reading up\n to EOF, whole lines totalling approximately sizehint bytes (or more\n to accommodate a final whole line).\n """\n total = 0\n lines = []\n line = self.readline()\n while line:\n lines.append(line)\n total += len(line)\n if 0 < sizehint <= total:\n break\n line = self.readline()\n return lines\n\n def truncate(self, size=None):\n """Truncate the file\'s size.\n\n If the optional size argument is present, the file is truncated to\n (at most) that size. The size defaults to the current position.\n The current file position is not changed unless the position\n is beyond the new file size.\n\n If the specified size exceeds the file\'s current size, the\n file remains unchanged.\n """\n _complain_ifclosed(self.closed)\n if size is None:\n size = self.pos\n elif size < 0:\n raise IOError(22, "Negative size not allowed")\n elif size < self.pos:\n self.pos = size\n self.buf = self.getvalue()[:size]\n self.len = size\n\n def write(self, s):\n """Write a string to the file.\n\n There is no return value.\n """\n _complain_ifclosed(self.closed)\n if not s: return\n # Force s to be a string or unicode\n if not isinstance(s, str):\n s = str(s)\n spos = self.pos\n slen = self.len\n if spos == slen:\n self.buflist.append(s)\n self.len = self.pos = spos + len(s)\n return\n if spos > slen:\n self.buflist.append(\'\\0\'*(spos - slen))\n slen = spos\n newpos = spos + len(s)\n if spos < slen:\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = [self.buf[:spos], s, self.buf[newpos:]]\n self.buf = \'\'\n if newpos > slen:\n slen = newpos\n else:\n self.buflist.append(s)\n slen = newpos\n self.len = slen\n self.pos = newpos\n\n def writelines(self, iterable):\n """Write a sequence of strings to the file. The sequence can be any\n iterable object producing strings, typically a list of strings. There\n is no return value.\n\n (The name is intended to match readlines(); writelines() does not add\n line separators.)\n """\n write = self.write\n for line in iterable:\n write(line)\n\n def flush(self):\n """Flush the internal buffer\n """\n _complain_ifclosed(self.closed)\n\n def getvalue(self):\n """\n Retrieve the entire contents of the "file" at any time before\n the StringIO object\'s close() method is called.\n\n The StringIO object can accept either Unicode or 8-bit strings,\n but mixing the two may take some care. If both are used, 8-bit\n strings that cannot be interpreted as 7-bit ASCII (that use the\n 8th bit) will cause a UnicodeError to be raised when getvalue()\n is called.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n return self.buf\n',"src/lib/stringold.py":'import _sk_fail; _sk_fail._("stringold")\n',"src/lib/stringprep.py":'import _sk_fail; _sk_fail._("stringprep")\n',"src/lib/struct.py":'import _sk_fail; _sk_fail._("struct")\n',"src/lib/subprocess.py":'import _sk_fail; _sk_fail._("subprocess")\n',"src/lib/sunau.py":'import _sk_fail; _sk_fail._("sunau")\n',"src/lib/sunaudio.py":'import _sk_fail; _sk_fail._("sunaudio")\n',"src/lib/symbol.py":'import _sk_fail; _sk_fail._("symbol")\n',"src/lib/symtable.py":'import _sk_fail; _sk_fail._("symtable")\n',"src/lib/tabnanny.py":'import _sk_fail; _sk_fail._("tabnanny")\n',"src/lib/tarfile.py":'import _sk_fail; _sk_fail._("tarfile")\n',"src/lib/telnetlib.py":'import _sk_fail; _sk_fail._("telnetlib")\n',"src/lib/tempfile.py":'import _sk_fail; _sk_fail._("tempfile")\n',"src/lib/test/ann_module.py":"\n\n\"\"\"\nThe module for testing variable annotations.\nEmpty lines above are for good reason (testing for correct line numbers)\n\"\"\"\n\n# from typing import Optional\n# from functools import wraps\n\n__annotations__[1] = 2\n\nclass C:\n\n x = 5; #y: Optional['C'] = None\n\n# from typing import Tuple\nx: int = 5; y: str = x;# f: Tuple[int, int]\n\nclass M(type):\n\n __annotations__['123'] = 123\n o: type = object\n\n(pars): bool = True\n\nclass D(C):\n j: str = 'hi'; k: str= 'bye'\n\n# from types import new_class\n# h_class = new_class('H', (C,))\n# j_class = new_class('J')\n\nclass F():\n z: int = 5\n def __init__(self, x):\n pass\n\nclass Y(F):\n def __init__(self):\n super(F, self).__init__(123)\n\nclass Meta(type):\n def __new__(meta, name, bases, namespace):\n return super().__new__(meta, name, bases, namespace)\n\nclass S(metaclass = Meta):\n x: str = 'something'\n y: str = 'something else'\n\n# def foo(x: int = 10):\n# def bar(y: List[str]):\n# x: str = 'yes'\n# bar()\n\n# def dec(func):\n# @wraps(func)\n# def wrapper(*args, **kwargs):\n# return func(*args, **kwargs)\n# return wrapper\n","src/lib/test/ann_module2.py":'"""\nSome correct syntax for variable annotation here.\nMore examples are in test_grammar and test_parser.\n"""\n\n# from typing import no_type_check, ClassVar\n\ni: int = 1\nj: int\nx: float = i/10\n\ndef f():\n # class C: ...\n class C: pass\n return C()\n\nf().new_attr: object = object()\n\nclass C:\n def __init__(self, x: int) -> None:\n self.x = x\n\nc = C(5)\nc.new_attr: int = 10\n\n__annotations__ = {}\n\n\n# @no_type_check\n# class NTC:\n# def meth(self, param: complex) -> None:\n# ...\n\n# class CV:\n# var: ClassVar[\'CV\']\n\n# CV.var = CV()\n',"src/lib/test/ann_module3.py":'"""\nCorrect syntax for variable annotation that should fail at runtime\nin a certain manner. More examples are in test_grammar and test_parser.\n"""\n\ndef f_bad_ann():\n __annotations__[1] = 2\n\nclass C_OK:\n def __init__(self, x: int) -> None:\n self.x: no_such_name = x # This one is OK as proposed by Guido\n\nclass D_bad_ann:\n def __init__(self, x: int) -> None:\n sfel.y: int = 0\n\ndef g_bad_ann():\n no_such_name.attr: int = 0\n',"src/lib/test/bad_getattr.py":'x = 1\n\n__getattr__ = "Surprise!"\n__dir__ = "Surprise again!"\n',"src/lib/test/bad_getattr2.py":'def __getattr__():\n "Bad one"\n\nx = 1\n\ndef __dir__(bad_sig):\n return []\n',"src/lib/test/bad_getattr3.py":"def __getattr__(name):\n global __getattr__\n if name != 'delgetattr':\n raise AttributeError\n del __getattr__\n raise AttributeError\n","src/lib/test/decimaltestdata/__init__.py":'import _sk_fail; _sk_fail._("decimaltestdata")\n',"src/lib/test/good_getattr.py":"x = 1\n\ndef __dir__():\n return ['a', 'b', 'c']\n\ndef __getattr__(name):\n if name == \"yolo\":\n raise AttributeError(\"Deprecated, use whatever instead\")\n return f\"There is {name}\"\n\ny = 2\n","src/lib/test/test_support.py":'"""Supporting definitions for the Python regression tests."""\n\nif __name__ != \'test.test_support\':\n raise ImportError(\'test_support must be imported from the test package\')\n\nimport unittest\n\n\n# def run_unittest(*classes):\n# """Run tests from unittest.TestCase-derived classes."""\n# valid_types = (unittest.TestSuite, unittest.TestCase)\n# suite = unittest.TestSuite()\n# for cls in classes:\n# if isinstance(cls, str):\n# if cls in sys.modules:\n# suite.addTest(unittest.findTestCases(sys.modules[cls]))\n# else:\n# raise ValueError("str arguments must be keys in sys.modules")\n# elif isinstance(cls, valid_types):\n# suite.addTest(cls)\n# else:\n# suite.addTest(unittest.makeSuite(cls))\n# _run_suite(suite)\n\ndef run_unittest(*classes):\n """Run tests from unittest.TestCase-derived classes."""\n for cls in classes:\n print cls\n if issubclass(cls, unittest.TestCase):\n cls().main()\n else:\n print "Don\'t know what to do with ", cls\n',"src/lib/test/__init__.py":"__author__ = 'bmiller'\n\ndef testEqual(actual, expected):\n if type(expected) == type(1):\n if actual == expected:\n print('Pass')\n return True\n elif type(expected) == type(1.11):\n if abs(actual-expected) < 0.00001:\n print('Pass')\n return True\n else:\n if actual == expected:\n print('Pass')\n return True\n print('Test Failed: expected ' + str(expected) + ' but got ' + str(actual))\n return False\n\ndef testNotEqual(actual, expected):\n pass\n\n","src/lib/textwrap.py":"\"\"\"Text wrapping and filling.\n\"\"\"\n\n# Copyright (C) 1999-2001 Gregory P. Ward.\n# Copyright (C) 2002, 2003 Python Software Foundation.\n# Written by Greg Ward \n\nimport re, string\n\n__all__ = ['TextWrapper', 'wrap', 'fill', 'dedent', 'indent', 'shorten']\n\n# Hardcode the recognized whitespace characters to the US-ASCII\n# whitespace characters. The main reason for doing this is that\n# some Unicode spaces (like \\u00a0) are non-breaking whitespaces.\n_whitespace = '\\t\\n\\x0b\\x0c\\r '\n\nclass TextWrapper:\n \"\"\"\n Object for wrapping/filling text. The public interface consists of\n the wrap() and fill() methods; the other methods are just there for\n subclasses to override in order to tweak the default behaviour.\n If you want to completely replace the main wrapping algorithm,\n you'll probably have to override _wrap_chunks().\n Several instance attributes control various aspects of wrapping:\n width (default: 70)\n the maximum width of wrapped lines (unless break_long_words\n is false)\n initial_indent (default: \"\")\n string that will be prepended to the first line of wrapped\n output. Counts towards the line's width.\n subsequent_indent (default: \"\")\n string that will be prepended to all lines save the first\n of wrapped output; also counts towards each line's width.\n expand_tabs (default: true)\n Expand tabs in input text to spaces before further processing.\n Each tab will become 0 .. 'tabsize' spaces, depending on its position\n in its line. If false, each tab is treated as a single character.\n tabsize (default: 8)\n Expand tabs in input text to 0 .. 'tabsize' spaces, unless\n 'expand_tabs' is false.\n replace_whitespace (default: true)\n Replace all whitespace characters in the input text by spaces\n after tab expansion. Note that if expand_tabs is false and\n replace_whitespace is true, every tab will be converted to a\n single space!\n fix_sentence_endings (default: false)\n Ensure that sentence-ending punctuation is always followed\n by two spaces. Off by default because the algorithm is\n (unavoidably) imperfect.\n break_long_words (default: true)\n Break words longer than 'width'. If false, those words will not\n be broken, and some lines might be longer than 'width'.\n break_on_hyphens (default: true)\n Allow breaking hyphenated words. If true, wrapping will occur\n preferably on whitespaces and right after hyphens part of\n compound words.\n drop_whitespace (default: true)\n Drop leading and trailing whitespace from lines.\n max_lines (default: None)\n Truncate wrapped lines.\n placeholder (default: ' [...]')\n Append to the last line of truncated text.\n \"\"\"\n\n unicode_whitespace_trans = {}\n # uspace = ord(' ')\n uspace = ' '\n for x in _whitespace:\n # unicode_whitespace_trans[ord(x)] = uspace\n unicode_whitespace_trans[x] = uspace\n\n # This funky little regex is just the trick for splitting\n # text up into word-wrappable chunks. E.g.\n # \"Hello there -- you goof-ball, use the -b option!\"\n # splits into\n # Hello/ /there/ /--/ /you/ /goof-/ball,/ /use/ /the/ /-b/ /option!\n # (after stripping out empty strings).\n wordsep_re = re.compile(\n r'(\\s+|' # any whitespace\n r'[^\\s\\w]*\\w+[^0-9\\W]-(?=\\w+[^0-9\\W]))') # hyphenated words\n em_dash = re.compile(r'(\\s+|' # any whitespace\n r'[^\\s\\w]*\\w+[^0-9\\W]-(?=\\w+[^0-9\\W])|' # hyphenated words\n r'(?!^)-{2,}(?=\\w))') # em-dash\n\n \n # This less funky little regex just split on recognized spaces. E.g.\n # \"Hello there -- you goof-ball, use the -b option!\"\n # splits into\n # Hello/ /there/ /--/ /you/ /goof-ball,/ /use/ /the/ /-b/ /option!/\n wordsep_simple_re = re.compile(r'(\\s+)')\n\n\n # XXX this is not locale- or charset-aware -- string.lowercase\n # is US-ASCII only (and therefore English-only)\n sentence_end_re = re.compile(r'[a-z]' # lowercase letter\n r'[\\.\\!\\?]' # sentence-ending punct.\n r'[\\\"\\']?' # optional end-of-quote\n r'\\Z') # end of chunk\n sentence_end_re = r'[a-z][\\.\\!\\?][\\\"\\']?'\n\n def __init__(self,\n width=70,\n initial_indent=\"\",\n subsequent_indent=\"\",\n expand_tabs=True,\n replace_whitespace=True,\n fix_sentence_endings=False,\n break_long_words=True,\n drop_whitespace=True,\n break_on_hyphens=True,\n tabsize=8,\n max_lines=None,\n placeholder=' [...]'):\n self.width = width\n self.initial_indent = initial_indent\n self.subsequent_indent = subsequent_indent\n self.expand_tabs = expand_tabs\n self.replace_whitespace = replace_whitespace\n self.fix_sentence_endings = fix_sentence_endings\n self.break_long_words = break_long_words\n self.drop_whitespace = drop_whitespace\n self.break_on_hyphens = break_on_hyphens\n self.tabsize = tabsize\n self.max_lines = max_lines\n self.placeholder = placeholder\n\n\n # -- Private methods -----------------------------------------------\n # (possibly useful for subclasses to override)\n\n def _munge_whitespace(self, text):\n \"\"\"_munge_whitespace(text : string) -> string\n Munge whitespace in text: expand tabs and convert all other\n whitespace characters to spaces. Eg. \" foo\\\\tbar\\\\n\\\\nbaz\"\n becomes \" foo bar baz\".\n \"\"\"\n if self.expand_tabs:\n text = text.expandtabs(self.tabsize)\n if self.replace_whitespace:\n for key, val in self.unicode_whitespace_trans.items():\n text = text.replace(key, val)\n return text\n\n\n def _split(self, text):\n \"\"\"_split(text : string) -> [string]\n Split the text to wrap into indivisible chunks. Chunks are\n not quite the same as words; see _wrap_chunks() for full\n details. As an example, the text\n Look, goof-ball -- use the -b option!\n breaks into the following chunks:\n 'Look,', ' ', 'goof-', 'ball', ' ', '--', ' ',\n 'use', ' ', 'the', ' ', '-b', ' ', 'option!'\n if break_on_hyphens is True, or in:\n 'Look,', ' ', 'goof-ball', ' ', '--', ' ',\n 'use', ' ', 'the', ' ', '-b', ' ', option!'\n otherwise.\n \"\"\"\n if self.break_on_hyphens is True:\n chunks = self.wordsep_re.split(text)\n if \"--\" in text:\n chunks = [item \n for sublist in [self.em_dash.split(chunk) for chunk in chunks] \n for item in sublist]\n else:\n chunks = self.wordsep_simple_re.split(text)\n chunks = [c for c in chunks if c]\n return chunks\n\n def _fix_sentence_endings(self, chunks):\n \"\"\"_fix_sentence_endings(chunks : [string])\n Correct for sentence endings buried in 'chunks'. Eg. when the\n original text contains \"... foo.\\\\nBar ...\", munge_whitespace()\n and split() will convert that to [..., \"foo.\", \" \", \"Bar\", ...]\n which has one too few spaces; this method simply changes the one\n space to two.\n \"\"\"\n i = 0\n # patsearch = self.sentence_end_re.search\n while i < len(chunks)-1:\n if chunks[i+1] == \" \" and re.search(self.sentence_end_re, chunks[i]) and chunks[i][-1] in \".!?\\\"\\'\":\n chunks[i+1] = \" \"\n i += 2\n else:\n i += 1\n\n def _handle_long_word(self, reversed_chunks, cur_line, cur_len, width):\n \"\"\"_handle_long_word(chunks : [string],\n cur_line : [string],\n cur_len : int, width : int)\n Handle a chunk of text (most likely a word, not whitespace) that\n is too long to fit in any line.\n \"\"\"\n # Figure out when indent is larger than the specified width, and make\n # sure at least one character is stripped off on every pass\n if width < 1:\n space_left = 1\n else:\n space_left = width - cur_len\n\n # If we're allowed to break long words, then do so: put as much\n # of the next chunk onto the current line as will fit.\n if self.break_long_words:\n cur_line.append(reversed_chunks[-1][:space_left])\n reversed_chunks[-1] = reversed_chunks[-1][space_left:]\n\n # Otherwise, we have to preserve the long word intact. Only add\n # it to the current line if there's nothing already there --\n # that minimizes how much we violate the width constraint.\n elif not cur_line:\n cur_line.append(reversed_chunks.pop())\n\n # If we're not allowed to break long words, and there's already\n # text on the current line, do nothing. Next time through the\n # main loop of _wrap_chunks(), we'll wind up here again, but\n # cur_len will be zero, so the next line will be entirely\n # devoted to the long word that we can't handle right now.\n\n def _wrap_chunks(self, chunks):\n \"\"\"_wrap_chunks(chunks : [string]) -> [string]\n Wrap a sequence of text chunks and return a list of lines of\n length 'self.width' or less. (If 'break_long_words' is false,\n some lines may be longer than this.) Chunks correspond roughly\n to words and the whitespace between them: each chunk is\n indivisible (modulo 'break_long_words'), but a line break can\n come between any two chunks. Chunks should not have internal\n whitespace; ie. a chunk is either all whitespace or a \"word\".\n Whitespace chunks will be removed from the beginning and end of\n lines, but apart from that whitespace is preserved.\n \"\"\"\n lines = []\n if self.width <= 0:\n raise ValueError(\"invalid width %r (must be > 0)\" % self.width)\n if self.max_lines is not None:\n if self.max_lines > 1:\n indent = self.subsequent_indent\n else:\n indent = self.initial_indent\n if len(indent) + len(self.placeholder.lstrip()) > self.width:\n raise ValueError(\"placeholder too large for max width\")\n\n # Arrange in reverse order so items can be efficiently popped\n # from a stack of chucks.\n chunks.reverse()\n\n while chunks:\n\n # Start the list of chunks that will make up the current line.\n # cur_len is just the length of all the chunks in cur_line.\n cur_line = []\n cur_len = 0\n\n # Figure out which static string will prefix this line.\n if lines:\n indent = self.subsequent_indent\n else:\n indent = self.initial_indent\n\n # Maximum width for this line.\n width = self.width - len(indent)\n\n # First chunk on line is whitespace -- drop it, unless this\n # is the very beginning of the text (ie. no lines started yet).\n if self.drop_whitespace and chunks[-1].strip() == '' and lines:\n del chunks[-1]\n\n while chunks:\n l = len(chunks[-1])\n\n # Can at least squeeze this chunk onto the current line.\n if cur_len + l <= width:\n cur_line.append(chunks.pop())\n cur_len += l\n\n # Nope, this line is full.\n else:\n break\n\n # The current line is full, and the next chunk is too big to\n # fit on *any* line (not just this one).\n if chunks and len(chunks[-1]) > width:\n self._handle_long_word(chunks, cur_line, cur_len, width)\n cur_len = sum(map(len, cur_line))\n\n # If the last chunk on this line is all whitespace, drop it.\n if self.drop_whitespace and cur_line and cur_line[-1].strip() == '':\n cur_len -= len(cur_line[-1])\n del cur_line[-1]\n\n if cur_line:\n if (self.max_lines is None or\n len(lines) + 1 < self.max_lines or\n (not chunks or\n self.drop_whitespace and\n len(chunks) == 1 and\n not chunks[0].strip()) and cur_len <= width):\n # Convert current line back to a string and store it in\n # list of all lines (return value).\n lines.append(indent + ''.join(cur_line))\n else:\n while cur_line:\n if (cur_line[-1].strip() and\n cur_len + len(self.placeholder) <= width):\n cur_line.append(self.placeholder)\n lines.append(indent + ''.join(cur_line))\n break\n cur_len -= len(cur_line[-1])\n del cur_line[-1]\n else:\n if lines:\n prev_line = lines[-1].rstrip()\n if (len(prev_line) + len(self.placeholder) <=\n self.width):\n lines[-1] = prev_line + self.placeholder\n break\n lines.append(indent + self.placeholder.lstrip())\n break\n\n return lines\n\n def _split_chunks(self, text):\n text = self._munge_whitespace(text)\n return self._split(text)\n\n # -- Public interface ----------------------------------------------\n\n def wrap(self, text):\n \"\"\"wrap(text : string) -> [string]\n Reformat the single paragraph in 'text' so it fits in lines of\n no more than 'self.width' columns, and return a list of wrapped\n lines. Tabs in 'text' are expanded with string.expandtabs(),\n and all other whitespace characters (including newline) are\n converted to space.\n \"\"\"\n chunks = self._split_chunks(text)\n if self.fix_sentence_endings:\n self._fix_sentence_endings(chunks)\n return self._wrap_chunks(chunks)\n\n def fill(self, text):\n \"\"\"fill(text : string) -> string\n Reformat the single paragraph in 'text' to fit in lines of no\n more than 'self.width' columns, and return a new string\n containing the entire wrapped paragraph.\n \"\"\"\n return \"\\n\".join(self.wrap(text))\n\n\n# -- Convenience interface ---------------------------------------------\n\ndef wrap(text, width=70, **kwargs):\n \"\"\"Wrap a single paragraph of text, returning a list of wrapped lines.\n Reformat the single paragraph in 'text' so it fits in lines of no\n more than 'width' columns, and return a list of wrapped lines. By\n default, tabs in 'text' are expanded with string.expandtabs(), and\n all other whitespace characters (including newline) are converted to\n space. See TextWrapper class for available keyword args to customize\n wrapping behaviour.\n \"\"\"\n w = TextWrapper(width=width, **kwargs)\n return w.wrap(text)\n\ndef fill(text, width=70, **kwargs):\n \"\"\"Fill a single paragraph of text, returning a new string.\n Reformat the single paragraph in 'text' to fit in lines of no more\n than 'width' columns, and return a new string containing the entire\n wrapped paragraph. As with wrap(), tabs are expanded and other\n whitespace characters converted to space. See TextWrapper class for\n available keyword args to customize wrapping behaviour.\n \"\"\"\n w = TextWrapper(width=width, **kwargs)\n return w.fill(text)\n\ndef shorten(text, width, **kwargs):\n \"\"\"Collapse and truncate the given text to fit in the given width.\n The text first has its whitespace collapsed. If it then fits in\n the *width*, it is returned as is. Otherwise, as many words\n as possible are joined and then the placeholder is appended::\n >>> textwrap.shorten(\"Hello world!\", width=12)\n 'Hello world!'\n >>> textwrap.shorten(\"Hello world!\", width=11)\n 'Hello [...]'\n \"\"\"\n w = TextWrapper(width=width, max_lines=1, **kwargs)\n return w.fill(' '.join(text.strip().split()))\n\n\n# -- Loosely related functionality -------------------------------------\n\n# _whitespace_only_re = re.compile('^[ \\t]+$', re.MULTILINE)\n# _leading_whitespace_re = re.compile('(^[ \\t]*)(?:[^ \\t\\n])', re.MULTILINE)\n\ndef dedent(text):\n \"\"\"Remove any common leading whitespace from every line in `text`.\n This can be used to make triple-quoted strings line up with the left\n edge of the display, while still presenting them in the source code\n in indented form.\n Note that tabs and spaces are both treated as whitespace, but they\n are not equal: the lines \" hello\" and \"\\\\thello\" are\n considered to have no common leading whitespace.\n Entirely blank lines are normalized to a newline character.\n \"\"\"\n # Look for the longest leading string of spaces and tabs common to\n # all lines.\n margin = None\n\n indents = re.findall(r'(^[ \\t]*)(?:[^ \\t\\n])',text, re.MULTILINE)\n for indent in indents:\n if margin is None:\n margin = indent\n\n # Current line more deeply indented than previous winner:\n # no change (previous winner is still on top).\n elif indent.startswith(margin):\n pass\n\n # Current line consistent with and no deeper than previous winner:\n # it's the new winner.\n elif margin.startswith(indent):\n margin = indent\n\n # Find the largest common whitespace between current line and previous\n # winner.\n else:\n for i, (x, y) in enumerate(zip(margin, indent)):\n if x != y:\n margin = margin[:i]\n break\n # sanity check (testing/debugging only)\n if 0 and margin:\n for line in text.split(\"\\n\"):\n assert not line or line.startswith(margin), \\\n \"line = %r, margin = %r\" % (line, margin)\n\n if margin:\n lines = [line[len(margin):] \n if line.strip()\n else line.strip() \n for line in text.split(\"\\n\")]\n text = \"\\n\".join(lines)\n return text\n\n\ndef indent(text, prefix, predicate=None):\n \"\"\"Adds 'prefix' to the beginning of selected lines in 'text'.\n If 'predicate' is provided, 'prefix' will only be added to the lines\n where 'predicate(line)' is True. If 'predicate' is not provided,\n it will default to adding 'prefix' to all non-empty lines that do not\n consist solely of whitespace characters.\n \"\"\"\n if predicate is None:\n def predicate(line):\n return line.strip()\n\n def prefixed_lines():\n for line in text.splitlines(True):\n yield (prefix + line if predicate(line) else line)\n return ''.join(prefixed_lines())\n\n\nif __name__ == \"__main__\":\n #print dedent(\"\\tfoo\\n\\tbar\")\n #print dedent(\" \\thello there\\n \\t how are you?\")\n print(dedent(\"Hello there.\\n This is indented.\"))","src/lib/this.py":'import _sk_fail; _sk_fail._("this")\n',"src/lib/threading.py":'import _sk_fail; _sk_fail._("threading")\n',"src/lib/timeit.py":'import _sk_fail; _sk_fail._("timeit")\n',"src/lib/toaiff.py":'import _sk_fail; _sk_fail._("toaiff")\n',"src/lib/trace.py":'import _sk_fail; _sk_fail._("trace")\n',"src/lib/traceback.py":'import _sk_fail; _sk_fail._("traceback")\n',"src/lib/tty.py":'import _sk_fail; _sk_fail._("tty")\n',"src/lib/types.py":'"""\nThis file was modified from CPython.\nCopyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,\n2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved\n"""\n"""Define names for all type symbols known in the standard interpreter.\nTypes that are part of optional modules (e.g. array) are not listed.\n"""\nimport sys\n\n# Iterators in Python aren\'t a matter of type but of protocol. A large\n# and changing number of builtin types implement *some* flavor of\n# iterator. Don\'t check the type! Use hasattr to check for both\n# "__iter__" and "next" attributes instead.\nMappingProxyType = type(type.__dict__)\nWrapperDescriptorType = type(object.__init__)\nMethodWrapperType = type(object().__str__)\nMethodDescriptorType = type(str.join)\nClassMethodDescriptorType = type(dict.__dict__[\'fromkeys\'])\n\nNoneType = type(None)\nTypeType = type\nObjectType = object\nIntType = int\ntry:\n LongType = long\nexcept: pass\nFloatType = float\nBooleanType = bool\ntry:\n ComplexType = complex\nexcept NameError:\n pass\nStringType = str\n\n# StringTypes is already outdated. Instead of writing "type(x) in\n# types.StringTypes", you should use "isinstance(x, basestring)". But\n# we keep around for compatibility with Python 2.2.\ntry:\n UnicodeType = unicode\n StringTypes = (StringType, UnicodeType)\nexcept NameError:\n StringTypes = (StringType,)\n\nBufferType = buffer\n\nTupleType = tuple\nListType = list\nDictType = DictionaryType = dict\n\ndef _f(): pass\nFunctionType = type(_f)\nLambdaType = type(lambda: None) # Same as FunctionType\n#CodeType = type(_f.func_code)\n\ndef _g():\n yield 1\nGeneratorType = type(_g())\n\nclass _C:\n def _m(self): pass\nClassType = type(_C)\nUnboundMethodType = type(_C._m) # Same as MethodType\n_x = _C()\nInstanceType = type(_x)\nMethodType = type(_x._m)\nBuiltinFunctionType = type(len)\nBuiltinMethodType = type([].append) # Same as BuiltinFunctionType\n\nModuleType = type(sys)\nFileType = file\ntry:\n XRangeType = xrange\nexcept NameError:\n pass\n\n# try:\n# raise TypeError\n# except TypeError:\n# tb = sys.exc_info()[2]\n# TracebackType = type(tb)\n# FrameType = type(tb.tb_frame)\n# del tb\n\nSliceType = slice\nEllipsisType = type(Ellipsis)\n\n# DictProxyType = type(TypeType.__dict__)\nNotImplementedType = type(NotImplemented)\n\n# For Jython, the following two types are identical\n# GetSetDescriptorType = type(FunctionType.func_code)\n# MemberDescriptorType = type(FunctionType.func_globals)\n\ndel sys, _f, _g, _C, _x # Not for export\n__all__ = list(n for n in globals() if n[:1] != \'_\')\n\nGenericAlias = type(type[int])',"src/lib/unittest/gui.py":"import document\nfrom unittest import TestCase\n\nclass TestCaseGui(TestCase):\n def __init__(self):\n TestCase.__init__(self)\n self.divid = document.currentDiv()\n self.mydiv = document.getElementById(self.divid)\n res = document.getElementById(self.divid+'_unit_results')\n if res:\n self.resdiv = res\n res.innerHTML = ''\n else:\n self.resdiv = document.createElement('div')\n self.resdiv.setAttribute('id',self.divid+'_unit_results')\n self.resdiv.setAttribute('class','unittest-results')\n self.mydiv.appendChild(self.resdiv)\n\n\n def main(self):\n t = document.createElement('table')\n self.resTable = t\n self.resdiv.appendChild(self.resTable)\n\n headers = ['Result','Actual Value','Expected Value','Notes']\n row = document.createElement('tr')\n for item in headers:\n head = document.createElement('th')\n head.setAttribute('class','ac-feedback')\n head.innerHTML = item\n head.setCSS('text-align','center')\n row.appendChild(head)\n self.resTable.appendChild(row)\n\n for func in self.tlist:\n try:\n self.setUp()\n func()\n self.tearDown()\n except Exception as e:\n self.appendResult('Error', None, None, e)\n self.numFailed += 1\n self.showSummary()\n\n def appendResult(self,res,actual,expected,param):\n trimActual = False\n if len(str(actual)) > 15:\n trimActual = True\n actualType = type(actual)\n trimExpected = False\n if len(str(expected)) > 15:\n trimExpected = True\n expectedType = type(expected)\n row = document.createElement('tr')\n err = False\n if res == 'Error':\n err = True\n msg = 'Error: %s' % param\n errorData = document.createElement('td')\n errorData.setAttribute('class','ac-feedback')\n errorData.innerHTML = 'ERROR'\n errorData.setCSS('background-color','#de8e96')\n errorData.setCSS('text-align','center')\n row.appendChild(errorData)\n elif res:\n passed = document.createElement('td')\n passed.setAttribute('class','ac-feedback')\n passed.innerHTML = 'Pass'\n passed.setCSS('background-color','#83d382')\n passed.setCSS('text-align','center')\n row.appendChild(passed)\n self.numPassed += 1\n else:\n fail = document.createElement('td')\n fail.setAttribute('class','ac-feedback')\n fail.innerHTML = 'Fail'\n fail.setCSS('background-color','#de8e96')\n fail.setCSS('text-align','center')\n row.appendChild(fail)\n self.numFailed += 1\n\n\n act = document.createElement('td')\n act.setAttribute('class','ac-feedback')\n if trimActual:\n actHTML = str(actual)[:5] + \"...\" + str(actual)[-5:]\n if actualType == str:\n actHTML = repr(actHTML)\n act.innerHTML = actHTML\n else:\n act.innerHTML = repr(actual)\n act.setCSS('text-align','center')\n row.appendChild(act)\n\n expect = document.createElement('td')\n expect.setAttribute('class','ac-feedback')\n\n if trimExpected:\n expectedHTML = str(expected)[:5] + \"...\" + str(expected)[-5:]\n if expectedType == str:\n expectedHTML = repr(expectedHTML)\n expect.innerHTML = expectedHTML\n else:\n expect.innerHTML = repr(expected)\n expect.setCSS('text-align','center')\n row.appendChild(expect)\n inp = document.createElement('td')\n inp.setAttribute('class','ac-feedback')\n\n if err:\n inp.innerHTML = msg\n else:\n inp.innerHTML = param\n inp.setCSS('text-align','center')\n row.appendChild(inp)\n self.resTable.appendChild(row)\n\n\n def showSummary(self):\n pct = self.numPassed / (self.numPassed+self.numFailed) * 100\n pTag = document.createElement('p')\n pTag.innerHTML = \"You passed: \" + str(pct) + \"% of the tests\"\n self.resdiv.appendChild(pTag)\n","src/lib/unittest/__init__.py":'__author__ = \'bmiller\'\n\'\'\'\nThis is the start of something that behaves like\nthe unittest module from cpython.\n\n\'\'\'\nimport re\n\nclass _AssertRaisesContext(object):\n """A context manager used to implement TestCase.assertRaises* methods."""\n def __init__(self, expected, test_case):\n self.test_case = test_case\n self.expected = expected\n self.exception = None\n\n def _is_subtype(self, expected, basetype):\n if isinstance(expected, tuple):\n return all(self._is_subtype(e, basetype) for e in expected)\n return isinstance(expected, type) and issubclass(expected, basetype)\n\n def handle(self, args, kwargs):\n """\n If args is empty, assertRaises is being used as a\n context manager, so return self.\n If args is not empty, call a callable passing positional and keyword\n arguments.\n """\n try:\n if not self._is_subtype(self.expected, BaseException):\n raise TypeError(\'assertRaises() arg 1 must be an exception type or tuple of exception types\')\n if not args:\n return self\n\n callable_obj = args[0]\n args = args[1:]\n with self:\n callable_obj(*args, **kwargs) \n\n finally:\n # bpo-23890: manually break a reference cycle\n self = None\n\n def __enter__(self):\n return self\n\n def __exit__(self, exc_type, exc_value, tb):\n res = True\n feedback = ""\n self.exception = exc_value\n try:\n act_exc = exc_type.__name__\n except AttributeError:\n act_exc = str(exc_type)\n try:\n exp_exc = self.expected.__name__\n except AttributeError:\n exp_exc = str(self.expected)\n\n if exc_type is None:\n res = False\n feedback = "{} not raised".format(exp_exc)\n elif not issubclass(exc_type, self.expected):\n res = False\n feedback = "Expected {} but got {}".format(exp_exc, act_exc)\n\n self.test_case.appendResult(res, act_exc, exp_exc, feedback)\n return True\n\n\nclass TestCase(object):\n def __init__(self):\n self.numPassed = 0\n self.numFailed = 0\n self.assertPassed = 0\n self.assertFailed = 0\n self.verbosity = 1\n self.tlist = []\n testNames = {}\n for name in dir(self):\n if name[:4] == \'test\' and name not in testNames:\n self.tlist.append(getattr(self,name))\n testNames[name]=True\n\n def setUp(self):\n pass\n\n def tearDown(self):\n pass\n \n def cleanName(self,funcName):\n return funcName.__func__.__name__\n\n def main(self):\n\n for func in self.tlist:\n if self.verbosity > 1:\n print(\'Running %s\' % self.cleanName(func))\n try:\n self.setUp()\n self.assertPassed = 0\n self.assertFailed = 0\n func()\n self.tearDown()\n if self.assertFailed == 0:\n self.numPassed += 1\n else:\n self.numFailed += 1\n print(\'Tests failed in %s \' % self.cleanName(func))\n except Exception as e:\n self.assertFailed += 1\n self.numFailed += 1\n print(\'Test threw exception in %s (%s)\' % (self.cleanName(func), e))\n self.showSummary()\n\n def assertEqual(self, actual, expected, feedback=""):\n res = actual==expected\n if not res and feedback == "":\n feedback = "Expected %s to equal %s" % (str(actual),str(expected))\n self.appendResult(res, actual ,expected, feedback)\n\n def assertNotEqual(self, actual, expected, feedback=""):\n res = actual != expected\n if not res and feedback == "":\n feedback = "Expected %s to not equal %s" % (str(actual),str(expected))\n self.appendResult(res, actual, expected, feedback)\n\n def assertTrue(self,x, feedback=""):\n res = bool(x) is True\n if not res and feedback == "":\n feedback = "Expected %s to be True" % (str(x))\n self.appendResult(res, x, True, feedback)\n\n def assertFalse(self,x, feedback=""):\n res = not bool(x)\n if not res and feedback == "":\n feedback = "Expected %s to be False" % (str(x))\n self.appendResult(res, x, False, feedback)\n\n def assertIs(self,a,b, feedback=""):\n res = a is b\n if not res and feedback == "":\n feedback = "Expected %s to be the same object as %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertIsNot(self,a,b, feedback=""):\n res = a is not b\n if not res and feedback == "":\n feedback = "Expected %s to not be the same object as %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertIsNone(self,x, feedback=""):\n res = x is None\n if not res and feedback == "":\n feedback = "Expected %s to be None" % (str(x))\n self.appendResult(res, x, None, feedback)\n\n def assertIsNotNone(self,x, feedback=""):\n res = x is not None\n if not res and feedback == "":\n feedback = "Expected %s to not be None" % (str(x))\n self.appendResult(res, x, None, feedback)\n\n def assertIn(self, a, b, feedback=""):\n res = a in b\n if not res and feedback == "":\n feedback = "Expected %s to be in %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertNotIn(self, a, b, feedback=""):\n res = a not in b\n if not res and feedback == "":\n feedback = "Expected %s to not be in %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertIsInstance(self,a,b, feedback=""):\n res = isinstance(a,b)\n if not res and feedback == "":\n feedback = "Expected %s to be an instance of %s" % (str(a), str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertNotIsInstance(self,a,b, feedback=""):\n res = not isinstance(a,b)\n if not res and feedback == "":\n feedback = "Expected %s to not be an instance of %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertRegex(self, text, expected_regex, feedback=""):\n """Fail the test unless the text matches the regular expression."""\n if isinstance(expected_regex, (str, )): #bytes\n assert expected_regex, "expected_regex must not be empty."\n expected_regex = re.compile(expected_regex)\n if not expected_regex.search(text):\n res = False\n if feedback == "":\n feedback = "Regex didn\'t match: %r not found in %r" % (\n repr(expected_regex), text)\n else:\n res = True\n self.appendResult(res, text, expected_regex, feedback)\n\n def assertNotRegex(self, text, unexpected_regex, feedback=""):\n """Fail the test if the text matches the regular expression."""\n if isinstance(unexpected_regex, (str, )): # bytes\n unexpected_regex = re.compile(unexpected_regex)\n match = unexpected_regex.search(text)\n if match:\n feedback = \'Regex matched: %r matches %r in %r\' % (\n text[match.start() : match.end()],\n repr(unexpected_regex),\n text)\n # _formatMessage ensures the longMessage option is respected\n self.appendResult(not bool(match), text, unexpected_regex, feedback)\n\n def assertAlmostEqual(self, a, b, places=7, feedback="", delta=None):\n\n if delta is not None:\n res = abs(a-b) <= delta\n else:\n if places is None:\n places = 7\n res = round(a-b, places) == 0\n \n if not res and feedback == "":\n feedback = "Expected %s to equal %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertNotAlmostEqual(self, a, b, places=7, feedback="", delta=None):\n\n if delta is not None:\n res = not (a == b) and abs(a - b) > delta\n else:\n if places is None:\n places = 7\n\n res = round(a-b, places) != 0\n\n if not res and feedback == "":\n feedback = "Expected %s to not equal %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertGreater(self,a,b, feedback=""):\n res = a > b\n if not res and feedback == "":\n feedback = "Expected %s to be greater than %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertGreaterEqual(self,a,b, feedback=""):\n res = a >= b\n if not res and feedback == "":\n feedback = "Expected %s to be >= %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertLess(self, a, b, feedback=""):\n res = a < b\n if not res and feedback == "":\n feedback = "Expected %s to be less than %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertLessEqual(self,a,b, feedback=""):\n res = a <= b\n if not res and feedback == "":\n feedback = "Expected %s to be <= %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def appendResult(self,res,actual,expected,feedback):\n if res:\n msg = \'Pass\'\n self.assertPassed += 1\n else:\n msg = \'Fail: \' + feedback\n print(msg)\n self.assertFailed += 1\n\n def assertRaises(self, expected_exception, *args, **kwargs):\n context = _AssertRaisesContext(expected_exception, self)\n try:\n return context.handle(args, kwargs)\n finally:\n # bpo-23890: manually break a reference cycle\n context = None\n\n def fail(self, msg=None):\n if msg is None:\n msg = \'Fail\'\n else:\n msg = \'Fail: \' + msg\n print(msg)\n self.assertFailed += 1\n\n def showSummary(self):\n # don\'t divde by zero\n # pct = self.numPassed / (self.numPassed+self.numFailed) * 100\n print("Ran %d tests, passed: %d failed: %d\\n" % (self.numPassed+self.numFailed,\n self.numPassed, self.numFailed))\n\n\n\ndef main(verbosity=1):\n glob = globals() # globals() still needs work\n for name in glob:\n if type(glob[name]) == type and issubclass(glob[name], TestCase):\n try:\n tc = glob[name]()\n tc.verbosity = verbosity\n tc.main()\n except:\n print("Uncaught Error in: ", name)\n',"src/lib/urllib2.py":'import _sk_fail; _sk_fail._("urllib2")\n',"src/lib/urlparse.py":'import _sk_fail; _sk_fail._("urlparse")\n',"src/lib/user.py":'import _sk_fail; _sk_fail._("user")\n',"src/lib/UserDict.py":'import _sk_fail; _sk_fail._("UserDict")\n',"src/lib/UserList.py":'import _sk_fail; _sk_fail._("UserList")\n',"src/lib/UserString.py":'import _sk_fail; _sk_fail._("UserString")\n',"src/lib/uu.py":'import _sk_fail; _sk_fail._("uu")\n',"src/lib/warnings.py":'import _sk_fail; _sk_fail._("warnings")\n',"src/lib/wave.py":'import _sk_fail; _sk_fail._("wave")\n',"src/lib/weakref.py":'import _sk_fail; _sk_fail._("weakref")\n',"src/lib/whichdb.py":'import _sk_fail; _sk_fail._("whichdb")\n',"src/lib/wsgiref/__init__.py":'import _sk_fail; _sk_fail._("wsgiref")\n',"src/lib/xdrlib.py":'import _sk_fail; _sk_fail._("xdrlib")\n',"src/lib/xml/dom/__init__.py":'import _sk_fail; _sk_fail._("dom")\n',"src/lib/xml/etree/__init__.py":'import _sk_fail; _sk_fail._("etree")\n',"src/lib/xml/parsers/__init__.py":'import _sk_fail; _sk_fail._("parsers")\n',"src/lib/xml/sax/__init__.py":'import _sk_fail; _sk_fail._("sax")\n',"src/lib/xml/__init__.py":'import _sk_fail; _sk_fail._("xml")\n',"src/lib/xmllib.py":'import _sk_fail; _sk_fail._("xmllib")\n',"src/lib/xmlrpclib.py":'import _sk_fail; _sk_fail._("xmlrpclib")\n',"src/lib/zipfile.py":'import _sk_fail; _sk_fail._("zipfile")\n',"src/lib/_abcoll.py":'import _sk_fail; _sk_fail._("_abcoll")\n',"src/lib/_LWPCookieJar.py":'import _sk_fail; _sk_fail._("_LWPCookieJar")\n',"src/lib/_MozillaCookieJar.py":'import _sk_fail; _sk_fail._("_MozillaCookieJar")\n',"src/lib/_sk_fail.py":'class NotImplementedImportError(ImportError, NotImplementedError): pass\n\ndef _(name):\n msg = "{} is not yet implemented in Skulpt".format(name)\n raise NotImplementedImportError(msg, name=name)\n',"src/lib/_threading_local.py":'import _sk_fail; _sk_fail._("_threading_local")\n',"src/lib/__future__.py":'import _sk_fail;_sk_fail._("__future__")\n',"src/lib/__phello__.foo.py":'import _sk_fail; _sk_fail._("__phello__.foo")\n',"src/builtin/sys.js":'var $builtinmodule=function(i){var t,n={},e=[],u=Sk.getSysArgv();for(t=0;tnew Sk.builtin.str("utf-8"))),n.getExecutionLimit=new Sk.builtin.func((function(){return null===Sk.execLimit?Sk.builtin.none.none$:new Sk.builtin.int_(Sk.execLimit)})),n.setExecutionLimit=new Sk.builtin.func((function(i){if(null===Sk.execLimit)throw new Sk.builtin.NotImplementedError("Execution limiting is not enabled");void 0!==i&&(Sk.execLimit=Sk.builtin.asnum$(i))})),n.resetTimeout=new Sk.builtin.func((function(){Sk.execStart=new Date})),n.getYieldLimit=new Sk.builtin.func((function(){return null===Sk.yieldLimit?Sk.builtin.none.none$:new Sk.builtin.int_(Sk.yieldLimit)})),n.setYieldLimit=new Sk.builtin.func((function(i){if(null===Sk.yieldLimit)throw new Sk.builtin.NotImplementedError("Yielding is not enabled");void 0!==i&&(Sk.yieldLimit=Sk.builtin.asnum$(i))})),n.debug=new Sk.builtin.func((function(){return Sk.builtin.none.none$}));const o=Sk.builtin.make_structseq("sys","float_info",{max:"DBL_MAX -- maximum representable finite float",max_exp:"DBL_MAX_EXP -- maximum int e such that radix**(e-1) is representable",max_10_exp:"DBL_MAX_10_EXP -- maximum int e such that 10**e is representable",min:"DBL_MIN -- Minimum positive normalized float",min_exp:"DBL_MIN_EXP -- minimum int e such that radix**(e-1) is a normalized float",min_10_exp:"DBL_MIN_10_EXP -- minimum int e such that 10**e is a normalized",dig:"DBL_DIG -- digits",mant_dig:"DBL_MANT_DIG -- mantissa digits",epsilon:"DBL_EPSILON -- Difference between 1 and the next representable float",radix:"FLT_RADIX -- radix of exponent",rounds:"FLT_ROUNDS -- rounding mode"});n.float_info=new o([Number.MAX_VALUE,Math.floor(Math.log2(Number.MAX_VALUE)),Math.floor(Math.log10(Number.MAX_VALUE)),Number.MIN_VALUE,Math.ceil(Math.log2(Number.MIN_VALUE)),Math.ceil(Math.log10(Number.MIN_VALUE)),15,Math.log2(Number.MAX_SAFE_INTEGER),Number.EPSILON,2,1].map((i=>Sk.ffi.remapToPy(i))));const s=Sk.builtin.make_structseq("sys","int_info",{bits_per_digit:"size of a digit in bits",sizeof_digit:"size in bytes of the C type used to represent a digit"});n.int_info=new s([30,4].map((i=>Sk.ffi.remapToPy(i))));const l=Sk.builtin.make_structseq("sys","hash_info",{width:"width of the type used for hashing, in bits",modulus:"prime number giving the modulus on which the hash function is based",inf:"value to be used for hash of a positive infinity",nan:"value to be used for hash of a nan",imag:"multiplier used for the imaginary part of a complex number",algorithm:"name of the algorithm for hashing of str, bytes and memoryviews",hash_bits:"internal output size of hash algorithm",seed_bits:"seed size of hash algorithm",cutoff:"small string optimization cutoff"});return n.hash_info=new l([32,536870911,314159,0,1000003,"siphash24",32,128,0].map((i=>Sk.ffi.remapToPy(i)))),n.__stdout__=new Sk.builtin.file(new Sk.builtin.str("/dev/stdout"),new Sk.builtin.str("w")),n.__stdin__=new Sk.builtin.file(new Sk.builtin.str("/dev/stdin"),new Sk.builtin.str("r")),n.stdout=n.__stdout__,n.stdin=n.__stdin__,n};',"src/lib/array.js":'function $builtinmodule(e){var n={},t=["c","b","B","u","h","H","i","I","l","L","f","d"];return n.__name__=new Sk.builtin.str("array"),n.array=Sk.misceval.buildClass(n,(function(e,n){n.__init__=new Sk.builtin.func((function(e,n,i){if(Sk.builtin.pyCheckArgsLen("__init__",arguments.length,2,3),-1==t.indexOf(Sk.ffi.remapToJs(n)))throw new Sk.builtin.ValueError("bad typecode (must be c, b, B, u, h, H, i, I, l, L, f or d)");if(i&&!Sk.builtin.checkIterable(i))throw new Sk.builtin.TypeError("iteration over non-sequence");if(e.$d.mp$ass_subscript(new Sk.builtin.str("typecode"),n),e.$d.mp$ass_subscript(new Sk.builtin.str("__module__"),new Sk.builtin.str("array")),e.typecode=n,void 0===i)e.internalIterable=new Sk.builtin.list;else if(i instanceof Sk.builtin.list)e.internalIterable=i;else{e.internalIterable=new Sk.builtin.list;for(let n=Sk.abstr.iter(i),t=n.tp$iternext();void 0!==t;t=n.tp$iternext())Sk.misceval.callsimArray(e.internalIterable.append,[e.internalIterable,t])}})),n.__repr__=new Sk.builtin.func((function(e){var n=Sk.ffi.remapToJs(e.typecode),t="";return Sk.ffi.remapToJs(e.internalIterable).length&&(t="c"==Sk.ffi.remapToJs(e.typecode)?", \'"+Sk.ffi.remapToJs(e.internalIterable).join("")+"\'":", "+Sk.ffi.remapToJs(Sk.misceval.callsimArray(e.internalIterable.__repr__,[e.internalIterable]))),new Sk.builtin.str("array(\'"+n+"\'"+t+")")})),n.__str__=n.__repr__,n.__getattribute__=new Sk.builtin.func((function(e,n){return e.tp$getattr(n)})),n.append=new Sk.builtin.func((function(e,n){return Sk.misceval.callsimArray(e.internalIterable.append,[e.internalIterable,n]),Sk.builtin.none.none$})),n.extend=new Sk.builtin.func((function(e,n){if(Sk.builtin.pyCheckArgsLen("__init__",arguments.length,2,2),!Sk.builtin.checkIterable(n))throw new Sk.builtin.TypeError("iteration over non-sequence");for(let t=Sk.abstr.iter(n),i=t.tp$iternext();void 0!==i;i=t.tp$iternext())Sk.misceval.callsimArray(e.internalIterable.append,[e.internalIterable,i])}))}),"array",[]),n}',"src/lib/calendar.js":'function $builtinmodule(e){const t={},{misceval:{chain:n},importModule:r}=Sk,importOrSuspend=e=>r(e,!1,!0);return n(importOrSuspend("datetime"),(e=>(t.datetime=e,importOrSuspend("itertools"))),(e=>(t.iterRepeat=e.$d.repeat,t.iterChain=e.$d.chain,calendarModule(t))))}function calendarModule(e){const{abstr:{setUpModuleMethods:t,numberBinOp:n,iter:r,objectGetItem:o},builtin:{bool:s,bool:{true$:m,false$:d},func:l,int_:i,list:c,none:{none$:f},str:h,slice:w,tuple:y,range:u,max:_,min:g,property:k,print:p,enumerate:$,ValueError:b},ffi:{remapToPy:M},misceval:{isTrue:T,iterator:C,arrayFromIterable:O,buildClass:L,richCompareBool:x,asIndexOrThrow:F,objectRepr:I,callsimArray:A},global:v,global:{strftime:E}}=Sk,S=new i(0),H=new i(1),D=new i(2),N=new i(3),R=new i(6),j=new i(7),J=new i(9),P=new i(12),Y=new i(13),U=new i(24),z=new i(60),le=(e,t)=>x(e,t,"LtE"),eq=(e,t)=>x(e,t,"Eq"),mod=(e,t)=>n(e,t,"Mod"),add=(e,t)=>n(e,t,"Add"),sub=(e,t)=>n(e,t,"Sub"),mul=(e,t)=>n(e,t,"Mult"),inc=e=>add(e,H),dec=e=>sub(e,H),mod7=e=>mod(e,j),getA=(e,t)=>e.tp$getattr(new h(t)),callA=(e,t,...n)=>A(e.tp$getattr(new h(t)),n);function*iterJs(e){const t=r(e);let n;for(;n=t.tp$iternext();)yield n}function iterFn(e,t){return e=r(e),new C((()=>{const n=e.tp$iternext();return n&&t(n)}),!0)}function makePyMethod(e,t,{args:n,name:r,doc:o,defaults:s}){t.co_varnames=["self",...n||[]],t.co_docstring=o?new h(o):f,s&&(t.$defaults=s),t.co_name=new h(r),t.co_qualname=new h(e+"."+r);const m=new l(t);return m.$module=Q.__name__,m}const{datetime:B,iterRepeat:W,iterChain:q}=e;let{MINYEAR:G,MAXYEAR:X,date:V}=B.$d;const K=getA(h,"center"),pyCenter=(e,t)=>A(K,[e,t]),pyRStrip=e=>new h(e.toString().trimRight());G=G.valueOf(),X=X.valueOf();const Q={__name__:new h("calendar"),__all__:M(["IllegalMonthError","IllegalWeekdayError","setfirstweekday","firstweekday","isleap","leapdays","weekday","monthrange","monthcalendar","prmonth","month","prcal","calendar","timegm","month_name","month_abbr","day_name","day_abbr","Calendar","TextCalendar","HTMLCalendar","LocaleTextCalendar","LocaleHTMLCalendar","weekheader"])};function makeErr(e,t){return L(Q,((e,n)=>{n.__init__=new l((function __init__(e,t){e.$attr=t})),n.__str__=new l((function __str__(e){return new h(t.replace("$",I(e.$attr)))}))}),e,[b])}const Z=makeErr("IllegalMonthError","bad month $; must be 1-12"),ee=makeErr("IllegalWeekdayError","bad weekday number $; must be 0 (Monday) to 6 (Sunday)"),te=1,ae=2,ne=[0,31,28,31,30,31,30,31,31,30,31,30,31];function mkLocalizedCls(e,t){t.__init__=new l((function __init__(e,t){e.format=t})),t.__getitem__=new l((function __getitem__(t,n){const r=o(e,n);if(n instanceof w){const e=[];for(const n of r.valueOf())e.push(A(n,[t.format]));return new c(e)}return A(r,[t.format])}));const n=new i(e.valueOf().length);t.__len__=new l((function __len__(e){return n}))}const re=new h("strftime"),oe=L(Q,((e,t)=>{let n=[new l((e=>h.$empty))];for(let r=0;r<12;r++){const e=new V(2001,r+1,1);n.push(e.tp$getattr(re))}n=new c(n),t._months=n,mkLocalizedCls(n,t)}),"_localized_month"),se=L(Q,((e,t)=>{let n=[];for(let r=0;r<7;r++){const e=new V(2001,1,r+1);n.push(e.tp$getattr(re))}n=new c(n),t._days=n,mkLocalizedCls(n,t)}),"_localized_day"),me=A(se,[new h("%A")]),de=A(se,[new h("%a")]),ie=A(oe,[new h("%B")]),ce=A(oe,[new h("%b")]),[fe,he,we,ye,ue,_e,ge]=[0,1,2,3,4,5,6];function isleap(e){return(e=F(e))%4==0&&(e%100!=0||e%400==0)}function weekday(e,t,n){e=F(e),G<=e&&e<=X||(e=2e3+e%400);const r=A(V,[new i(e),t,n]);return callA(V,"weekday",r)}function monthrange(e,t){if(!le(H,t)||!le(t,P))throw A(Z,[t]);const n=weekday(e,t,H);t=F(t);const r=ne[t]+Number(t===ae&&isleap(e));return[n,new i(r)]}function iterweekdays(e){return iterFn(A(u,[e.fwd,add(e.fwd,j)]),mod7)}function itermonthdates(e,t,n){return iterFn(itermonthdays3(e,t,n),(e=>A(V,e.valueOf())))}function itermonthdays(e,t,n){const[r,o]=monthrange(t,n),s=mod7(sub(r,e.fwd)),m=A(W,[S,s]),d=A(u,[H,inc(o)]),l=mod7(sub(e.fwd,add(r,o))),i=A(W,[S,l]);return A(q,[m,d,i])}function itermonthdays2(e,t,n){return iterFn(A($,[itermonthdays(e,t,n),e.fwd]),(e=>{const[t,n]=e.valueOf();return new y([n,mod7(t)])}))}function itermonthdays3(e,t,n){const ymdIter=(e,t,n)=>iterFn(n,(n=>new y([e,t,n]))),[r,o]=monthrange(t,n),s=mod7(sub(r,e.fwd)),m=mod7(sub(e.fwd,add(r,o))),[d,l]=function _prevmonth(e,t){return eq(t,H)?[dec(e),P]:[e,dec(t)]}(t,n),c=inc(function _monthlen(e,t){return t=F(t),new i(ne[t]+Number(t===ae&&isleap(e)))}(d,l)),f=A(u,[sub(c,s),c]),h=A(u,[H,inc(o)]),[w,_]=function _nextmonth(e,t){return eq(t,P)?[inc(e),H]:[e,inc(t)]}(t,n),g=A(u,[H,inc(m)]);return A(q,[ymdIter(d,l,f),ymdIter(t,n,h),ymdIter(w,_,g)])}function itermonthdays4(e,t,n){const r=itermonthdays3(e,t,n);let o=0;return iterFn(r,(t=>new y([...t.valueOf(),mod7(add(e.fwd,new i(o++)))])))}function _monthIter(e,t,n,r){const o=O(e(t,n,r)),s=[];for(let m=0;m{const n=makePyMethod.bind(null,"Calendar"),r=["firstweekday"],o=["year","month"],s=["year","width"],m={__init__:n((function __init__(e,t){return Object.defineProperty(e,"fwd",{get(){return mod7(this._fwd)},set(e){return this._fwd=e,!0}}),e.fwd=t,f}),{name:"__init__",args:r,defaults:[S]}),getfirstweekday:n((function getfirstweekday(e){return e.fwd}),{name:"getfirstweekday"}),setfirstweekday:n((function setfirstweekday(e,t){return e.fwd=t,f}),{name:"setfirstweekday",args:r}),iterweekdays:n(iterweekdays,{name:"iterweekdays"}),itermonthdates:n(itermonthdates,{name:"itermonthdates",args:o}),itermonthdays:n(itermonthdays,{name:"itermonthdays",args:o}),itermonthdays2:n(itermonthdays2,{name:"itermonthdays2",args:o}),itermonthdays3:n(itermonthdays3,{name:"itermonthdays3",args:o}),itermonthdays4:n(itermonthdays4,{name:"itermonthdays4",args:o}),monthdatescalendar:n(monthdatescalendar,{name:"monthdatescalendar",args:o}),monthdays2calendar:n(monthdays2calendar,{name:"monthdays2calendar",args:o}),monthdayscalendar:n(monthdayscalendar,{name:"monthdayscalendar",args:o}),yeardatescalendar:n(yeardatescalendar,{name:"yeardatescalendar",args:s,defaults:[N]}),yeardays2calendar:n(yeardays2calendar,{name:"yeardays2calendar",args:s,defaults:[N]}),yeardayscalendar:n(yeardayscalendar,{name:"yeardayscalendar",args:s,defaults:[N]})};m.firstweekday=new k(m.getfirstweekday,m.setfirstweekday),Object.assign(t,m)}),"Calendar");function doTextFormatweekday(e,t,n){let r;return r=x(n,J,"GtE")?me:de,pyCenter(o(o(r,t),new w(f,n)),n)}function doTextFormatmonthname(e,t,n,r,s=!0){let m=o(ie,n);return T(s)&&(m=mod(new h("%s %r"),new y([m,t]))),pyCenter(m,r)}const pe=L(Q,((e,t)=>{const txtPrint=e=>p([e],["end",h.$empty]);const n=doTextFormatweekday;function formatweekheader(e,t){const n=[];for(const r of iterJs(iterweekdays(e)))n.push(callA(e,"formatweekday",r,t).toString());return new h(n.join(" "))}const r=doTextFormatmonthname;const o=makePyMethod.bind(null,"TextCalendar"),s={prweek:o((function prweek(e,t,n){txtPrint(callA(e,"formatweek",t,n))}),{name:"prweek",args:["theweek","width"]}),formatday:o((function formatday(e,t,n,r){let o;return o=eq(t,S)?h.$empty:mod(new h("%2i"),t),pyCenter(o,r)}),{name:"formatday",args:["day","weekday","width"]}),formatweek:o((function formatweek(e,t,n){const r=[];for(const o of iterJs(t)){const[t,s]=o.valueOf();r.push(callA(e,"formatday",t,s,n).toString())}return new h(r.join(" "))}),{name:"formatweek",args:["theweek","width"]}),formatweekday:o(n,{name:"formatweekday",args:["day","width"]}),formatweekheader:o(formatweekheader,{name:"formatweekheader",args:["width"]}),formatmonthname:o(r,{name:"formatmonthname",args:["theyear","themonth","width","withyear"],defaults:[m]}),prmonth:o((function prmonth(e,t,n,r,o){txtPrint(callA(e,"formatmonth",t,n,r,o))}),{name:"prmonth",args:["theyear","themonth","w","l"],defaults:[S,S]}),formatmonth:o((function formatmonth(e,t,n,r,o){const addNewLines=e=>new h(e+"\\n".repeat(o.valueOf()));r=_([D,r]),o=_([H,o]);let s=callA(e,"formatmonthname",t,n,dec(mul(j,inc(r))),!0);s=pyRStrip(s),s=addNewLines(s),s=add(s,pyRStrip(callA(e,"formatweekheader",r))),s=addNewLines(s);for(const m of iterJs(monthdays2calendar(e,t,n)))s=add(s,pyRStrip(callA(e,"formatweek",m,r))),s=addNewLines(s);return s}),{name:"formatmonth",args:["thyear","themonth","w","l"],defaults:[S,S]}),formatyear:o((function formatyear(e,t,n,r,o,s){n=_([D,n]),r=_([H,r]),o=_([D,o]);const m=dec(mul(inc(n),j));let d="";const a=e=>d+=e;a(pyRStrip(pyCenter(t.$r(),add(mul(m,s),mul(o,dec(s)))))),a("\\n".repeat(r));const l=formatweekheader(e,n);let f=0;for(const w of iterJs(yeardays2calendar(e,t,s))){const d=new i(f),y=inc(mul(s,d)),_=g([inc(mul(s,inc(d))),Y]),k=A(u,[y,_]);a("\\n".repeat(r));const p=iterFn(k,(n=>callA(e,"formatmonthname",t,n,m,!1)));a(pyRStrip(formatstring(p,m,o))),a("\\n".repeat(r));const $=iterFn(k,(e=>l));a(pyRStrip(formatstring($,m,o))),a("\\n".repeat(r));const b=Math.max(...w.valueOf().map((e=>e.valueOf().length)));for(let t=0;t=r.length?s.push(h.$empty):s.push(callA(e,"formatweek",r[t],n));a(pyRStrip(formatstring(new c(s),m,o))),a("\\n".repeat(r))}f++}return new h(d)}),{name:"formatyear",args:["theyear","w","l","c","m"],defaults:[D,H,R,N]}),pryear:o((function pryear(e,t,n,r,o,s){txtPrint(callA(e,"formatyear",t,n,r,o,s))}),{name:"pryear",args:["theyear","w","l","c","m"],defaults:[S,S,R,N]})};Object.assign(t,s)}),"TextCalendar",[ke]);function doHtmlFormatweekday(e,t){return new h(`${o(de,t)}`)}function doHtmlFormatmonthname(e,t,n,r=!0){let s=""+o(ie,n);return T(r)&&(s+=" "+t),new h(`${s}`)}const $e=L(Q,((e,t)=>{const n=M(["mon","tue","wed","thu","fri","sat","sun"]),r=n,s=new h("noday"),d=new h("month"),l=d,c=new h("year"),w=c,u=new h(\' \'),g=new h(\'%d\');const k=doHtmlFormatweekday;function formatweekheader(e){let t="";for(const n of iterJs(iterweekdays(e)))t+=callA(e,"formatweekday",n);return new h(`${t}`)}const p=doHtmlFormatmonthname;const $=makePyMethod.bind(null,"HTMLCalendar"),b={formatday:$((function formatday(e,t,n){return eq(t,S)?mod(u,getA(e,"cssclass_noday")):mod(g,new y([o(getA(e,"cssclasses"),n),t]))}),{name:"formatday",args:["day","weekday"]}),formatweek:$((function formatweek(e,t){let n="";for(const r of iterJs(t)){const[t,o]=r.valueOf();n+=callA(e,"formatday",t,o)}return new h(`${n}`)}),{name:"formatweek",args:["theweek"]}),formatweekday:$(k,{name:"formatweekday",args:["day"]}),formatweekheader:$(formatweekheader,{name:"formatweekheader"}),formatmonthname:$(p,{name:"formatmonthname",args:["theyear","themonth","withyear"],defaults:[m]}),formatmonth:$((function formatmonth(e,t,n,r=!0){let o="";const a=e=>o+=e+"\\n";a(``),a(callA(e,"formatmonthname",t,n,r)),a(formatweekheader(e));for(const s of iterJs(monthdays2calendar(e,t,n)))a(callA(e,"formatweek",s));return a("
"),new h(o)}),{name:"formatmonth",args:["thyear","themonth","withyear"],defaults:[m]}),formatyear:$((function formatyear(e,t,n){let r="";const a=e=>r+=e;n=_([n,H]).valueOf(),a(``),a("\\n"),a(``);for(let o=te;o");const r=Math.min(o+n,13);for(let n=o;n"),a(callA(e,"formatmonth",t,new i(n),!1)),a("");a("")}return a("
${t}
"),new h(r)}),{name:"formatyear",args:["theyear","width"],defaults:[N]}),formatyearpage:$((function formatyearpage(e,t,n=3,r="calendar.css",o=null){null!==o&&o!==f||(o=new h("utf-8"));let s="";const a=e=>s+=e;return a(`\\n`),a(\'\\n\'),a("\\n"),a("\\n"),a(`\\n`),r!==f&&a(`\\n`),a(`Calendar for ${t}\\n`),a("\\n"),a("\\n"),a(callA(e,"formatyear",t,n)),a("\\n"),a("\\n"),callA(h,"encode",new h(s),o,new h("ignore"))}),{name:"formatyearpage",args:["theyear","width","css","encoding"],defaults:[N,new h("calendar.css"),new h("utf-8")]}),cssclasses:n,cssclasses_weekday_head:r,cssclass_noday:s,cssclass_month_head:d,cssclass_month:l,cssclass_year_head:c,cssclass_year:w};Object.assign(t,b)}),"HTMLCalendar",[ke]);function withLocale(e,t){const n=E.localizeByIdentifier(e.toString());v.strftime=n;try{return t()}finally{v.strftime=E}}function localInit(e,t){T(t)||(t=new h("en_US")),e.locale=t}const be=L(Q,((e,t)=>{const n=makePyMethod.bind(null,"LocaleTextCalendar"),r={__init__:n((function __init__(e,t,n){return callA(pe,"__init__",e,t),localInit(e,n),f}),{name:"__init__",args:["firstweekday","locale"],defaults:[S,f]}),formatweekday:n((function formatweekday(e,t,n){return withLocale(e.locale,(()=>doTextFormatweekday(0,t,n)))}),{name:"formatweekday",args:["day","width"]}),formatmonthname:n((function formatmonthname(e,t,n,r,o){return withLocale(e.locale,(()=>doTextFormatmonthname(0,t,n,r,o)))}),{name:"formatmonthname",args:["theyear","themonth","width","withyear"],defaults:[m]})};Object.assign(t,r)}),"LocaleTextCalendar",[pe]),Me=L(Q,((e,t)=>{const n=makePyMethod.bind(null,"LocaleHTMLCalendar"),r={__init__:n((function __init__(e,t,n){return callA($e,"__init__",e,t),localInit(e,n),f}),{name:"__init__",args:["firstweekday","locale"],defaults:[S,f]}),formatweekday:n((function formatweekday(e,t){return withLocale(e.locale,(()=>doHtmlFormatweekday(e,t)))}),{name:"formatweekday",args:["day"]}),formatmonthname:n((function formatmonthname(e,t,n,r){return withLocale(e.locale,(()=>doHtmlFormatmonthname(e,t,n,r)))}),{name:"formatmonthname",args:["theyear","themonth","withyear"],defaults:[m]})};Object.assign(t,r)}),"LocaleHTMLCalendar",[$e]),Te=A(pe,[]);Object.assign(Q,{IllegalMonthError:Z,IllegalWeekdayError:ee,day_name:me,month_name:ie,day_abbr:de,month_abbr:ce,January:new i(te),February:new i(ae),mdays:M(ne),MONDAY:new i(fe),TUESDAY:new i(he),WEDNESDAY:new i(we),THURSDAY:new i(ye),FRIDAY:new i(ue),SATURDAY:new i(_e),SUNDAY:new i(ge),Calendar:ke,TextCalendar:pe,HTMLCalendar:$e,LocaleTextCalendar:be,LocaleHTMLCalendar:Me,c:Te,firstweekday:getA(Te,"getfirstweekday"),monthcalendar:getA(Te,"monthdayscalendar"),prweek:getA(Te,"prweek"),week:getA(Te,"formatweek"),weekheader:getA(Te,"formatweekheader"),prmonth:getA(Te,"prmonth"),month:getA(Te,"formatmonth"),calendar:getA(Te,"formatyear"),prcal:getA(Te,"pryear")});const Ce=new i(20),Oe=R;function formatstring(e,t,n){t||(t=Ce),n||(n=Oe),n=mul(n,new h(" "));const r=[];for(const o of iterJs(e))r.push(pyCenter(o,t).toString());return new h(r.join(n.toString()))}const Le=getA(V,"toordinal"),xe=A(Le,[new V(1970,1,1)]);return t("calendar",Q,{isleap:{$meth:e=>s(isleap(e)),$flags:{NamedArgs:["year"]},$doc:"Return True for leap years, False for non-leap years"},leapdays:{$meth(e,t){e=F(e)-1,t=F(t)-1;const n=Math.floor;return new i(n(t/4)-n(e/4)-(n(t/100)-n(e/100))+(n(t/400)-n(e/400)))},$flags:{MinArgs:2,MaxArgs:2}},weekday:{$meth:weekday,$flags:{NamedArgs:["year","month","day"]},$doc:"Return weekday (0-6 ~ Mon-Sun) for year, month (1-12), day (1-31)."},monthrange:{$meth:(e,t)=>new y(monthrange(e,t)),$flags:{NamedArgs:["year","month"]},$doc:"Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for year, month."},setfirstweekday:{$meth(e){const t=F(e);if(!(fe<=t&&t<=ge))throw A(ee,[e]);Te.fwd=e},$flags:{NamedArgs:["firstweekday"]}},format:{$meth:function format(e,t,n){return p([formatstring(e,t,n)]),f},$flags:{NamedArgs:["cols","colwidth","spacing"],Defaults:[Ce,Oe]}},formatstring:{$meth:formatstring,$flags:{NamedArgs:["cols","colwidth","spacing"],Defaults:[Ce,Oe]}},timegm:{$meth(e){const[t,n,r,o,s,m]=e.valueOf(),d=A(V,[t,n,H]),l=A(Le,[d]),i=add(sub(l,xe),dec(r)),c=add(mul(i,U),o),f=add(mul(c,z),s);return add(mul(f,z),m)},$flags:{OneArg:!0}}}),Q}',"src/lib/collections.js":'function $builtinmodule(t){const e={};return Sk.misceval.chain(Sk.importModule("keyword",!1,!0),(t=>(e._iskeyword=t.$d.iskeyword,Sk.importModule("itertools",!1,!0))),(t=>(e._chain=t.$d.chain,e._starmap=t.$d.starmap,e._repeat=t.$d.repeat,Sk.importModule("operator",!1,!0))),(t=>{e._itemgetter=t.$d.itemgetter}),(()=>collections_mod(e)))}function collections_mod(t){function counterNumberSlot(e){return function(i){if(void 0!==i&&!(i instanceof t.Counter))return Sk.builtin.NotImplemented.NotImplemented$;const s=new t.Counter;return e.call(this,s,i),s}}function counterInplaceSlot(t,e){return function(i){if(!(i instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError("Counter "+t+"= "+Sk.abstr.typeName(i)+" is not supported");return e.call(this,i),this.keep$positive()}}t.__all__=new Sk.builtin.list(["deque","defaultdict","namedtuple","Counter","OrderedDict"].map((t=>new Sk.builtin.str(t)))),t.defaultdict=Sk.abstr.buildNativeClass("collections.defaultdict",{constructor:function defaultdict(t,e){this.default_factory=t,Sk.builtin.dict.call(this,e)},base:Sk.builtin.dict,methods:{copy:{$meth(){return this.$copy()},$flags:{NoArgs:!0}},__copy__:{$meth(){return this.$copy()},$flags:{NoArgs:!0}},__missing__:{$meth(t){if(Sk.builtin.checkNone(this.default_factory))throw new Sk.builtin.KeyError(Sk.misceval.objectRepr(t));{const e=Sk.misceval.callsimArray(this.default_factory,[]);return this.mp$ass_subscript(t,e),e}},$flags:{OneArg:!0}}},getsets:{default_factory:{$get(){return this.default_factory},$set(t){t=t||Sk.builtin.none.none$,this.default_factory=t}}},slots:{tp$doc:"defaultdict(default_factory[, ...]) --\\x3e dict with default factory\\n\\nThe default factory is called without arguments to produce\\na new value when a key is not present, in __getitem__ only.\\nA defaultdict compares equal to a dict with the same items.\\nAll remaining arguments are treated the same as if they were\\npassed to the dict constructor, including keyword arguments.\\n",tp$init(t,e){const i=t.shift();if(void 0===i)this.default_factory=Sk.builtin.none.none$;else{if(!Sk.builtin.checkCallable(i)&&!Sk.builtin.checkNone(i))throw new Sk.builtin.TypeError("first argument must be callable");this.default_factory=i}return Sk.builtin.dict.prototype.tp$init.call(this,t,e)},$r(){const t=Sk.misceval.objectRepr(this.default_factory),e=Sk.builtin.dict.prototype.$r.call(this).v;return new Sk.builtin.str("defaultdict("+t+", "+e+")")}},proto:{$copy(){const e=[];return Sk.misceval.iterFor(Sk.abstr.iter(this),(t=>{e.push(t),e.push(this.mp$subscript(t))})),new t.defaultdict(this.default_factory,e)}}}),t.Counter=Sk.abstr.buildNativeClass("Counter",{constructor:function Counter(){this.$d=new Sk.builtin.dict,Sk.builtin.dict.apply(this)},base:Sk.builtin.dict,methods:{elements:{$flags:{NoArgs:!0},$meth(){const e=t._chain.tp$getattr(new Sk.builtin.str("from_iterable")),i=t._starmap,s=t._repeat,n=Sk.misceval.callsimArray;return n(e,[n(i,[s,n(this.tp$getattr(this.str$items))])])}},most_common:{$flags:{NamedArgs:["n"],Defaults:[Sk.builtin.none.none$]},$meth(t){const e=this.sq$length();t=Sk.builtin.checkNone(t)||(t=Sk.misceval.asIndexOrThrow(t))>e?e:t<0?0:t;const i=this.$items().sort(((t,e)=>Sk.misceval.richCompareBool(t[1],e[1],"Lt")?1:Sk.misceval.richCompareBool(t[1],e[1],"Gt")?-1:0));return new Sk.builtin.list(i.slice(0,t).map((t=>new Sk.builtin.tuple(t))))}},update:{$flags:{FastCall:!0},$meth(t,e){return Sk.abstr.checkArgsLen("update",t,0,1),this.counter$update(t,e)}},subtract:{$flags:{FastCall:!0},$meth(t,e){Sk.abstr.checkArgsLen("subtract",t,0,1);const i=t[0];if(void 0!==i)if(i instanceof Sk.builtin.dict)for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,i.mp$subscript(n),"Sub"))}else for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,this.$one,"Sub"))}e=e||[];for(let s=0;s>> c = Counter(\'abcdeabcdabcaba\') # count elements from a string\\n\\n >>> c.most_common(3) # three most common elements\\n [(\'a\', 5), (\'b\', 4), (\'c\', 3)]\\n >>> sorted(c) # list all unique elements\\n [\'a\', \'b\', \'c\', \'d\', \'e\']\\n >>> \'\'.join(sorted(c.elements())) # list elements with repetitions\\n \'aaaaabbbbcccdde\'\\n >>> sum(c.values()) # total of all counts\\n 15\\n\\n >>> c[\'a\'] # count of letter \'a\'\\n 5\\n >>> for elem in \'shazam\': # update counts from an iterable\\n ... c[elem] += 1 # by adding 1 to each element\'s count\\n >>> c[\'a\'] # now there are seven \'a\'\\n 7\\n >>> del c[\'b\'] # remove all \'b\'\\n >>> c[\'b\'] # now there are zero \'b\'\\n 0\\n\\n >>> d = Counter(\'simsalabim\') # make another counter\\n >>> c.update(d) # add in the second counter\\n >>> c[\'a\'] # now there are nine \'a\'\\n 9\\n\\n >>> c.clear() # empty the counter\\n >>> c\\n Counter()\\n\\n Note: If a count is set to zero or reduced to zero, it will remain\\n in the counter until the entry is deleted or the counter is cleared:\\n\\n >>> c = Counter(\'aaabbc\')\\n >>> c[\'b\'] -= 2 # reduce the count of \'b\' by two\\n >>> c.most_common() # \'b\' is still in, but its count is zero\\n [(\'a\', 3), (\'c\', 1), (\'b\', 0)]\\n\\n",tp$init(t,e){return Sk.abstr.checkArgsLen(this.tpjs_name,t,0,1),this.counter$update(t,e)},$r(){const t=this.size>0?Sk.builtin.dict.prototype.$r.call(this).v:"";return new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+")")},tp$as_sequence_or_mapping:!0,mp$ass_subscript(t,e){return void 0===e?this.mp$lookup(t)&&Sk.builtin.dict.prototype.mp$ass_subscript.call(this,t,e):Sk.builtin.dict.prototype.mp$ass_subscript.call(this,t,e)},tp$as_number:!0,nb$positive:counterNumberSlot((function(t){this.$items().forEach((([e,i])=>{Sk.misceval.richCompareBool(i,this.$zero,"Gt")&&t.mp$ass_subscript(e,i)}))})),nb$negative:counterNumberSlot((function(t){this.$items().forEach((([e,i])=>{Sk.misceval.richCompareBool(i,this.$zero,"Lt")&&t.mp$ass_subscript(e,Sk.abstr.numberBinOp(this.$zero,i,"Sub"))}))})),nb$subtract:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=Sk.abstr.numberBinOp(s,e.mp$subscript(i),"Sub");Sk.misceval.richCompareBool(n,this.$zero,"Gt")&&t.mp$ass_subscript(i,n)})),e.$items().forEach((([e,i])=>{void 0===this.mp$lookup(e)&&Sk.misceval.richCompareBool(i,this.$zero,"Lt")&&t.mp$ass_subscript(e,Sk.abstr.numberBinOp(this.$zero,i,"Sub"))}))})),nb$add:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=Sk.abstr.numberBinOp(s,e.mp$subscript(i),"Add");Sk.misceval.richCompareBool(n,this.$zero,"Gt")&&t.mp$ass_subscript(i,n)})),e.$items().forEach((([e,i])=>{void 0===this.mp$lookup(e)&&Sk.misceval.richCompareBool(i,this.$zero,"Gt")&&t.mp$ass_subscript(e,i)}))})),nb$inplace_add:counterInplaceSlot("+",(function(t){t.$items().forEach((([t,e])=>{const i=Sk.abstr.numberInplaceBinOp(this.mp$subscript(t),e,"Add");this.mp$ass_subscript(t,i)}))})),nb$inplace_subtract:counterInplaceSlot("-",(function(t){t.$items().forEach((([t,e])=>{const i=Sk.abstr.numberInplaceBinOp(this.mp$subscript(t),e,"Sub");this.mp$ass_subscript(t,i)}))})),nb$or:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=e.mp$subscript(i),r=Sk.misceval.richCompareBool(s,n,"Lt")?n:s;Sk.misceval.richCompareBool(r,this.$zero,"Gt")&&t.mp$ass_subscript(i,r)})),e.$items().forEach((([e,i])=>{void 0===this.mp$lookup(e)&&Sk.misceval.richCompareBool(i,this.$zero,"Gt")&&t.mp$ass_subscript(e,i)}))})),nb$and:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=e.mp$subscript(i),r=Sk.misceval.richCompareBool(s,n,"Lt")?s:n;Sk.misceval.richCompareBool(r,this.$zero,"Gt")&&t.mp$ass_subscript(i,r)}))})),nb$inplace_and:counterInplaceSlot("&",(function(t){this.$items().forEach((([e,i])=>{const s=t.mp$subscript(e);Sk.misceval.richCompareBool(s,i,"Lt")&&this.mp$ass_subscript(e,s)}))})),nb$inplace_or:counterInplaceSlot("|",(function(t){t.$items().forEach((([t,e])=>{Sk.misceval.richCompareBool(e,this.mp$subscript(t),"Gt")&&this.mp$ass_subscript(t,e)}))})),nb$reflected_and:null,nb$reflected_or:null,nb$reflected_add:null,nb$reflected_subtract:null},proto:{keep$positive(){return this.$items().forEach((([t,e])=>{Sk.misceval.richCompareBool(e,this.$zero,"LtE")&&this.mp$ass_subscript(t)})),this},$zero:new Sk.builtin.int_(0),$one:new Sk.builtin.int_(1),str$items:new Sk.builtin.str("items"),counter$update(t,e){const i=t[0];if(void 0!==i)if(Sk.builtin.checkMapping(i))if(this.sq$length())for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,i.mp$subscript(n),"Add"))}else this.update$common(t,void 0,"update");else for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,this.$one,"Add"))}if(e&&e.length)if(this.sq$length())for(let s=0;s`(${Sk.misceval.objectRepr(t)}, ${Sk.misceval.objectRepr(e)})`));return t=0===t.length?"":"["+t.join(", ")+"]",this.in$repr=!1,new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+")")},tp$richcompare(e,i){if("Eq"!==i&&"Ne"!==i)return Sk.builtin.NotImplemented.NotImplemented$;if(!(e instanceof t.OrderedDict))return Sk.builtin.dict.prototype.tp$richcompare.call(this,e,i);const s="Eq"==i,n=this.size;if(n!==e.size)return!s;const r=e.$items(),a=this.$items();for(let t=0;t=r||l>=a)switch(i){case"Lt":return ra;case"GtE":return r>=a}return"Eq"!==i&&("NotEq"===i||Sk.misceval.richCompareBool(n[this.head+l&this.mask],e[s.head+l&s.mask],i))},tp$iter(){return new e(this)},$r(){const t=[],e=this.tail-this.head&this.mask;if(this.$entered_repr)return new Sk.builtin.str("[...]");this.$entered_repr=!0;for(let s=0;s=e||t<-e)throw new Sk.builtin.IndexError("deque index out of range");const i=(t>=0?this.head:this.tail)+t&this.mask;return this.v[i]},mp$ass_subscript(t,e){t=Sk.misceval.asIndexOrThrow(t);const i=this.tail-this.head&this.mask;if(t>=i||t<-i)throw new Sk.builtin.IndexError("deque index out of range");void 0===e?this.del$item(t):this.set$item(t,e)},nb$inplace_add(t){this.maxlen=void 0;for(let e=Sk.abstr.iter(t),i=e.tp$iternext();void 0!==i;i=e.tp$iternext())this.$push(i);return this},nb$inplace_multiply(t){(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError,"can\'t multiply sequence by non-int of type \'{tp$name}\'"))<=0&&this.$clear();const e=this.$copy(),i=this.tail-this.head&this.mask;for(let s=1;s integer -- return number of occurrences of value"},extend:{$meth(t){return this.$extend(t),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Extend the right side of the deque with elements from the iterable"},extendleft:{$meth(t){for(let e=Sk.abstr.iter(t),i=e.tp$iternext();void 0!==i;i=e.tp$iternext())this.$pushLeft(i);return Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Extend the left side of the deque with elements from the iterable"},index:{$meth(t,e,i){const s=this.$index(t,e,i);if(void 0!==s)return new Sk.builtin.int_(s);throw new Sk.builtin.ValueError(Sk.misceval.objectRepr(t)+" is not in deque")},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"D.index(value, [start, [stop]]) -> integer -- return first index of value.\\nRaises ValueError if the value is not present."},insert:{$meth(t,e){t=Sk.misceval.asIndexOrThrow(t,"integer argument expected, got {tp$name}");const i=this.tail-this.head&this.mask;if(void 0!==this.maxlen&&i>=this.maxlen)throw new Sk.builtin.IndexError("deque already at its maximum size");t>i&&(t=i),t<=-i&&(t=0);const s=(t>=0?this.head:this.tail)+t&this.mask;let n=this.tail;for(this.tail=this.tail+1&this.mask;n!==s;){const t=n-1&this.mask;this.v[n]=this.v[t],n=t}return this.v[s]=e,this.head===this.tail&&this.$resize(this.v.length,this.v.length<<1),Sk.builtin.none.none$},$flags:{MinArgs:2,MaxArgs:2},$textsig:null,$doc:"D.insert(index, object) -- insert object before index"},pop:{$meth(){return this.$pop()},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove and return the rightmost element."},popleft:{$meth(){return this.$popLeft()},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove and return the leftmost element."},remove:{$meth(t){const e=this.$index(t);if(void 0===e)throw new Sk.builtin.ValueError(Sk.misceval.objectRepr(t)+" is not in deque");let i=this.head+e&this.mask;for(;i!==this.tail;){const t=i+1&this.mask;this.v[i]=this.v[t],i=t}this.tail=this.tail-1&this.mask;var s=this.tail-this.head&this.mask;s>>1&&this.$resize(s,this.v.length>>>1)},$flags:{OneArg:!0},$textsig:null,$doc:"D.remove(value) -- remove first occurrence of value."},__reversed__:{$meth(){return new i(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.__reversed__() -- return a reverse iterator over the deque"},reverse:{$meth(){const t=this.head,e=this.tail,i=this.mask,s=this.tail-this.head&this.mask;for(let n=0;n<~~(s/2);n++){const s=e-n-1&i,r=t+n&i,a=this.v[s];this.v[s]=this.v[r],this.v[r]=a}return Sk.builtin.none.none$},$flags:{NoArgs:!0},$textsig:null,$doc:"D.reverse() -- reverse *IN PLACE*"},rotate:{$meth(t){t=void 0===t?1:Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError);const e=this.head,i=this.tail;if(0===t||e===i)return this;if(this.head=e-t&this.mask,this.tail=i-t&this.mask,t>0)for(let s=1;s<=t;s++){const t=e-s&this.mask,n=i-s&this.mask;this.v[t]=this.v[n],this.v[n]=void 0}else for(let s=0;s>t;s--){const t=i-s&this.mask,n=e-s&this.mask;this.v[t]=this.v[n],this.v[n]=void 0}return Sk.builtin.none.none$},$flags:{MinArgs:0,MaxArgs:1},$textsig:null,$doc:"Rotate the deque n steps to the right (default n=1). If n is negative, rotates left."}},classmethods:Sk.generic.classGetItem,getsets:{maxlen:{$get(){return void 0===this.maxlen?Sk.builtin.none.none$:new Sk.builtin.int_(this.maxlen)},$doc:"maximum size of a deque or None if unbounded"}},proto:{$clear(){this.head=0,this.tail=0,this.mask=1,this.v=new Array(2)},$copy(){return new t.deque(this.v.slice(0),this.maxlen,this.head,this.tail,this.mask)},$extend(t){for(let e=Sk.abstr.iter(t),i=e.tp$iternext();void 0!==i;i=e.tp$iternext())this.$push(i)},set$item(t,e){const i=(t>=0?this.head:this.tail)+t&this.mask;this.v[i]=e},del$item(t){let e=(t>=0?this.head:this.tail)+t&this.mask;for(;e!==this.tail;){const t=e+1&this.mask;this.v[e]=this.v[t],e=t}const i=this.tail-this.head&this.mask;this.tail=this.tail-1&this.mask,i>>1&&this.$resize(i,this.v.length>>>1)},$push(t){this.v[this.tail]=t,this.tail=this.tail+1&this.mask,this.head===this.tail&&this.$resize(this.v.length,this.v.length<<1);const e=this.tail-this.head&this.mask;return void 0!==this.maxlen&&e>this.maxlen&&this.$popLeft(),this},$pushLeft(t){this.head=this.head-1&this.mask,this.v[this.head]=t,this.head===this.tail&&this.$resize(this.v.length,this.v.length<<1);const e=this.tail-this.head&this.mask;return void 0!==this.maxlen&&e>this.maxlen&&this.$pop(),this},$pop(){if(this.head===this.tail)throw new Sk.builtin.IndexError("pop from an empty deque");this.tail=this.tail-1&this.mask;const t=this.v[this.tail];this.v[this.tail]=void 0;const e=this.tail-this.head&this.mask;return e>>1&&this.$resize(e,this.v.length>>>1),t},$popLeft(){if(this.head===this.tail)throw new Sk.builtin.IndexError("pop from an empty deque");const t=this.v[this.head];this.v[this.head]=void 0,this.head=this.head+1&this.mask;const e=this.tail-this.head&this.mask;return e>>1&&this.$resize(e,this.v.length>>>1),t},$resize(t,e){const i=this.head,s=this.mask;if(this.head=0,this.tail=t,this.mask=e-1,0===i)return void(this.v.length=e);const n=new Array(e);for(let r=0;r=0?i:i<-s?0:s+i;for(let o=e>=0?e:e<-s?0:s+e;o=this.$length)return;const t=(this.$index>=0?this.$head:this.$tail)+this.$index&this.$mask;return this.$index++,this.dq[t]},methods:{__length_hint__:{$meth:function __length_hint__(){return new Sk.builtin.int_(this.$length-this.$index)},$flags:{NoArgs:!0}}}}),i=Sk.abstr.buildIteratorClass("_collections._deque_reverse_iterator",{constructor:function _deque_reverse_iterator(t){this.$index=(t.tail-t.head&t.mask)-1,this.dq=t.v,this.$head=t.head,this.$mask=t.mask},iternext(){if(this.$index<0)return;const t=this.$head+this.$index&this.$mask;return this.$index--,this.dq[t]},methods:{__length_hint__:Sk.generic.iterReverseLengthHintMethodDef}}),s=new RegExp(/^[0-9].*/),n=new RegExp(/^[0-9_].*/),r=new RegExp(/^\\w*$/),a=/,/g,o=/\\s+/;function namedtuple(e,i,l,h,c){if(e=e.tp$str(),Sk.misceval.isTrue(Sk.misceval.callsimArray(t._iskeyword,[e])))throw new Sk.builtin.ValueError("Type names and field names cannot be a keyword: \'"+Sk.misceval.objectRepr(e)+"\'");const u=e.$jsstr();if(s.test(u)||!r.test(u)||!u)throw new Sk.builtin.ValueError("Type names and field names must be valid identifiers: \'"+u+"\'");let m,d;if(Sk.builtin.checkString(i))m=i.$jsstr().replace(a," ").split(o),1==m.length&&""===m[0]&&(m=[]),d=m.map((t=>new Sk.builtin.str(t)));else{m=[],d=[];for(let t=Sk.abstr.iter(i),e=t.tp$iternext();void 0!==e;e=t.tp$iternext())e=e.tp$str(),d.push(e),m.push(e.$jsstr())}let p=new Set;if(Sk.misceval.isTrue(l))for(let s=0;sm.length)throw new Sk.builtin.TypeError("Got more default values than field names");for(let t=0,e=d.length-b.length;e"\'"+t.$jsstr()+"\'"))+"]")}return r}_make.co_varnames=["_cls","iterable"],_asdict.co_varnames=["self"],_replace.co_kwargs=1,_replace.co_varnames=["_self"];const S={};for(let s=0;sm[e]+"="+Sk.misceval.objectRepr(t)));return new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t.join(", ")+")")}},flags:{sk$klass:!0},proto:Object.assign({__module__:Sk.builtin.checkNone(c)?Sk.globals.__name__:c,__slots__:new Sk.builtin.tuple,_fields:$,_field_defaults:f,_make:new Sk.builtin.classmethod(new Sk.builtin.func(_make)),_asdict:new Sk.builtin.func(_asdict),_replace:new Sk.builtin.func(_replace)},S)})}return namedtuple.co_argcount=2,namedtuple.co_kwonlyargcount=3,namedtuple.$kwdefs=[Sk.builtin.bool.false$,Sk.builtin.none.none$,Sk.builtin.none.none$],namedtuple.co_varnames=["typename","field_names","rename","defaults","module"],t.namedtuple=new Sk.builtin.func(namedtuple),t}',"src/lib/datetime.js":'function $builtinmodule(){const{isTrue:t,richCompareBool:e,asIndexOrThrow:n,asIndexSized:i,objectRepr:s,opAllowsEquality:o,callsimArray:r,callsimOrSuspendArray:a}=Sk.misceval,{numberBinOp:$,typeName:c,buildNativeClass:h,checkArgsLen:m,objectHash:u,copyKeywordsToNamedArgs:l}=Sk.abstr,{int_:f,float_:d,str:w,bytes:_,tuple:p,bool:{true$:g},none:{none$:y},NotImplemented:{NotImplemented$:b},TypeError:z,ValueError:v,OverflowError:M,ZeroDivisionError:A,NotImplementedError:x,checkNumber:N,checkFloat:S,checkString:k,checkInt:O,asnum$:I,round:E,getattr:T}=Sk.builtin,{remapToPy:D,remapToJs:R}=Sk.ffi,intRound=t=>E(t).nb$int(),q=$,C=new w("auto"),U=new w("utcoffset"),Y=new w("tzname"),j=new w("as_integer_ratio"),F=new w("dst"),H=new w("isoformat"),J=new w("replace"),B=new w("fromtimestamp"),G=new w("fromordinal"),L=new w("utcfromtimestamp"),X=new w("strftime"),P=new w("fromutc"),W=new f(0),Z=new d(0),K=new f(7),V=new f(60),Q=new f(3600),tt=new f(1e3),et=new f(1e6),nt=new d(1e6),it=new f(86400),st=new d(86400);let ot=null;function pyDivMod(t,e){return q(t,e,"DivMod").v}function $divMod(t,e){if("number"!=typeof t||"number"!=typeof e)return t=JSBI.BigInt(t),e=JSBI.BigInt(e),[JSBI.toNumber(JSBI.divide(t,e)),JSBI.toNumber(JSBI.remainder(t,e))];if(0===e)throw new A("integer division or modulo by zero");return[Math.floor(t/e),t-Math.floor(t/e)*e]}function modf(t){const e=(t=I(t))<0?-1:1;return t=Math.abs(t),[new d(e*(t-Math.floor(t))),new d(e*Math.floor(t))]}function _d(t,e="0",n=2){return t.toString().padStart(n,e)}const rt=/^[0-9]+$/;function _as_integer(t){if(!rt.test(t))throw new Error;return parseInt(t)}function _as_int_ratio(t){let e=r(t.tp$getattr(j));if(!(e instanceof p))throw new z("unexpected return type from as_integer_ratio(): expected tuple, got \'"+c(e)+"\'");if(e=e.v,2!==e.length)throw new v("as_integer_ratio() must return a 2-tuple");return e}return Sk.misceval.chain(Sk.importModule("time",!1,!0),(a=>{const $=a.$d,E={__name__:new w("datetime"),__all__:new Sk.builtin.list(["date","datetime","time","timedelta","timezone","tzinfo","MINYEAR","MAXYEAR"].map((t=>new w(t))))};function _cmp(t,e){for(let n=0;ne[n]?1:-1;return 0}function _do_compare(t,e,n){const i=t.$cmp(e,n);switch(n){case"Lt":return i<0;case"LtE":return i<=0;case"Eq":return 0===i;case"NotEq":return 0!==i;case"Gt":return i>0;case"GtE":return i>=0}}const j=9999;E.MINYEAR=new f(1),E.MAXYEAR=new f(j);const rt=3652059,at=[-1,31,28,31,30,31,30,31,31,30,31,30,31],$t=[-1];let ct=0;function _is_leap(t){return t%4==0&&(t%100!=0||t%400==0)}function _days_before_year(t){const e=t-1;return 365*e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400)}function _days_before_month(t,e){return $t[e]+(e>2&&_is_leap(t))}function _ymd2ord(t,e,n){return _days_before_year(t)+_days_before_month(t,e)+n}at.slice(1).forEach((t=>{$t.push(ct),ct+=t}));const ht=_days_before_year(401),mt=_days_before_year(101),ut=_days_before_year(5);function _ord2ymd(t){if((t=n(t))>Number.MAX_SAFE_INTEGER)throw new M("Python int too large to convert to js number");if(t<1)throw new v("ordinal must be >= 1");let e,i,s,o;t-=1,[e,t]=$divMod(t,ht);let r=400*e+1;if([i,t]=$divMod(t,mt),[s,t]=$divMod(t,ut),[o,t]=$divMod(t,365),r+=100*i+4*s+o,4===o||4===i)return[r-1,12,31].map((t=>new f(t)));const a=3===o&&(24!==s||3===i);let $=t+50>>5,c=$t[$]+($>2&&a);return c>t&&($-=1,c-=at[$]+(2===$&&a)),[r,$,(t-=c)+1].map((t=>new f(t)))}const lt=[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ft=[null,"Mon","Tue","Wed","Thu","Fri","Sat","Sun"];function _build_struct_time(t,e,n,i,s,o,r){const a=(_ymd2ord(t,e,n)+6)%7,c=_days_before_month(t,e)+n;return $.struct_time.tp$call([new p([t,e,n,i,s,o,a,c,r].map((t=>new f(t))))])}const dt={hours:t=>_d(t),minutes:(t,e)=>_d(t)+":"+_d(e),seconds:(t,e,n)=>_d(t)+":"+_d(e)+":"+_d(n),milliseconds:(t,e,n,i)=>_d(t)+":"+_d(e)+":"+_d(n)+"."+_d(i,"0",3),microseconds:(t,e,n,i)=>_d(t)+":"+_d(e)+":"+_d(n)+"."+_d(i,"0",6)};function _format_time(t,e,n,i,s="auto"){if("string"!=typeof s&&!k(s))throw new z("must be str, not "+c(s));"auto"===(s=s.toString())?s=i?"microseconds":"seconds":"milliseconds"===s&&(i=Math.floor(i/1e3));let o=dt[s];if(void 0===o)throw new v("Unknown timespec value");return o(t,e,n,i)}function _format_offset(t){let e,n="";if(t!==y){let i,s,o;return t.$days<0?(e="-",t=new wt(-t.$days,-t.$secs,-t.$micro)):e="+",[i,s]=pyDivMod(t,pt),[s,o]=pyDivMod(s,gt),n+=e+`${_d(i)}:${_d(s)}`,(o.$secs||o.$micro)&&(n+=":"+_d(o.$secs,"0",2),o.$micro&&(n+="."+_d(o.$micro,"0",6))),n}}function _wrap_strftime(t,e,n){let i=null,s=null,o=null,a=[],c=0;const h=e.length;for(;cnew f(t)))}function _parse_hh_mm_ss_ff(t){const e=t.length,n=[0,0,0,0];let i=0;for(let s=0;s<3;s++){if(e-i<2)throw new v("Incomplete time component");n[s]=_as_integer(t.slice(i,i+2)),i+=2;const o=t.substr(i,1);if(!o||s>=2)break;if(":"!==o)throw new v("Invalid time separator: "+o);i+=1}if(i0?t.slice(0,e-1):t),s=y;if(e>0){if(n=t.slice(e),![5,8,15].includes(n.length))throw new v("Malformed time zone string");const i=_parse_hh_mm_ss_ff(n);if(i.every((t=>0===t)))s=St.prototype.utc;else{const n="-"===t[e-1]?-1:1,o=new wt(0,n*(3600*i[0]+60*i[1]+i[2]),n*i[3]);s=new St(o)}}return i=i.map((t=>new f(t))),i.push(s),i}function _check_tzname(t){if(t!==y&&!k(t))throw new z("tzinfo.tzname() must return None or string, not \'"+c(t)+"\'")}function _check_utc_offset(t,n){if(n!==y){if(!(n instanceof wt))throw new z(`tzinfo.${t}() must return None or timedelta, not \'${c(n)}\'`);if(!e(zt,n,"Lt")||!e(n,_t,"Lt"))throw new v(`${t}()=${n.toString()}, must be strictly between -timedelta(hours=24) and timedelta(hours=24)`)}}function _check_date_fields(t,e=null,i=null){if(null===e||null===i){throw new z(`function missing required argument \'${null===i?"day":"month"}\' (pos ${null===i?"3":"2"})`)}if(t=n(t),e=n(e),i=n(i),!(1<=t&&t<=j))throw new v("year must be in 1.."+j,new f(t));if(!(1<=e&&e<=12))throw new v("month must be in 1..12",new f(e));const s=function _days_in_month(t,e){return 2===e&&_is_leap(t)?29:at[e]}(t,e);if(!(1<=i&&i<=s))throw new v("day must be in 1.."+s,new f(i));return[t,e,i]}function _check_time_fields(t,e,i,s,o){if(t=n(t),e=n(e),i=n(i),s=n(s),o=n(o),!(0<=t&&t<=23))throw new v("hour must be in 0..23",new f(t));if(!(0<=e&&e<=59))throw new v("minute must be in 0..59",new f(e));if(!(0<=i&&i<=59))throw new v("second must be in 0..59",new f(i));if(!(0<=s&&s<=999999))throw new v("microsecond must be in 0..999999",new f(s));if(0!==o&&1!==o)throw new v("fold must be either 0 or 1",new f(o));return[t,e,i,s,o]}function _check_tzinfo_arg(t){if(t!==y&&!(t instanceof Mt))throw new z("tzinfo argument must be None or of a tzinfo subclass")}function _divide_and_round(t,e){let[n,i]=$divMod(t,e);return i*=2,((e>0?i>e:i999999999)throw new M(`days=${t}; must have magnitude <= 999999999`)},slots:{tp$new(t,e){let i,s,o,r,a,$,c,[h,m,u,d,w,_,p]=l("timedelta",["days","seconds","microseconds","milliseconds","minutes","hours","weeks"],t,e,new Array(7).fill(W));i=s=o=W,h=q(h,q(p,K,"Mult"),"Add"),m=q(m,q(q(w,V,"Mult"),q(_,Q,"Mult"),"Add"),"Add"),u=q(u,q(d,tt,"Mult"),"Add"),S(h)?([r,h]=modf(h),[a,$]=modf(q(r,st,"Mult")),s=new f($),i=new f(h)):(a=Z,i=h),S(m)?([c,m]=modf(m),m=new f(m),c=q(c,a,"Add")):c=a,[h,m]=pyDivMod(m,it),i=q(i,h,"Add"),s=q(s,new f(m),"Add");const g=q(c,nt,"Mult");if(S(u)?(u=intRound(q(u,g,"Add")),[m,u]=pyDivMod(u,et),[h,m]=pyDivMod(m,it),i=q(i,h,"Add"),s=q(s,m,"Add")):(u=new f(u),[m,u]=pyDivMod(u,et),[h,m]=pyDivMod(m,it),i=q(i,h,"Add"),s=q(s,m,"Add"),u=intRound(q(u,g,"Add"))),[m,o]=pyDivMod(u,et),s=q(s,m,"Add"),[h,s]=pyDivMod(s,it),i=q(i,h,"Add"),i=n(i),s=n(s),o=n(o),Math.abs(i)>999999999)throw new M("timedelta # of days is too large: "+h.toString());if(this===wt.prototype)return new wt(i,s,o);{const t=new this.constructor;return wt.call(t,i,s,o),t}},$r(){const t=[];return this.$days&&t.push(`days=${this.$days}`),this.$secs&&t.push(`seconds=${this.$secs}`),this.$micro&&t.push(`microseconds=${this.$micro}`),t.length||t.push("0"),new w(`${this.tp$name}(${t.join(", ")})`)},tp$str(){const t=this.$secs%60;let e=Math.floor(this.$secs/60);const n=Math.floor(e/60);e%=60;let i=`${n}:${_d(e)}:${_d(t)}`;if(this.$days){i=`${this.$days} day${function plural(t){return 1!==Math.abs(t)?"s":""}(this.$days)}, `+i}return this.$micro&&(i+=`.${_d(this.$micro,"0",6)}`),new w(i)},tp$as_number:!0,nb$add(t){return t instanceof wt?new wt(this.$days+t.$days,this.$secs+t.$secs,this.$micro+t.$micro):b},nb$subtract(t){return t instanceof wt?new wt(this.$days-t.$days,this.$secs-t.$secs,this.$micro-t.$micro):b},nb$positive(){return this},nb$negative(){return new wt(-this.$days,-this.$secs,-this.$micro)},nb$abs(){return this.$days<0?this.nb$negative():this},nb$multiply(t){if(O(t))return t=i(t,M),new wt(this.$days*t,this.$secs*t,this.$micro*t);if(S(t)){const e=this.$toMicrosecs();let[s,o]=_as_int_ratio(t);return s=i(s,M),o=n(o),new wt(0,0,_divide_and_round(e*s,o))}return b},nb$floor_divide(t){const e=this.$toMicrosecs();if(t instanceof wt){const n=t.$toMicrosecs();if(0===n)throw new A("integer division or modulo by zero");return new f(Math.floor(e/n))}if(O(t)){if(0===(t=i(t,M)))throw new A("integer division or modulo by zero");return new wt(0,0,Math.floor(e/t))}return b},nb$divide(t){const e=this.$toMicrosecs();if(t instanceof wt){if(0===t.$toMicrosecs())throw new A("integer division or modulo by zero");return new d(e/t.$toMicrosecs())}if(O(t))return t=n(t),new wt(0,0,_divide_and_round(e,t));if(S(t)){let[s,o]=_as_int_ratio(t);return s=n(s),o=i(o,M),new wt(0,0,_divide_and_round(o*e,s))}return b},nb$remainder(t){if(!(t instanceof wt))return b;const e=this.$toMicrosecs(),n=t.$toMicrosecs();if(0===n)throw new A("integer division or modulo by zero");const i=e-Math.floor(e/n)*n;return new wt(0,0,i)},nb$divmod(t){if(!(t instanceof wt))return b;const e=this.$toMicrosecs(),n=t.$toMicrosecs(),[i,s]=$divMod(e,n);return new p([new f(i),new wt(0,0,s)])},tp$richcompare(t,e){return t instanceof wt?_do_compare(this,t,e):b},tp$hash(){return-1===this.$hashcode&&(this.$hashcode=u(new p(this.$getState().map((t=>new f(t)))))),this.$hashcode},nb$bool(){return 0!==this.$days||0!==this.$secs||0!==this.$micro}},methods:{total_seconds:{$meth(){return new d(((86400*this.$days+this.$secs)*10**6+this.$micro)/10**6)},$flags:{NoArgs:!0},$doc:"Total seconds in the duration."},__reduce__:{$meth(){return new p([this.ob$type,new p(this.$getState().map((t=>D(t))))])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},getsets:{days:{$get(){return new f(this.$days)},$doc:"Number of days."},seconds:{$get(){return new f(this.$secs)},$doc:"Number of seconds (>= 0 and less than 1 day)."},microseconds:{$get(){return new f(this.$micro)},$doc:"Number of microseconds (>= 0 and less than 1 second)."}},proto:{$toMicrosecs(){return 1e6*(86400*this.$days+this.$secs)+this.$micro},$cmp(t){return _cmp(this.$getState(),t.$getState())},$getState(){return[this.$days,this.$secs,this.$micro]}}});wt.prototype.min=new wt(-999999999),wt.prototype.max=new wt(999999999,86399,999999),wt.prototype.resolution=new wt(0,0,1);const _t=new wt(1),pt=new wt(0,3600),gt=new wt(0,60),yt=new wt(0,1),bt=new wt(0),zt=new wt(-1),vt=E.date=h("datetime.date",{constructor:function date(t,e,n){this.$year=t,this.$month=e,this.$day=n,this.$hashcode=-1},slots:{tp$new(t,e){let n,[i,s,o]=l("date",["year","month","day"],t,e,[null,null]);if(null===s&&i instanceof _&&4===(n=i.valueOf()).length&&1<=n[2]&&n[2]<=12){const t=new this.constructor;return t.$setState(n),t}if([i,s,o]=_check_date_fields(i,s,o),this===vt.prototype)return new vt(i,s,o);{const t=new this.constructor;return vt.call(t,i,s,o),t}},$r(){return new w(`${this.tp$name}(${this.$year}, ${this.$month}, ${this.$day})`)},tp$str(){return this.tp$getattr(H).tp$call([])},tp$richcompare(t,e){return t instanceof vt?_do_compare(this,t,e):b},tp$hash(){return-1===this.$hashcode&&(this.$hashcode=u(this.$getState())),this.$hashcode},tp$as_number:!0,nb$add(t){if(t instanceof wt){const e=this.$toOrdinal()+t.$days;if(0 local date from a POSIX timestamp (like time.time())."},fromordinal:{$meth:function fromordinal(t){return this.tp$call(_ord2ymd(t))},$flags:{OneArg:!0},$textsig:null,$doc:"int -> date corresponding to a proleptic Gregorian ordinal."},fromisocalendar:{$meth:function fromisocalendar(t,e,i){if(t=n(t),e=n(e),i=n(i),!(1<=t&&t<=j))throw new v(`Year is out of range: ${t}`);let s,o;if(!(0 date corresponding to a proleptic Gregorian ordinal."},fromisoformat:{$meth:function fromisoformat(t){if(!k(t))throw new z("fromisoformat: argument must be str");t=t.toString();try{if(10!==t.length)throw new Error;return this.tp$call(_parse_isoformat_date(t))}catch(e){throw new v("Invalid isoformat string: \'"+t+"\'")}},$flags:{OneArg:!0},$textsig:null,$doc:"str -> Construct a date from the output of date.isoformat()"},today:{$meth:function today(){const t=$.time.tp$call([]);return this.tp$getattr(B).tp$call([t])},$flags:{NoArgs:!0},$textsig:null,$doc:"Current date or datetime: same as self.__class__.fromtimestamp(time.time())."}},methods:{ctime:{$meth:function ctime(){const t=this.$toOrdinal()%7||7,e=ft[t],n=lt[this.$month];return new w(`${e} ${n} ${_d(this.$day," ",2)} 00:00:00 ${_d(this.$year,"0",4)}`)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return ctime() style string."},strftime:{$meth:function strftime(t){if(!k(t))throw new z("must be str, not "+c(t));return _wrap_strftime(this,t=t.toString(),this.$timetuple())},$flags:{OneArg:!0},$textsig:null,$doc:"format -> strftime() style string."},__format__:{$meth:function __format__(t){if(!k(t))throw new z("must be str, not "+c(t));return t!==w.$empty?this.tp$getattr(X).tp$call([t]):this.tp$str()},$flags:{OneArg:!0},$textsig:null,$doc:"Formats self with strftime."},timetuple:{$meth:function timetuple(){return this.$timetuple()},$flags:{NoArgs:!0},$textsig:null,$doc:"Return time tuple, compatible with time.localtime()."},isocalendar:{$meth:function isocalendar(){let t=this.$year,e=_isoweek1monday(t);const n=_ymd2ord(this.$year,this.$month,this.$day);let[i,s]=$divMod(n-e,7);return i<0?(t-=1,e=_isoweek1monday(t),[i,s]=$divMod(n-e,7)):i>=52&&n>=_isoweek1monday(t+1)&&(t+=1,i=0),new At(new f(t),new f(i+1),new f(s+1))},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a 3-tuple containing ISO year, week number, and weekday."},isoformat:{$meth:function isoformat(){return this.$isoformat()},$flags:{NoArgs:!0},$textsig:null,$doc:"Return string in ISO 8601 format, YYYY-MM-DD."},isoweekday:{$meth:function isoweekday(){return new f(this.$toOrdinal()%7||7)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return the day of the week represented by the date.\\nMonday == 1 ... Sunday == 7"},toordinal:{$meth:function toordinal(){return new f(this.$toOrdinal())},$flags:{NoArgs:!0},$textsig:null,$doc:"Return proleptic Gregorian ordinal. January 1 of year 1 is day 1."},weekday:{$meth:function weekday(){return new f((this.$toOrdinal()+6)%7)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return the day of the week represented by the date.\\nMonday == 0 ... Sunday == 6"},replace:{$meth:function replace(t,e,n){return t===y&&(t=new f(this.$year)),e===y&&(e=new f(this.$month)),n===y&&(n=new f(this.$day)),this.ob$type.tp$call([t,e,n])},$flags:{NamedArgs:["year","month","day"],Defaults:[y,y,y]},$textsig:null,$doc:"Return date with new specified fields."},__reduce__:{$meth(){return new p([this.ob$type,new p([this.$getState()])])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},getsets:{year:{$get(){return new f(this.$year)},$doc:"year (1-9999)"},month:{$get(){return new f(this.$month)},$doc:"month (1-12)"},day:{$get(){return new f(this.$day)},$doc:"day (1-31)"}},proto:{$cmp(t){return _cmp([this.$year,this.$month,this.$day],[t.$year,t.$month,t.$day])},$getState(){const[t,e]=$divMod(this.$year,256);return new _([t,e,this.$month,this.$day])},$setState(t){const[e,n,i,s]=t,o=256*e+n;this.$year=o,this.$month=i,this.$day=s},$toOrdinal(){return _ymd2ord(this.$year,this.$month,this.$day)},$isoformat(){return new w(`${_d(this.$year,"0",4)}-${_d(this.$month,"0",2)}-${_d(this.$day,"0",2)}`)},$timetuple(){return _build_struct_time(this.$year,this.$month,this.$day,this.$hour||0,this.$min||0,this.$sec||0,-1)},$strftime(t=""){return _wrap_strftime(this,t.toString(),this.$timetuple())}}});vt.prototype.min=new vt(1,1,1),vt.prototype.max=new vt(9999,12,31),vt.prototype.resolution=new wt(1);const Mt=E.tzinfo=h("datetime.tzinfo",{constructor:function tzinfo(){},methods:{tzname:{$meth:function tzname(t){throw new x("tzinfo subclass must override tzname()")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime -> string name of time zone."},utcoffset:{$meth:function utcoffset(t){throw new x("tzinfo subclass must override utcoffset()")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime -> timedelta showing offset from UTC, negative values indicating West of UTC"},dst:{$meth:function dst(t){throw new x("tzinfo subclass must override dst()")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime -> DST offset as timedelta positive east of UTC."},fromutc:{$meth:function fromutc(e){if(!(e instanceof Nt))throw new z("fromutc() requires a datetime argument");if(e.$tzinfo!==this)throw new v("dt.tzinfo is not self");const n=r(e.tp$getattr(U));if(n===y)throw new v("fromutc() requires a non-None utcoffset() result");let i=r(e.tp$getattr(F));if(i===y)throw new v("fromutc() requires a non-None dst() result");const s=q(n,i,"Sub");if(t(s)&&(e=q(e,s,"Add"),i=r(e.tp$getattr(F)),i===y))throw new v("fromutc(): dt.dst gave inconsistent results; cannot convert");return q(e,i,"Add")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime in UTC -> datetime in local time."},__reduce__:{$meth(){let e,n;const i=T(this,new w("__getinitargs__"),y);e=i!==y?r(i,[]):new p;const s=T(this,new w("__getstate__"),y);return s!==y?n=r(s,[]):(n=T(this,new w("__dict__"),y),n=t(n)?n:y),new p(n===y?[this.ob$type,e]:[this.ob$type,e,n])},$flags:{NoArgs:!0},$textsig:null,$doc:"-> (cls, state)"}}}),At=h("datetime.IsoCalendarDate",{base:p,constructor:function IsoCalendarDate(t,e,n){this.y=t,this.w=e,this.wd=n,p.call(this,[t,e,n])},slots:{tp$new(t,e){const[n,i,s]=l("IsoCalendarDate",["year","week","weekday"],t,e);return new this.constructor(n,i,s)},$r(){return new w(`${this.tp$name}(year=${this.y}, week=${this.w}, weekday=${this.wd})`)}},getsets:{year:{$get(){return this.y}},week:{$get(){return this.w}},weekday:{$get(){return this.wd}}}}),xt=E.time=h("datetime.time",{constructor:function time(t=0,e=0,n=0,i=0,s=null,o=0){this.$hour=t,this.$min=e,this.$sec=n,this.$micro=i,this.$tzinfo=s||y,this.$fold=o,this.$hashcode=-1},slots:{tp$new(t,e){m("time",t,0,5);let n,[i,s,o,r,a,$]=l("time",["hour","minute","second","microsecond","tzinfo","fold"],t,e,[W,W,W,W,y,W]);if(i instanceof _&&6===(n=i.valueOf()).length&&(127&n[0])<24){const t=new this.constructor;return t.$setState(n,s===W?y:s),t}if([i,s,o,r,$]=_check_time_fields(i,s,o,r,$),_check_tzinfo_arg(a),this===xt.prototype)return new xt(i,s,o,r,a,$);{const t=new this.constructor;return xt.call(t,i,s,o,r,a,$),t}},tp$richcompare(t,e){return t instanceof xt?_do_compare(this,t,e):b},tp$hash(){if(-1===this.$hashcode){const e=this.$fold?r(this.tp$getattr(J),[],["fold",W]):this,n=r(e.tp$getattr(U));if(t(n)){let[t,e]=pyDivMod(new wt(0,3600*this.$hour+60*this.$min).nb$subtract(n),pt);e=e.nb$floor_divide(gt),0<=t&&t<=24?(t=I(t),e=I(e),this.$hashcode=u(new xt(t,e,this.$sec,this.$micro))):this.$hashcode=u(new p([t,e,new f(this.$sec),new f(this.$micro)]))}else this.$hashcode=u(e.$getState()[0])}return this.$hashcode},$r(){let t;return t=0!==this.$micro?`, ${this.$sec}, ${this.$micro}`:0!==this.$sec?`, ${this.$sec}`:"",t=`${this.tp$name}(${this.$hour}, ${this.$min}${t})`,this.$tzinfo!==y&&(t=t.slice(0,-1)+", tzinfo="+s(this.$tzinfo)+")"),this.$fold&&(t=t.slice(0,-1)+", fold=1)"),new w(t)},tp$str(){return this.tp$getattr(H).tp$call([])}},methods:{isoformat:{$meth:function isoformat(t){let e=_format_time(this.$hour,this.$min,this.$sec,this.$micro,t);const n=this.$tzstr();return n&&(e+=n),new w(e)},$flags:{NamedArgs:["timespec"],Defaults:[C]},$textsig:null,$doc:"Return string in ISO 8601 format, [HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM].\\n\\ntimespec specifies what components of the time to include.\\n"},strftime:{$meth:function strftime(t){if(!k(t))throw new z("must be str, not "+c(t));return _wrap_strftime(this,t=t.toString(),new p([1900,1,1,this.$hour,this.$min,this.$sec,0,1,-1].map((t=>new f(t)))))},$flags:{OneArg:!0},$textsig:null,$doc:"format -> strftime() style string."},__format__:{$meth:function __format__(t){if(!k(t))throw new z("must be str, not "+c(t));return t!==w.$empty?this.tp$getattr(X).tp$call([t]):this.tp$str()},$flags:{OneArg:!0},$textsig:null,$doc:"Formats self with strftime."},utcoffset:{$meth:function utcoffset(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(U),e=r(t,[y]);return _check_utc_offset("utcoffset",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.utcoffset(self)."},tzname:{$meth:function tzname(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(Y),e=r(t,[y]);return _check_tzname(e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.tzname(self)."},dst:{$meth:function dst(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(F),e=r(t,[y]);return _check_utc_offset("dst",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.dst(self)."},replace:{$meth:function replace(t,e){m("replace",t,0,5);let[n,i,s,o,r,a]=l("replace",["hour","minute","second","microsecond","tzinfo","fold"],t,e,[y,y,y,y,g,y]);return n===y&&(n=new f(this.$hour)),i===y&&(i=new f(this.$min)),s===y&&(s=new f(this.$sec)),o===y&&(o=new f(this.$micro)),r===g&&(r=this.$tzinfo),a===y&&(a=new f(this.$fold)),this.ob$type.tp$call([n,i,s,o,r],["fold",a])},$flags:{FastCall:!0},$textsig:null,$doc:"Return time with new specified fields."},__reduce_ex__:{$meth(t){return new p([this.ob$type,new p(this.$getState(R(t)))])},$flags:{OneArg:!0},$textsig:null,$doc:"__reduce_ex__(proto) -> (cls, state)"},__reduce__:{$meth(){return this.tp$getattr(new w("__reduce_ex__")).tp$call([new f(2)])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},classmethods:{fromisoformat:{$meth:function fromisoformat(t){if(!k(t))throw new z("fromisoformat: argument must be str");t=t.toString();try{return this.tp$call(_parse_isoformat_time(t))}catch{throw new v("Invalid isofrmat string: \'"+t+"\'")}},$flags:{OneArg:!0},$textsig:null,$doc:"string -> time from time.isoformat() output"}},getsets:{hour:{$get(){return new f(this.$hour)}},minute:{$get(){return new f(this.$min)}},second:{$get(){return new f(this.$sec)}},microsecond:{$get(){return new f(this.$micro)}},tzinfo:{$get(){return this.$tzinfo}},fold:{$get(){return new f(this.$fold)}}},proto:{$cmp(t,n){const s=this.$tzinfo,o=t.$tzinfo;let a,$,c;if(a=$=y,s===o?c=!0:(a=r(this.tp$getattr(U)),$=r(t.tp$getattr(U)),c=e(a,$,"Eq")),c)return _cmp([this.$hour,this.$min,this.$sec,this.$micro],[t.$hour,t.$min,t.$sec,t.$micro]);if(a===y||$===y){if("Eq"===n||"NotEq"===n)return 2;throw new z("cannot compare naive and aware times")}const h=60*this.$hour+this.$min-i(a.nb$floor_divide(gt)),m=60*t.$hour+t.$min-i($.nb$floor_divide(gt));return _cmp([h,this.$sec,this.$micro],[m,t.$sec,t.$micro])},$tzstr(){return _format_offset(r(this.tp$getattr(U)))},$getState(t=3){let[e,n]=$divMod(this.$micro,256),[i,s]=$divMod(e,256),o=this.$hour;this.$fold&&t>3&&(o+=128);const r=new _([o,this.$min,this.$sec,i,s,n]);return this.$tzinfo===y?[r]:[r,this.$tzinfo]},$setState(t,e){const[n,i,s,o,r,a]=t;n>127?(this.$fold=1,this.$hour=n-128):(this.$fold=0,this.$hour=n),this.$min=i,this.$sec=s,this.$micro=(o<<8|r)<<8|a,this.$tzinfo=e}}});xt.prototype.min=new xt(0,0,0),xt.prototype.max=new xt(23,59,59,999999),xt.prototype.resolution=new wt;const Nt=E.datetime=h("datetime.datetime",{base:vt,constructor:function datetime(t,e,n,i=0,s=0,o=0,r=0,a=null,$=0){this.$year=t,this.$month=e,this.$day=n,this.$hour=i,this.$min=s,this.$sec=o,this.$micro=r,this.$tzinfo=a||y,this.$fold=$,this.$hashcode=-1},slots:{tp$new(t,e){m("datetime",t,0,9);let n,[i,s,o,r,a,$,c,h,u]=l("time",["year","month","day","hour","minute","second","microsecond","tzinfo","fold"],t,e,[null,null,W,W,W,W,y,W]);if(i instanceof _&&10===(n=i.valueOf()).length&&(127&n[2])<=12){const t=new this.constructor;return t.$setState(n,null===s?y:s),t}if([i,s,o]=_check_date_fields(i,s,o),[r,a,$,c,u]=_check_time_fields(r,a,$,c,u),_check_tzinfo_arg(h),this===Nt.prototype)return new Nt(i,s,o,r,a,$,c,h,u);{const t=new this.constructor;return Nt.call(t,i,s,o,r,a,$,c,h,u),t}},$r(){const t=[this.$year,this.$month,this.$day,this.$hour,this.$min,this.$sec,this.$micro];0===t[t.length-1]&&t.pop(),0===t[t.length-1]&&t.pop();let e=`${this.tp$name}(${t.join(", ")})`;return this.$tzinfo!==y&&(e=e.slice(0,-1)+", tzinfo="+s(this.$tzinfo)+")"),this.$fold&&(e=e.slice(0,-1)+", fold=1)"),new w(e)},tp$str(){return this.tp$getattr(H).tp$call([],["sep",new w(" ")])},tp$richcompare(t,e){if(t instanceof Nt)return _do_compare(this,t,e);if(!(t instanceof vt))return b;if("Eq"===e||"NotEq"===e)return"NotEq"===e;throw new z(`can\'t compare \'${c(this)}\' to \'${c(t)}\'`)},tp$as_number:!0,nb$add(t){if(!(t instanceof wt))return b;let e=new wt(this.$toOrdinal(),3600*this.$hour+60*this.$min+this.$sec,this.$micro);e=q(e,t,"Add");let[n,i]=$divMod(e.$secs,3600),[s,o]=$divMod(i,60);if(0 string in ISO 8601 format, YYYY-MM-DDT[HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM].\\nsep is used to separate the year from the time, and defaults to \'T\'.\\ntimespec specifies what components of the time to include (allowed values are \'auto\', \'hours\', \'minutes\', \'seconds\', \'milliseconds\', and \'microseconds\').\\n"},utcoffset:{$meth:function utcoffset(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(U),e=r(t,[this]);return _check_utc_offset("utcoffset",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.utcoffset(self)."},tzname:{$meth:function tzname(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(Y),e=r(t,[this]);return _check_tzname(e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.tzname(self)."},dst:{$meth:function dst(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(F),e=r(t,[this]);return _check_utc_offset("dst",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.dst(self)."},replace:{$meth:function replace(t,e){m("replace",t,0,8);let[n,i,s,o,r,a,$,c,h]=l("replace",["year","month","day","hour","minute","second","microsecond","tzinfo","fold"],t,e,[y,y,y,y,y,y,y,g,y]);return n===y&&(n=new f(this.$year)),i===y&&(i=new f(this.$month)),s===y&&(s=new f(this.$day)),o===y&&(o=new f(this.$hour)),r===y&&(r=new f(this.$min)),a===y&&(a=new f(this.$sec)),$===y&&($=new f(this.$micro)),c===g&&(c=this.$tzinfo),h===y&&(h=new f(this.$fold)),this.ob$type.tp$call([n,i,s,o,r,a,$,c],["fold",h])},$flags:{FastCall:!0},$textsig:null,$doc:"Return datetime with new specified fields."},astimezone:{$meth:function astimezone(t){if(t===y)t=this.$localTimezone();else if(!(t instanceof Mt))throw new z("tz argument must be an instance of tzinfo");let e,n=this.$tzinfo;if(n===y?(n=this.$localTimezone(),e=r(n.tp$getattr(U),[this])):(e=r(n.tp$getattr(U),[this]),e===y&&(n=r(this.tp$getattr(J),[],["tzinfo",y]).$localTimezone(),e=r(n.tp$getattr(U),[this]))),t===n)return this;const i=r(this.nb$subtract(e).tp$getattr(J),[],["tzinfo",t]);return t.tp$getattr(P).tp$call([i])},$flags:{NamedArgs:["tz"],Defaults:[y]},$textsig:null,$doc:"tz -> convert to local time in new timezone tz\\n"},__reduce_ex__:{$meth(t){return new p([this.ob$type,new p(this.$getState(R(t)))])},$flags:{OneArg:!0},$textsig:null,$doc:"__reduce_ex__(proto) -> (cls, state)"},__reduce__:{$meth(){return this.tp$getattr(new w("__reduce_ex__")).tp$call([new f(2)])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},classmethods:{now:{$meth:function now(t){const e=$.time.tp$call([]);return this.tp$getattr(B).tp$call([e,t])},$flags:{NamedArgs:["tz"],Defaults:[y]},$textsig:"($type, /, tz=None)",$doc:"Returns new datetime object representing current time local to tz.\\n\\n tz\\n Timezone object.\\n\\nIf no tz is specified, uses local timezone."},utcnow:{$meth:function utcnow(){const t=$.time.tp$call([]);return this.tp$getattr(L).tp$call([t])},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a new datetime representing UTC day and time."},fromtimestamp:{$meth:function fromtimestamp(t,e){return _check_tzinfo_arg(e),this.prototype.$fromtimestamp.call(this,t,e!==y,e)},$flags:{NamedArgs:["timestamp","tz"],Defaults:[y]},$textsig:null,$doc:"timestamp[, tz] -> tz\'s local time from POSIX timestamp."},utcfromtimestamp:{$meth:function utcfromtimestamp(t){return this.prototype.$fromtimestamp.call(this,t,!0,y)},$flags:{OneArg:!0},$textsig:null,$doc:"Construct a naive UTC datetime from a POSIX timestamp."},strptime:{$meth:function strptime(t,e){return null===ot?Sk.misceval.chain(Sk.importModule("_strptime",!1,!0),(n=>(ot=n.tp$getattr(new w("_strptime_datetime")),ot.tp$call([this,t,e])))):ot.tp$call([this,t,e])},$flags:{MinArgs:2,MaxArgs:2},$textsig:null,$doc:"string, format -> new datetime parsed from a string (like time.strptime())."},combine:{$meth:function combine(t,e,n){if(!(t instanceof vt))throw new z("date argument must be a date instance");if(!(e instanceof xt))throw new z("time argument must be a time instance");n===g&&(n=e.$tzinfo);const i=[t.$year,t.$month,t.$day,e.$hour,e.$min,e.$sec,e.$micro].map((t=>new f(t)));return i.push(n),this.tp$call(i,["fold",new f(e.$fold)])},$flags:{NamedArgs:["date","time","tzinfo"],Defaults:[g]},$textsig:null,$doc:"date, time -> datetime with same date and time fields"},fromisoformat:{$meth:function fromisoformat(t){if(!k(t))throw new z("fromisoformat: argument must be str");const e=(t=t.toString()).slice(0,10),n=t.slice(11);let i,s;try{i=_parse_isoformat_date(e)}catch(o){throw new v("Invalid isoformat string: \'"+t+"\'")}if(n)try{s=_parse_isoformat_time(n)}catch(o){throw new v("Invalid isoformat string: \'"+t+"\'")}else s=[W,W,W,W,y];return this.tp$call(i.concat(s))},$flags:{OneArg:!0},$textsig:null,$doc:"string -> datetime from datetime.isoformat() output"}},getsets:{hour:{$get(){return new f(this.$hour)}},minute:{$get(){return new f(this.$min)}},second:{$get(){return new f(this.$sec)}},microsecond:{$get(){return new f(this.$micro)}},tzinfo:{$get(){return this.$tzinfo}},fold:{$get(){return new f(this.$fold)}}},proto:{$cmp(n,i){const s=this.$tzinfo,o=n.$tzinfo;let a,$,c;if(a=$=y,s===o)c=!0;else{if(a=r(this.tp$getattr(U)),$=r(n.tp$getattr(U)),"Eq"===i||"NotEq"===i){const t=r(this.tp$getattr(J),[],["fold",new f(Number(!this.$fold))]);if(e(a,r(t.tp$getattr(U)),"NotEq"))return 2;const i=r(n.tp$getattr(J),[],["fold",new f(Number(!n.$fold))]);if(e($,r(i.tp$getattr(U)),"NotEq"))return 2}c=e(a,$,"Eq")}if(c)return _cmp([this.$year,this.$month,this.$day,this.$hour,this.$min,this.$sec,this.$micro],[n.$year,n.$month,n.$day,n.$hour,n.$min,n.$sec,n.$micro]);if(a===y||$===y){if("Eq"===i||"NotEq"===i)return 2;throw new z("cannot compare naive and aware datetimes")}const h=this.nb$subtract(n);return h.$days<0?-1:t(h)?1:0},$mkTime(){const t=new Nt(1970,1,1),e=this.nb$subtract(t).nb$floor_divide(yt);function local(e){const[n,i,s,o,r,a]=$.localtime.tp$call([e]).v;return Nt.tp$call([n,i,s,o,r,a]).nb$subtract(t).nb$floor_divide(yt)}let n,i,s=local(e).nb$subtract(e),o=e.nb$subtract(s),r=local(o);if(r.ob$eq(e)){if(n=o.nb$add([new f(-86400),new f(86400)][this.$fold]),i=local(n).nb$subtract(n),s.ob$eq(i))return o}else i=r.nb$subtract(o);n=e.nb$subtract(i);if(local(n).ob$eq(e))return n;if(r.ob$eq(e))return o;const a=o.ob$ge(n)?o:n;return[a,o===a?n:o][this.$fold]},$fromtimestamp(t,n,s){let o;if(!N(t))throw new z("a number is required, (got \'"+c(t)+"\'");[o,t]=modf(t);let a=intRound(q(o,nt,"Mult"));a=a.v,t=t.v,a>=1e6?(t+=1,a-=1e6):a<0&&(t-=1,a+=1e6),t=new f(t),Number.isInteger(a)||(a=Math.trunc(a)),a=new f(a);const h=n?$.gmtime:$.localtime;function converter(t){return h.tp$call([t]).v}let[m,u,l,d,_,p]=converter(t);p=new f(Math.min(i(p),59));let g=r(this,[m,u,l,d,_,p,a,s]);if(s===y){const n=86400;[m,u,l,d,_,p]=converter(q(t,new f(n),"Sub"));const i=r(this,[m,u,l,d,_,p,a,s]),o=q(q(g,i,"Sub"),new wt(0,n),"Sub");if(o.$days<0){[m,u,l,d,_,p]=converter(q(t,q(o,yt,"FloorDiv"),"Add"));const n=r(this,[m,u,l,d,_,p,a,s]);e(n,g,"Eq")&&(g.$fold=1)}}else g=r(s.tp$getattr(new w("fromutc")),[g]);return g},$localTimezone(){let t;t=this.$tzinfo===y?this.$mkTime():this.nb$subtract(kt).nb$floor_divide(yt);const e=$.localtime.tp$call([t]),n=(Nt.tp$call(e.v.slice(0,6)),e.tp$getattr(new w("tm_gmtoff"))),i=e.tp$getattr(new w("tm_zone"));return new St(wt.tp$call([W,n]),i)},$getState(t=3){let[e,n]=$divMod(this.$year,256),[i,s]=$divMod(this.$micro,256),[o,r]=$divMod(i,256),a=this.$month;this.$fold&&t>3&&(a+=128);const $=new _([e,n,a,this.$day,this.$hour,this.$min,this.$sec,o,r,s]);return this.$tzinfo===y?[$]:[$,this.$tzinfo]},$setState(t,e){const[n,i,s,o,r,a,$,c,h,m]=t;s>127?(this.$fold=1,this.$month=s-128):(this.$fold=0,this.$month=s),this.$year=256*n+i,this.$day=o,this.$hour=r,this.$min=a,this.$sec=$,this.$micro=(c<<8|h)<<8|m,this.$tzinfo=e}}});function _isoweek1monday(t){const e=_ymd2ord(t,1,1),n=(e+6)%7;let i=e-n;return n>3&&(i+=7),i}Nt.prototype.min=new Nt(1,1,1),Nt.prototype.max=new Nt(9999,12,31,23,59,59,999999),Nt.prototype.resolution=new wt(0,0,1);const St=E.timezone=h("datetime.timezone",{base:Mt,constructor:function timezone(t,n){if(this.$offset=t,this.$name=n||y,!e(this.$minoffset,t,"LtE")||!e(this.$maxoffset,t,"GtE"))throw new v("offset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).")},slots:{tp$new(e,n){let[i,s]=l("timezone",["offset","name"],e,n,[null]);if(!(i instanceof wt))throw new z("offset must be a timedelta");if(null===s){if(!t(i))return this.utc;s=y}else if(!k(s))throw new z("name must be a string");if(this===St.prototype)return new St(i,s);{const t=new this.constructor;return St.call(t,i,s),t}},tp$richcompare(t,n){if(!(t instanceof St))return b;const i=e(this.$offset,t.$offset,"Eq");return"NotEq"===n?!i:"Eq"===n||i&&o(n)?i:b},$r(){return this===this.utc?new w("datetime.timezone.utc"):this.$name===y?new w(`${this.tp$name}(${s(this.$offset)})`):new w(`${this.tp$name}(${s(this.$offset)}, ${s(this.$name)})`)},tp$str(){return this.tp$getattr(Y).tp$call([y])},tp$hash(){return u(this.$offset)}},methods:{tzname:{$meth:function tzname(t){if(t instanceof Nt||t===y)return this.$name===y?this.$nameFromOff(this.$offset):this.$name;throw new z("tzname() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"If name is specified when timezone is created, returns the name. Otherwise returns offset as \'UTC(+|-)HH:MM\'."},utcoffset:{$meth:function utcoffset(t){if(t instanceof Nt||t===y)return this.$offset;throw new z("utcoffset() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"Return fixed offset."},dst:{$meth:function dst(t){if(t instanceof Nt||t===y)return y;throw new z("dst() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"Return None."},fromutc:{$meth:function fromutc(t){if(t instanceof Nt){if(t.$tzinfo!==this)throw new v("fromutc: dt.tzinfo is not self");return q(t,this.$offset,"Add")}throw new z("fromutc() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime in UTC -> datetime in local time."},__getinitargs__:{$meth(){return this.$name===y?new p([this.$offset]):new p([this.$offset,this.$name])},$flags:{NoArgs:!0}}},proto:{$maxoffset:new wt(0,86399,999999),$minoffset:new wt(-1,0,1),$nameFromOff(n){if(!t(n))return new w("UTC");let i,s,o,r,a,$;return e(n,bt,"Lt")?(i="-",n=n.nb$negative()):i="+",[s,o]=pyDivMod(n,pt),[r,o]=pyDivMod(o,gt),a=o.$secs,$=o.$micro,new w($?`UTC${i}${_d(s)}:${_d(r)}:${_d(a)}.${_d($,"0",6)}`:a?`UTC${i}${_d(s)}:${_d(r)}:${_d(a)}`:`UTC${i}${_d(s)}:${_d(r)}`)}}});St.prototype.utc=new St(new wt(0)),St.prototype.min=new St(new wt(0,-86340,0)),St.prototype.max=new St(new wt(0,86340,0));const kt=new Nt(1970,1,1,0,0,0,0,St.prototype.utc);return E}))}',"src/lib/document.js":'function $builtinmodule(){const{builtin:{str:t},misceval:{callsimArray:e},ffi:{toPy:r},abstr:{gattr:a}}=Sk,n={__name__:new t("document")},_=r(Sk.global.document);return Sk.abstr.setUpModuleMethods("document",n,{__getattr__:{$meth:t=>a(_,t,!0),$flags:{OneArg:!0}},__dir__:{$meth:()=>e(_.tp$getattr(t.$dir)),$flags:{NoArgs:!0}}}),n}',"src/lib/fractions.js":'function $builtinmodule(t){const e={};return Sk.misceval.chain(Sk.importModule("math",!1,!0),(t=>(e.math=t,Sk.importModule("sys",!1,!0))),(t=>(e.sys=t,fractionsMod(e))))}function fractionsMod({math:t,sys:e}){const{builtin:{int_:n,bool:{true$:i,false$:r},none:{none$:s},NotImplemented:{NotImplemented$:o},tuple:a,float_:$,complex:u,str:h,isinstance:l,TypeError:m,ZeroDivisionError:d,ValueError:f,NotImplementedError:c,abs:_,round:b,pow:p},ffi:{remapToPy:g},abstr:{buildNativeClass:w,copyKeywordsToNamedArgs:v,numberBinOp:y,typeName:k,lookupSpecial:E,checkArgsLen:N},misceval:{isTrue:F,richCompareBool:A,callsimArray:S,objectRepr:M}}=Sk,O={__name__:new h("fractions"),__all__:g(["Fraction"])},D=/^\\s*(?[-+]?)(?=\\d|\\.\\d)(?\\d*)(?:(?:\\/(?\\d+))?|(?:\\.(?\\d*))?(?:E(?[-+]?\\d+))?)\\s*$/i,q=new n(0),x=new n(1),z=new n(2),I=new n(10),T=new h("numerator"),R=new h("denominator"),B=new h("as_integer_ratio"),C=new h("from_float"),getNumer=t=>t.tp$getattr(T),getDenom=t=>t.tp$getattr(R),mul=(t,e)=>y(t,e,"Mult"),div=(t,e)=>y(t,e,"Div"),pow=(t,e)=>y(t,e,"Pow"),add=(t,e)=>y(t,e,"Add"),sub=(t,e)=>y(t,e,"Sub"),floorDiv=(t,e)=>y(t,e,"FloorDiv"),divmod=(t,e)=>y(t,e,"DivMod"),mod=(t,e)=>y(t,e,"Mod"),K=t.tp$getattr(new h("gcd")),eq=(t,e)=>A(t,e,"Eq"),lt=(t,e)=>A(t,e,"Lt"),ge=(t,e)=>A(t,e,"GtE"),L={NoArgs:!0},P={OneArg:!0},j=e.tp$getattr(new h("hash_info")),G=j.tp$getattr(new h("modulus")),V=j.tp$getattr(new h("inf"));function _operator_fallbacks(t,e){return[function(n){return isRational(n)?t(this,n):n instanceof $?e(this.nb$float(),n):n instanceof u?e(S(u,[this]),n):o},function(n){return isRational(n)?t(n,this):n instanceof $?e(n,this.nb$float()):n instanceof u?e(n,S(u,[this])):o}]}const[Z,H]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e);return S(ot,[add(mul(getNumer(t),i),mul(getNumer(e),n)),mul(n,i)])}),add),[J,Q]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e);return S(ot,[sub(mul(getNumer(t),i),mul(getNumer(e),n)),mul(n,i)])}),sub),[U,W]=_operator_fallbacks(((t,e)=>S(ot,[mul(getNumer(t),getNumer(e)),mul(getDenom(t),getDenom(e))])),mul),[X,Y]=_operator_fallbacks(((t,e)=>S(ot,[mul(getNumer(t),getDenom(e)),mul(getDenom(t),getNumer(e))])),div),[tt,et]=_operator_fallbacks(((t,e)=>floorDiv(mul(getNumer(t),getDenom(e)),mul(getDenom(t),getNumer(e)))),floorDiv),[nt,it]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e),[r,s]=divmod(mul(getNumer(t),i),mul(n,getNumer(e))).valueOf();return new a([r,S(ot,[s,mul(n,i)])])}),divmod),[rt,st]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e),r=mod(mul(getNumer(t),i),mul(getNumer(e),n));return S(ot,[r,mul(n,i)])}),mod),ot=O.Fraction=w("fractions.Fraction",{constructor:function(t,e){this.$num=t||q,this.$den=e||x},slots:{tp$new(t,e){N("Fraction",t,0,2);let[r,o,a]=v("Fraction",["numerator","denominator","_normalize"],t,e,[q,s,i]);const u=new this.constructor;if(o===s){if(r.ob$type===n)return u.$num=r,u.$den=x,u;if(isRational(r))return u.$num=getNumer(r),u.$den=getDenom(r),u;if(r instanceof $)return[u.$num,u.$den]=S(r.tp$getattr(B)).valueOf(),u;if(!(r instanceof h))throw new m("argument should be a string or a Rational instance");{const t=r.toString().match(D);if(null===t)throw new f("Invalid literal for Fraction: "+M(r));r=new n(t.groups.num||"0");const e=t.groups.denom;if(e)o=new n(e);else{o=x;const e=t.groups.decimal;if(e){const t=new n(""+10**e.length);r=add(mul(r,t),new n(e)),o=mul(o,t)}let i=t.groups.exp;i&&(i=new n(i),lt(i,q)?o=mul(o,pow(I,i.nb$negative())):r=mul(r,pow(I,i)))}"-"==t.groups.sign&&(r=r.nb$negative())}}else if(r.ob$type===n&&o.ob$type===n);else{if(!isRational(r)||!isRational(o))throw new m("both arguments should be Rational instances");[r,o]=[mul(getNumer(r),getDenom(o)),mul(getNumer(o),getDenom(r))]}if(eq(o,q))throw new d(`Fraction(${r}, 0)`);if(F(a)){let t=S(K,[r,o]);lt(o,q)&&(t=t.nb$negative()),r=floorDiv(r,t),o=floorDiv(o,t)}return u.$num=r,u.$den=o,u},$r(){const t=E(this.ob$type,h.$name);return new h(`${t}(${this.$num}, ${this.$den})`)},tp$str(){return eq(this.$den,x)?new h(this.$num):new h(`${this.$num}/${this.$den}`)},tp$hash(){const t=p(this.$den,sub(G,z),G);let e;e=F(t)?mod(mul(_(this.$num),t),G):V;let n=ge(this,q)?e:e.nb$negative();return n=n.tp$hash(),-1===n?-2:n},tp$richcompare(t,e){const op=(t,n)=>A(t,n,e);if("Eq"===e||"NotEq"==e){if(t.ob$type===n){const n=eq(this.$num,t)&&eq(this.$den,x);return"Eq"===e?n:!n}if(t instanceof ot||t instanceof n){const n=eq(this.$num,getNumer(t))&&eq(this.$den,getDenom(t));return"Eq"===e?n:!n}t instanceof u&&eq(t.tp$getattr(new h("imag")),q)&&(t=t.tp$getattr(new h("real")))}return isRational(t)?op(mul(getNumer(this),getDenom(t)),mul(getDenom(this),getNumer(t))):t instanceof $?Number.isFinite(t.valueOf())?op(this,S(this.tp$getattr(C),[t])):op(new $(0),t):o},tp$as_number:!0,nb$add:Z,nb$reflected_add:H,nb$subtract:J,nb$reflected_subtract:Q,nb$multiply:U,nb$reflected_multiply:W,nb$divide:X,nb$reflected_divide:Y,nb$floor_divide:tt,nb$reflected_floor_divide:et,nb$divmod:nt,nb$reflected_divmod:it,nb$remainder:rt,nb$reflected_remainder:st,nb$power(t){if(isRational(t)){if(eq(getDenom(t),x)){let e=getNumer(t);return ge(e,q)?S(ot,[pow(this.$num,e),pow(this.$den,e)],["_normalize",r]):ge(this.$num,q)?(e=e.nb$negative(),S(ot,[pow(this.$den,e),pow(this.$num,e)],["_normalize",r])):(e=e.nb$negative(),S(ot,[pow(this.$den.nb$negative(),e),pow(this.$num.nb$negative(),e)],["_normalize",r]))}return pow(this.nb$float(),S($,[t]))}return pow(this.nb$float(),t)},nb$reflected_power(t){return eq(this.$den,x)&&ge(this.$num,q)?pow(t,this.$num):isRational(t)?pow(new ot(getNumer(t),getDenom(t)),this):eq(this.$den,x)?pow(t,this.$num):pow(t,this.nb$float())},nb$positive(){return new ot(this.$num,this.$den)},nb$negative(){return new ot(this.$num.nb$negative(),this.$den)},nb$abs(){return new ot(this.$num.nb$abs(),this.$den)},nb$bool(){return this.$num.nb$bool()},nb$float(){return div(this.$num,this.$den)}},methods:{as_integer_ratio:{$meth(){return new a([this.$num,this.$den])},$flags:L},limit_denominator:{$meth(t){if(lt(t,x))throw new f("max_denominator should be at least 1");if(ge(t,this.$den))return S(ot,[this]);let[e,n,i,r]=[q,x,x,q],s=this.$num,o=this.$den;for(;;){const a=floorDiv(s,o),$=add(n,mul(a,r));if(lt(t,$))break;[e,n,i,r]=[i,r,add(e,mul(a,i)),$],[s,o]=[o,sub(s,mul(a,o))]}const a=floorDiv(sub(t,n),r),$=S(ot,[add(e,mul(a,i)),add(n,mul(a,r))]),u=S(ot,[i,r]);return ge(_(sub($,this)),_(sub(u,this)))?u:$},$flags:{NamedArgs:["max_denominator"],Defaults:[new n(1e6)]}},__trunc__:{$meth(){return lt(this.$num,q)?floorDiv(this.$num.nb$negative(),this.$den).nb$negative():floorDiv(this.$num,this.$den)},$flags:L},__floor__:{$meth(){return floorDiv(this.$num,this.$den)},$flags:L},__ceil__:{$meth(){return floorDiv(this.$num.nb$negative(),this.$den).nb$negative()},$flags:L},__round__:{$meth(t){if(t===s){const[t,e]=divmod(this.$num,this.$den).valueOf(),n=mul(e,z);return lt(n,this.$den)?t:lt(this.$den,n)?add(t,x):eq(mod(t,z),q)?t:add(t,x)}const e=pow(I,_(t));return lt(q,t)?S(ot,[b(mul(this,e)),e]):S(ot,[mul(b(div(this,e)),e)])},$flags:{NamedArgs:["ndigits"],Defaults:[s]}},__reduce__:{$meth(){return new a([this.ob$type,new a([new h(this)])])},$flags:L},__copy__:{$meth(){return this.ob$type===ot?this:S(this.ob$type,[this.$num,this.$den])},$flags:L},__deepcopy__:{$meth(t){return this.ob$type===ot?this:S(this.ob$type,[this.$num,this.$den])},$flags:P}},classmethods:{from_float:{$meth(t){if(t instanceof n)return S(this,[t]);if(t instanceof $){const[e,n]=S(t.tp$getattr(B)).valueOf();return S(this,[e,n])}throw new m(`${k(this)}.from_float() only takes floats, not ${M(t)}, (${k(t)})`)},$flags:P},from_decimal:{$meth(){throw c("from_decimal not yet implemented in SKulpt")},$flags:P}},getsets:{numerator:{$get(){return this.$num}},denominator:{$get(){return this.$den}},_numerator:{$get(){return this.$num},$set(t){this.$num=t}},_denominator:{$get(){return this.$den},$set(t){this.$den=t}}}}),at=new a([n,ot]),isRational=t=>F(l(t,at));return O}',"src/lib/functools.js":'function $builtinmodule(){const t={};return Sk.misceval.chain(Sk.importModule("collections",!1,!0),(e=>(t._namedtuple=e.$d.namedtuple,functools_mod(t))))}function functools_mod(t){const{object:e,int_:n,str:r,list:s,tuple:a,dict:i,none:{none$:o},bool:{false$:c},NotImplemented:{NotImplemented$:_},bool:l,func:p,method:u,TypeError:h,RuntimeError:d,ValueError:f,NotImplementedError:m,AttributeErrror:w,OverflowError:g,checkNone:$,checkBool:y,checkCallable:k,checkClass:b}=Sk.builtin,{callsimArray:x,callsimOrSuspendArray:A,iterFor:S,chain:E,isIndex:v,asIndexSized:N,isTrue:P,richCompareBool:j,objectRepr:R}=Sk.misceval,{remapToPy:z}=Sk.ffi,{buildNativeClass:q,setUpModuleMethods:T,keywordArrayFromPyDict:I,keywordArrayToPyDict:D,objectHash:C,lookupSpecial:M,copyKeywordsToNamedArgs:W,typeName:F,iter:U,gattr:O}=Sk.abstr,{getSetDict:G,getAttr:B,setAttr:K}=Sk.generic;function proxyFail(t){return new p((()=>{throw new m(t+" is not yet implemented in skulpt")}))}Object.assign(t,{__name__:new r("functools"),__doc__:new r("Tools for working with functions and callable objects"),__all__:new s(["update_wrapper","wraps","WRAPPER_ASSIGNMENTS","WRAPPER_UPDATES","total_ordering","cmp_to_key","cache","lru_cache","reduce","partial","partialmethod","singledispatch","singledispatchmethod","cached_property"].map((t=>new r(t)))),WRAPPER_ASSIGNMENTS:new a(["__module__","__name__","__qualname__","__doc__","__annotations__"].map((t=>new r(t)))),WRAPPER_UPDATES:new a([new r("__dict__")]),singledispatch:proxyFail("singledispatch"),singledispatchmethod:proxyFail("singledispatchmethod"),cached_property:proxyFail("cached_property")});const L=new r("cache_parameters");function _lru_cache(e,n){if(n||(n=c),v(e))(e=N(e,g))<0&&(e=0);else{if(k(e)&&y(n)){const r=e,s=new V(r,e=128,n);return s.tp$setattr(L,new p((()=>z({maxsize:e,typed:n})))),A(t.update_wrapper,[s,r])}if(!$(e))throw new h("Expected first argument to be an integer, a callable, or None")}return new p((r=>{const s=new V(r,e,n);return s.tp$setattr(L,new p((()=>z({maxsize:e,typed:n})))),A(t.update_wrapper,[s,r])}))}const H=t._CacheInfo=x(t._namedtuple,["CacheInfo",["hits","misses","maxsize","currsize"]].map((t=>z(t))),["module",new r("functools")]),V=q("functools._lru_cache_wrapper",{constructor:function _lru_cache_wrapper(t,e,n,r){if(!k(t))throw new h("the first argument must be callable");let s;if($(e))s=infinite_lru_cache_wrapper,e=-1;else{if(!v(e))throw new h("maxsize should be integer or None");(e=N(e,g))<0&&(e=0),s=0===e?uncached_lru_cache_wrapper:bounded_lru_cache_wrapper}this.root={},this.root.prev=this.root.next=this.root,this.wrapper=s,this.maxsize=e,this.typed=n,this.cache=new i([]),this.func=t,this.misses=this.hits=0,this.$d=new i([])},slots:{tp$new(t,e){const[n,r,s,a]=W("_lru_cache_wrapper",["user_function","maxsize","typed","cache_info_type"],t,e);return new V(n,r,s,a)},tp$call(t,e){return this.wrapper(t,e)},tp$descr_get(t,e){return null===t?this:new u(this,t)},tp$doc:"Create a cached callable that wraps another function.\\n\\nuser_function: the function being cached\\n\\nmaxsize: 0 for no caching\\n None for unlimited cache size\\n n for a bounded cache\\n\\ntyped: False cache f(3) and f(3.0) as identical calls\\n True cache f(3) and f(3.0) as distinct calls\\n\\ncache_info_type: namedtuple class with the fields:\\n hits misses currsize maxsize\\n"},methods:{cache_info:{$meth(){return A(H,[this.hits,this.misses,-1===this.maxsize?o:this.maxsize,this.cache.get$size()].map((t=>z(t))))},$flags:{NoArgs:!0},$doc:"Report cache statistics"},cache_clear:{$meth(){return this.hits=this.misses=0,this.root={},this.root.next=this.root.prev=this.root,A(this.cache.tp$getattr(new r("clear"),!0))},$flags:{NoArgs:!0},$doc:"Clear the cache and cache statistics"},__deepcopy__:{$meth(t){return this},$flags:{OneArg:!0}},__copy__:{$meth(){return this},$flags:{NoArgs:!0}}},getsets:{__dict__:G}});function infinite_lru_cache_wrapper(t,e){const n=_make_key(t,e,this.typed),r=this.cache.mp$lookup(n);return void 0!==r?(this.hits++,r):(this.misses++,E(A(this.func,t,e),(t=>(this.cache.mp$ass_subscript(n,t),t))))}function uncached_lru_cache_wrapper(t,e){return this.misses++,A(this.func,t,e)}function bounded_lru_cache_wrapper(t,e){const n=_make_key(t,e,this.typed),r=this.cache.mp$lookup(n);if(void 0!==r){const{result:t}=r;return lru_cache_extract_link(r),lru_cache_append_link(this,r),this.hits++,t}return this.misses++,E(A(this.func,t,e),(t=>{if(void 0!==this.cache.mp$lookup(n))return t;if(this.cache.get$size()t.ob$type)),...i.map((t=>t.ob$type)));else if(1===s.length&&X.has(s[0].ob$type))return s[0];return new J(s)}function partial_adjust_args_kwargs(t,e){if(t=this.arg_arr.concat(t),e){e=D(e);const t=this.kwdict.dict$copy();t.dict$merge(e),e=I(t)}else e=I(this.kwdict);return{args:t,kwargs:e}}function partial_new(t,e){if(t.length<1)throw new h("type \'partial\' takes at least 1 argument");let n,r,s=t.shift();if(s instanceof this.sk$builtinBase){const t=s;s=t.fn,n=t.arg_arr,r=t.kwdict}this.check$func(s),n&&(t=n.concat(t));let a=D(e=e||[]);if(r){const t=r.dict$copy();t.dict$merge(a),a=t}if(this.sk$builtinBase===this.constructor)return new this.constructor(s,t,a);{const e=new this.constructor;return this.sk$builtinBase.call(e,s,t,a),e}}function partial_repr(){if(this.in$repr)return new r("...");this.in$repr=!0;const t=[R(this.fn)];return this.arg_arr.forEach((e=>{t.push(R(e))})),this.kwdict.$items().forEach((([e,n])=>{t.push(e.toString()+"="+R(n))})),this.in$repr=!1,new r(this.tp$name+"("+t.join(", ")+")")}t.partial=q("functools.partial",{constructor:function partial(t,e,n){this.fn=t,this.arg_arr=e,this.arg_tup=new a(e),this.kwdict=n,this.in$repr=!1,this.$d=new i([])},slots:{tp$new:partial_new,tp$call(t,e){return({args:t,kwargs:e}=this.adj$args_kws(t,e)),this.fn.tp$call(t,e)},tp$doc:"partial(func, *args, **keywords) - new function with partial application\\n of the given arguments and keywords.\\n",$r:partial_repr,tp$getattr:B,tp$setattr:K},getsets:{func:{$get(){return this.fn},$doc:"function object to use in future partial calls"},args:{$get(){return this.arg_tup},$doc:"tuple of arguments to future partial calls"},keywords:{$get(){return this.kwdict},$doc:"dictionary of keyword arguments to future partial calls"},__dict__:G},methods:{},classmethods:Sk.generic.classGetItem,proto:{adj$args_kws:partial_adjust_args_kwargs,check$func(t){if(!k(t))throw new h("the first argument must be callable")}}}),t.partialmethod=q("functools.partialmethod",{constructor:function partialmethod(t,e,n){this.fn=t,this.arg_arr=e,this.arg_tup=new a(e),this.kwdict=n},slots:{tp$new:partial_new,tp$doc:"Method descriptor with partial application of the given arguments\\n and keywords.\\n\\n Supports wrapping existing descriptors and handles non-descriptor\\n callables as instance methods.\\n ",$r:partial_repr,tp$descr_get(e,n){let r;if(this.fn.tp$descr_get){const s=this.fn.tp$descr_get(e,n);if(s!==this.fn){if(!k(s))throw new h("type \'partial\' requires a callable");r=new t.partial(s,this.arg_arr.slice(0),this.kwdict.dict$copy());const e=M(s,this.str$self);void 0!==e&&r.tp$setattr(this.str$self,e)}}return void 0===r&&(r=this.make$unbound().tp$descr_get(e,n)),r}},methods:{_make_unbound_method:{$meth(){return this.make$unbound()},$flags:{NoArgs:!0}}},classmethods:Sk.generic.classGetItem,getsets:{func:{$get(){return this.fn},$doc:"function object to use in future partial calls"},args:{$get(){return this.arg_tup},$doc:"tuple of arguments to future partial calls"},keywords:{$get(){return this.kwdict},$doc:"dictionary of keyword arguments to future partial calls"},__dict__:G},proto:{str$self:new r("__self__"),make$unbound(){const t=this;function _method(e,n){const r=e.shift();return({args:e,kwargs:n}=t.adj$args_kws(e,n)),e.unshift(r),A(t.fn,e,n)}return _method.co_fastcall=!0,new p(_method)},adj$args_kws:partial_adjust_args_kwargs,check$func(t){if(!k(t)&&void 0===t.tp$descr_get)throw new h(R(t)+" is not callable or a descriptor")}}});const Y={__lt__:r.$lt,__le__:r.$le,__gt__:r.$gt,__ge__:r.$ge};function from_slot(t,e){const n=Y[t];function compare_slot(t,r){let s=x(t.tp$getattr(n),[r]);return s===_?s:(s=P(s),new l(e(s,t,r)))}return compare_slot.co_name=n,compare_slot}const Z=from_slot("__lt__",((t,e,n)=>!t&&j(e,n,"NotEq"))),tt=from_slot("__lt__",((t,e,n)=>t||j(e,n,"Eq"))),et=from_slot("__lt__",(t=>!t)),nt=from_slot("__le__",((t,e,n)=>!t||j(e,n,"Eq"))),rt=from_slot("__le__",((t,e,n)=>t&&j(e,n,"NotEq"))),st=from_slot("__le__",(t=>!t)),at=from_slot("__gt__",((t,e,n)=>!t&&j(e,n,"NotEq"))),it=from_slot("__gt__",((t,e,n)=>t||j(e,n,"Eq"))),ot=from_slot("__gt__",(t=>!t)),ct=from_slot("__ge__",((t,e,n)=>!t||j(e,n,"Eq"))),_t=from_slot("__ge__",((t,e,n)=>t&&j(e,n,"NotEq"))),lt=from_slot("__ge__",(t=>!t)),pt={__lt__:{__gt__:new p(Z),__le__:new p(tt),__ge__:new p(et)},__le__:{__ge__:new p(nt),__lt__:new p(rt),__gt__:new p(st)},__gt__:{__lt__:new p(at),__ge__:new p(it),__le__:new p(ot)},__ge__:{__le__:new p(ct),__gt__:new p(_t),__lt__:new p(lt)}},ut={__lt__:"ob$lt",__le__:"ob$le",__gt__:"ob$gt",__ge__:"ob$ge"};const ht=new n(0),dt=q("functools.KeyWrapper",{constructor:function(t,e){this.cmp=t,this.obj=e},slots:{tp$call(t,e){const[n]=W("K",["obj"],t,e,[]);return new dt(this.cmp,n)},tp$richcompare(t,e){if(!(t instanceof dt))throw new h("other argument must be K instance");const n=this.obj,r=t.obj;if(!n||!r)throw new w("object");const s=A(this.cmp,[n,r]);return E(s,(t=>j(t,ht,e)))},tp$getattr:B,tp$hash:o},getsets:{obj:{$get(){return this.obj||o},$set(t){this.obj=t},$doc:"Value wrapped by a key function."}}}),ft=new r("update"),mt=new r("__wrapped__");return T("functools",t,{cache:{$meth:function cache(t){return A(_lru_cache(o),[t])},$flags:{OneArg:!0},$doc:\'Simple lightweight unbounded cache. Sometimes called "memoize".\',$textsig:"($module, user_function, /)"},lru_cache:{$meth:_lru_cache,$flags:{NamedArgs:["maxsize","typed"],Defaults:[new n(128),c]},$doc:"Least-recently-used cache decorator.\\n\\nIf *maxsize* is set to None, the LRU features are disabled and the cache\\ncan grow without bound.\\n\\nIf *typed* is True, arguments of different types will be cached separately.\\nFor example, f(3.0) and f(3) will be treated as distinct calls with\\ndistinct results.\\n\\nArguments to the cached function must be hashable.\\n\\nView the cache statistics named tuple (hits, misses, maxsize, currsize)\\nwith f.cache_info(). Clear the cache and statistics with f.cache_clear().\\nAccess the underlying function with f.__wrapped__.\\n\\nSee: http://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)"},cmp_to_key:{$meth:function cmp_to_key(t){return new dt(t)},$flags:{NamedArgs:["mycmp"],Defaults:[]},$doc:"Convert a cmp= function into a key= function.",$textsig:"($module, cmp, /)"},reduce:{$meth:function reduce(t,e,n){const r=U(e);let s;return n=n||r.tp$iternext(!0),E(n,(e=>{if(void 0===e)throw new h("reduce() of empty sequence with no initial value");return s=e,S(r,(e=>E(A(t,[s,e]),(t=>{s=t}))))}),(()=>s))},$flags:{MinArgs:2,MaxArgs:3},$doc:"reduce(function, sequence[, initial]) -> value\\n\\nApply a function of two arguments cumulatively to the items of a sequence,\\nfrom left to right, so as to reduce the sequence to a single value.\\nFor example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates\\n((((1+2)+3)+4)+5). If initial is present, it is placed before the items\\nof the sequence in the calculation, and serves as a default when the\\nsequence is empty.",$textsig:"($module, function, sequence[, initial], /)"},total_ordering:{$meth:function total_ordering(t){const n=[];if(!b(t))throw new h("total ordering only supported for type objects not \'"+F(t)+"\'");if(Object.keys(pt).forEach((r=>{const s=ut[r];t.prototype[s]!==e.prototype[s]&&n.push(r)})),!n.length)throw new f("must define atleast one ordering operation: <, >, <=, >=");const r=n[0];return Object.entries(pt[r]).forEach((([e,r])=>{n.includes(e)||t.tp$setattr(Y[e],r)})),t},$flags:{OneArg:!0},$doc:"Class decorator that fills in missing ordering methods"},update_wrapper:{$meth:function update_wrapper(t,e,n,r){let s,a=U(n);for(let i=a.tp$iternext();void 0!==i;i=a.tp$iternext())void 0!==(s=e.tp$getattr(i))&&t.tp$setattr(i,s);a=U(r);for(let o=a.tp$iternext();void 0!==o;o=a.tp$iternext()){s=e.tp$getattr(o)||new i([]);const n=O(t,o),r=O(n,ft);x(r,[s])}return t.tp$setattr(mt,e),t},$flags:{NamedArgs:["wrapper","wrapped","assigned","updated"],Defaults:[t.WRAPPER_ASSIGNMENTS,t.WRAPPER_UPDATES]},$doc:"Update a wrapper function to look like the wrapped function\\n\\n wrapper is the function to be updated\\n wrapped is the original function\\n assigned is a tuple naming the attributes assigned directly\\n from the wrapped function to the wrapper function (defaults to\\n functools.WRAPPER_ASSIGNMENTS)\\n updated is a tuple naming the attributes of the wrapper that\\n are updated with the corresponding attribute from the wrapped\\n function (defaults to functools.WRAPPER_UPDATES)\\n ",$textsig:"($module, /, wrapper, wrapped, assigned=(\'__module__\', \'__name__\', \'__qualname__\', \'__doc__\', \'__annotations__\'), updated=(\'__dict__\',))"},wraps:{$meth:function wraps(e,n,r){const s=["wrapped",e,"assigned",n,"updated",r];return A(t.partial,[t.update_wrapper],s)},$flags:{NamedArgs:["wrapped","assigned","updated"],Defaults:[t.WRAPPER_ASSIGNMENTS,t.WRAPPER_UPDATES]},$doc:"Decorator factory to apply update_wrapper() to a wrapper function\\n\\n Returns a decorator that invokes update_wrapper() with the decorated\\n function as the wrapper argument and the arguments to wraps() as the\\n remaining arguments. Default arguments are as for update_wrapper().\\n This is a convenience function to simplify applying partial() to\\n update_wrapper().\\n ",$textsig:"($module, /, wrapped, assigned=(\'__module__\', \'__name__\', \'__qualname__\', \'__doc__\', \'__annotations__\'), updated=(\'__dict__\',))"}}),t}',"src/lib/image.js":'var ImageMod,$builtinmodule;ImageMod||((ImageMod={}).canvasLib=[]),$builtinmodule=function(e){var n,t,i,a,u,l,r,s={__name__:new Sk.builtin.str("image")};return s.Image=Sk.misceval.buildClass(s,(function(e,n){u=function(e){e.width=e.image.width,e.height=e.image.height,e.delay=0,e.updateCount=0,e.updateInterval=1,e.lastx=0,e.lasty=0,e.canvas=document.createElement("canvas"),e.canvas.height=e.height,e.canvas.width=e.width,e.ctx=e.canvas.getContext("2d"),e.ctx.drawImage(e.image,0,0),e.imagedata=e.ctx.getImageData(0,0,e.width,e.height)},n.__init__=new Sk.builtin.func((function(e,n){var t;Sk.builtin.pyCheckArgsLen("__init__",arguments.length,2,2);try{e.image=document.getElementById(Sk.ffi.remapToJs(n)),u(e)}catch(i){e.image=null}if(null==e.image)return(t=new Sk.misceval.Suspension).resume=function(){if(t.data.error)throw new Sk.builtin.IOError(t.data.error.message)},t.data={type:"Sk.promise",promise:new Promise((function(t,i){var a=new Image;a.crossOrigin="",a.onerror=function(){i(Error("Failed to load URL: "+a.src))},a.onload=function(){e.image=this,u(e),t()},a.src=r(n)}))},t})),r=function(e){var n,t,i="function"==typeof Sk.imageProxy?Sk.imageProxy:function(e){return(n=document.createElement("a")).href=t,window.location.host!==n.host?Sk.imageProxy+"/"+e:e};return t=i(t=Sk.ffi.remapToJs(e))},l=function(e,n,t){if(n<0||t<0||n>=e.width||t>=e.height)throw new Sk.builtin.ValueError("Pixel index out of range.")};var setdelay=function(e,n,t){var i;Sk.builtin.pyCheckArgsLen("setdelay",arguments.length,2,3),e.delay=Sk.ffi.remapToJs(n),i=Sk.builtin.asnum$(t),e.updateInterval=i||1};n.set_delay=new Sk.builtin.func(setdelay),n.setDelay=new Sk.builtin.func(setdelay);var getpixels=function(e){var n,t=[];for(Sk.builtin.pyCheckArgsLen("getpixels",arguments.length,1,1),n=0;n=e.width?e.lastCtx.putImageData(e.imagedata,e.lastUlx,e.lastUly,0,e.lasty,e.width,2):e.lasty+e.updateInterval>=e.height?e.lastCtx.putImageData(e.imagedata,e.lastUlx,e.lastUly,e.lastx,0,2,e.height):e.lastCtx.putImageData(e.imagedata,e.lastUlx,e.lastUly,Math.min(n,e.lastx),Math.min(t,e.lasty),Math.max(Math.abs(n-e.lastx),1),Math.max(Math.abs(t-e.lasty),1)),e.lastx=n,e.lasty=t,e.delay>0?window.setTimeout(i,e.delay):i()):i()}))},i};var setpixel=function(e,n,t,i){var u;return Sk.builtin.pyCheckArgsLen("setpixel",arguments.length,4,4),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),l(e,n,t),u=4*t*e.width+4*n,e.imagedata.data[u]=Sk.builtin.asnum$(Sk.misceval.callsimArray(i.getRed,[i])),e.imagedata.data[u+1]=Sk.builtin.asnum$(Sk.misceval.callsimArray(i.getGreen,[i])),e.imagedata.data[u+2]=Sk.builtin.asnum$(Sk.misceval.callsimArray(i.getBlue,[i])),e.imagedata.data[u+3]=255,a(e,n,t)};n.set_pixel=new Sk.builtin.func(setpixel),n.setPixel=new Sk.builtin.func(setpixel);var setpixelat=function(e,n,t){var i,u,r;return Sk.builtin.pyCheckArgsLen("setpixelat",arguments.length,3,3),i=(n=Sk.builtin.asnum$(n))%e.image.width,u=Math.floor(n/e.image.width),l(e,i,u),r=4*u*e.width+4*i,e.imagedata.data[r]=Sk.builtin.asnum$(Sk.misceval.callsimArray(t.getRed,[t])),e.imagedata.data[r+1]=Sk.builtin.asnum$(Sk.misceval.callsimArray(t.getGreen,[t])),e.imagedata.data[r+2]=Sk.builtin.asnum$(Sk.misceval.callsimArray(t.getBlue,[t])),e.imagedata.data[r+3]=255,a(e,i,u)};n.set_pixel_at=new Sk.builtin.func(setpixelat),n.setPixelAt=new Sk.builtin.func(setpixelat);var updatepixel=function(e,n){var t,i,u;return Sk.builtin.pyCheckArgsLen("updatepixel",arguments.length,2,2),t=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getX,[n])),i=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getY,[n])),l(e,t,i),u=4*i*e.width+4*t,e.imagedata.data[u]=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getRed,[n])),e.imagedata.data[u+1]=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getGreen,[n])),e.imagedata.data[u+2]=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getBlue,[n])),e.imagedata.data[u+3]=255,a(e,t,i)};n.update_pixel=new Sk.builtin.func(updatepixel),n.updatePixel=new Sk.builtin.func(updatepixel);var getheight=function(e){return Sk.builtin.pyCheckArgsLen("getheight",arguments.length,1,1),new Sk.builtin.int_(e.height)};n.get_height=new Sk.builtin.func(getheight),n.getHeight=new Sk.builtin.func(getheight);var getwidth=function(e,n){return Sk.builtin.pyCheckArgsLen("getwidth",arguments.length,1,1),new Sk.builtin.int_(e.width)};n.get_width=new Sk.builtin.func(getwidth),n.getWidth=new Sk.builtin.func(getwidth),n.__getattr__=new Sk.builtin.func((function(e,n){return"height"===(n=Sk.ffi.remapToJs(n))?Sk.builtin.assk$(e.height):"width"===n?Sk.builtin.assk$(e.width):void 0})),n.__setattr__=new Sk.builtin.func((function(e,n,t){throw"height"===(n=Sk.ffi.remapToJs(n))||"width"===n?new Sk.builtin.Exception("Cannot change height or width they can only be set on creation"):new Sk.builtin.Exception("Unknown attribute: "+n)})),n.draw=new Sk.builtin.func((function(e,n,t,i){var a;return Sk.builtin.pyCheckArgsLen("draw",arguments.length,2,4),(a=new Sk.misceval.Suspension).resume=function(){return Sk.builtin.none.none$},a.data={type:"Sk.promise",promise:new Promise((function(a,u){var l;n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),i=Sk.builtin.asnum$(i),l=Sk.misceval.callsimArray(n.getWin,[n]).getContext("2d"),void 0===t&&(t=0,i=0),e.lastUlx=t,e.lastUly=i,e.lastCtx=l,l.putImageData(e.imagedata,t,i),e.delay>0?window.setTimeout(a,e.delay):window.setTimeout(a,200)}))},a}))}),"Image",[]),i=function(e,n){n.__init__=new Sk.builtin.func((function(e,n,t){Sk.builtin.pyCheckArgsLen("__init__",arguments.length,3,3),e.width=Sk.builtin.asnum$(n),e.height=Sk.builtin.asnum$(t),e.canvas=document.createElement("canvas"),e.ctx=e.canvas.getContext("2d"),e.canvas.height=e.height,e.canvas.width=e.width,e.imagedata=e.ctx.getImageData(0,0,e.width,e.height)}))},s.EmptyImage=Sk.misceval.buildClass(s,i,"EmptyImage",[s.Image]),t=function(e,n){n.__init__=new Sk.builtin.func((function(e,n,t,i,a,u){Sk.builtin.pyCheckArgsLen("__init__",arguments.length,4,6),e.red=Sk.builtin.asnum$(n),e.green=Sk.builtin.asnum$(t),e.blue=Sk.builtin.asnum$(i),e.x=Sk.builtin.asnum$(a),e.y=Sk.builtin.asnum$(u)}));var getred=function(e){return Sk.builtin.pyCheckArgsLen("getred",arguments.length,1,1),Sk.builtin.assk$(e.red)};n.get_red=new Sk.builtin.func(getred),n.getRed=new Sk.builtin.func(getred);var getgreen=function(e){return Sk.builtin.pyCheckArgsLen("getgreen",arguments.length,1,1),Sk.builtin.assk$(e.green)};n.get_green=new Sk.builtin.func(getgreen),n.getGreen=new Sk.builtin.func(getgreen);var getblue=function(e){return Sk.builtin.pyCheckArgsLen("getblue",arguments.length,1,1),Sk.builtin.assk$(e.blue)};n.get_blue=new Sk.builtin.func(getblue),n.getBlue=new Sk.builtin.func(getblue);var getx=function(e){return Sk.builtin.pyCheckArgsLen("getx",arguments.length,1,1),Sk.builtin.assk$(e.x)};n.get_x=new Sk.builtin.func(getx),n.getX=new Sk.builtin.func(getx);var gety=function(e){return Sk.builtin.pyCheckArgsLen("gety",arguments.length,1,1),Sk.builtin.assk$(e.y)};n.get_y=new Sk.builtin.func(gety),n.getY=new Sk.builtin.func(gety);var setred=function(e,n){Sk.builtin.pyCheckArgsLen("setred",arguments.length,2,2),e.red=Sk.builtin.asnum$(n)};n.set_red=new Sk.builtin.func(setred),n.setRed=new Sk.builtin.func(setred);var setgreen=function(e,n){Sk.builtin.pyCheckArgsLen("setgreen",arguments.length,2,2),e.green=Sk.builtin.asnum$(n)};n.set_green=new Sk.builtin.func(setgreen),n.setGreen=new Sk.builtin.func(setgreen);var setblue=function(e,n){Sk.builtin.pyCheckArgsLen("setblue",arguments.length,2,2),e.blue=Sk.builtin.asnum$(n)};n.set_blue=new Sk.builtin.func(setblue),n.setBlue=new Sk.builtin.func(setblue),n.__getattr__=new Sk.builtin.func((function(e,n){return"red"===(n=Sk.ffi.remapToJs(n))?Sk.builtin.assk$(e.red):"green"===n?Sk.builtin.assk$(e.green):"blue"===n?Sk.builtin.assk$(e.blue):void 0})),n.__setattr__=new Sk.builtin.func((function(e,n,t){"red"!==(n=Sk.ffi.remapToJs(n))&&"green"!==n&&"blue"!==n||(e[n]=Sk.builtin.asnum$(t))}));var setx=function(e,n){Sk.builtin.pyCheckArgsLen("setx",arguments.length,2,2),e.x=Sk.builtin.asnum$(n)};n.set_x=new Sk.builtin.func(setx),n.setX=new Sk.builtin.func(setx);var sety=function(e,n){Sk.builtin.pyCheckArgsLen("sety",arguments.length,2,2),e.y=Sk.builtin.asnum$(n)};n.set_y=new Sk.builtin.func(sety),n.setY=new Sk.builtin.func(sety),n.__getitem__=new Sk.builtin.func((function(e,n){return 0===(n=Sk.builtin.asnum$(n))?e.red:1==n?e.green:2==n?e.blue:void 0})),n.__str__=new Sk.builtin.func((function(e){return Sk.ffi.remapToPy("["+e.red+","+e.green+","+e.blue+"]")})),n.getColorTuple=new Sk.builtin.func((function(e,n,t){})),n.setRange=new Sk.builtin.func((function(e,n){e.max=Sk.builtin.asnum$(n)}))},s.Pixel=Sk.misceval.buildClass(s,t,"Pixel",[]),n=function(e,n){n.__init__=new Sk.builtin.func((function(e,n,t){var i,a,u;Sk.builtin.pyCheckArgsLen("__init__",arguments.length,1,3),void 0===(i=ImageMod.canvasLib[Sk.canvas])?(a=document.createElement("canvas"),u=document.getElementById(Sk.canvas),e.theScreen=a,u.appendChild(a),ImageMod.canvasLib[Sk.canvas]=a,ImageMod.canvasLib[Sk.canvas]=e.theScreen):(e.theScreen=i,e.theScreen.height=e.theScreen.height),void 0!==n?(e.theScreen.height=t.v,e.theScreen.width=n.v):(Sk.availableHeight&&(e.theScreen.height=Sk.availableHeight),Sk.availableWidth&&(e.theScreen.width=Sk.availableWidth)),e.theScreen.style.display="block"})),n.getWin=new Sk.builtin.func((function(e){return e.theScreen})),n.exitonclick=new Sk.builtin.func((function(e){var n=e.theScreen.id;e.theScreen.onclick=function(){document.getElementById(n).style.display="none",document.getElementById(n).onclick=null,delete ImageMod.canvasLib[n]}}))},s.ImageWin=Sk.misceval.buildClass(s,n,"ImageWin",[]),s};',"src/lib/itertools.js":'var $builtinmodule=function(t){var e={};function combinationsNew(t,e,i){let r,s;[r,s]=Sk.abstr.copyKeywordsToNamedArgs(t.tp$name,["iterable","r"],e,i,[]);const n=Sk.misceval.arrayFromIterable(r);if(s=Sk.misceval.asIndexSized(s,Sk.builtin.OverFlowError),s<0)throw new Sk.builtin.ValueError("r must be non-negative");if(this===t)return new t.constructor(n,s);{const e=new this.constructor;return t.constructor.call(e,n,s),e}}return e.accumulate=Sk.abstr.buildIteratorClass("itertools.accumulate",{constructor:function accumulate(t,e,i){this.iter=t,this.func=e,this.total=i,this.tp$iternext=()=>(this.total=Sk.builtin.checkNone(this.total)?this.iter.tp$iternext():this.total,this.tp$iternext=this.constructor.prototype.tp$iternext,this.total)},iternext(t){let e=this.iter.tp$iternext();if(void 0!==e)return this.total=Sk.misceval.callsimArray(this.func,[this.total,e]),this.total},slots:{tp$doc:"accumulate(iterable[, func, initial]) --\\x3e accumulate object\\n\\nReturn series of accumulated sums (or other binary function results).",tp$new(t,i){Sk.abstr.checkArgsLen("accumulate",t,0,2);let[r,s,n]=Sk.abstr.copyKeywordsToNamedArgs("accumulate",["iterable","func","initial"],t,i,[Sk.builtin.none.none$,Sk.builtin.none.none$]);if(r=Sk.abstr.iter(r),s=Sk.builtin.checkNone(s)?new Sk.builtin.func(((t,e)=>Sk.abstr.numberBinOp(t,e,"Add"))):s,this===e.accumulate.prototype)return new e.accumulate(r,s,n);{const t=new this.constructor;return e.accumulate.call(t,r,s,n),t}}}}),e.chain=Sk.abstr.buildIteratorClass("itertools.chain",{constructor:function chain(t){this.iterables=t,this.current_it=null,this.tp$iternext=()=>{if(this.tp$iternext=this.constructor.prototype.tp$iternext,this.current_it=this.iterables.tp$iternext(),void 0!==this.current_it)return this.current_it=Sk.abstr.iter(this.current_it),this.tp$iternext();this.tp$iternext=()=>{}}},iternext(t){let e;for(;void 0===e;){if(e=this.current_it.tp$iternext(),void 0!==e)return e;if(this.current_it=this.iterables.tp$iternext(),void 0===this.current_it)return void(this.tp$iternext=()=>{});this.current_it=Sk.abstr.iter(this.current_it)}},slots:{tp$doc:"chain(*iterables) --\\x3e chain object\\n\\nReturn a chain object whose .__next__() method returns elements from the\\nfirst iterable until it is exhausted, then elements from the next\\niterable, until all of the iterables are exhausted.",tp$new(t,i){if(Sk.abstr.checkNoKwargs("chain",i),t=new Sk.builtin.tuple(t.slice(0)).tp$iter(),this===e.chain.prototype)return new e.chain(t);{const i=new this.constructor;return e.chain.call(i,t),i}}},classmethods:Object.assign({from_iterable:{$meth(t){const i=Sk.abstr.iter(t);return new e.chain(i)},$flags:{OneArg:!0},$doc:"chain.from_iterable(iterable) --\\x3e chain object\\n\\nAlternate chain() constructor taking a single iterable argument\\nthat evaluates lazily.",$textsig:null}},Sk.generic.classGetItem)}),e.combinations=Sk.abstr.buildIteratorClass("itertools.combinations",{constructor:function combinations(t,e){this.pool=t,this.r=e,this.indices=new Array(e).fill().map(((t,e)=>e)),this.n=t.length,this.tp$iternext=()=>{if(!(this.r>this.n))return this.tp$iternext=this.constructor.prototype.tp$iternext,new Sk.builtin.tuple(this.pool.slice(0,this.r))}},iternext(t){let e,i=!1;for(e=this.r-1;e>=0;e--)if(this.indices[e]!=e+this.n-this.r){i=!0;break}if(!i)return void(this.r=0);this.indices[e]++;for(let s=e+1;sthis.pool[t]));return new Sk.builtin.tuple(r)},slots:{tp$doc:"combinations(iterable, r) --\\x3e combinations object\\n\\nReturn successive r-length combinations of elements in the iterable.\\n\\ncombinations(range(4), 3) --\\x3e (0,1,2), (0,1,3), (0,2,3), (1,2,3)",tp$new(t,i){return combinationsNew.call(this,e.combinations.prototype,t,i)}}}),e.combinations_with_replacement=Sk.abstr.buildIteratorClass("itertools.combinations_with_replacement",{constructor:function combinations_with_replacement(t,e){this.pool=t,this.r=e,this.indices=new Array(e).fill(0),this.n=t.length,this.tp$iternext=()=>{if(this.r&&!this.n)return;this.tp$iternext=this.constructor.prototype.tp$iternext;const t=this.indices.map((t=>this.pool[t]));return new Sk.builtin.tuple(t)}},iternext(t){let e,i=!1;for(e=this.r-1;e>=0;e--)if(this.indices[e]!=this.n-1){i=!0;break}if(!i)return void(this.r=0);const r=this.indices[e]+1;for(let n=e;nthis.pool[t]));return new Sk.builtin.tuple(s)},slots:{tp$doc:"combinations_with_replacement(iterable, r) --\\x3e combinations_with_replacement object\\n\\nReturn successive r-length combinations of elements in the iterable\\nallowing individual elements to have successive repeats.\\ncombinations_with_replacement(\'ABC\', 2) --\\x3e AA AB AC BB BC CC",tp$new(t,i){return combinationsNew.call(this,e.combinations_with_replacement.prototype,t,i)}}}),e.compress=Sk.abstr.buildIteratorClass("itertools.compress",{constructor:function compress(t,e){this.data=t,this.selectors=e},iternext(){let t=this.data.tp$iternext(),e=this.selectors.tp$iternext();for(;void 0!==t&&void 0!==e;){if(Sk.misceval.isTrue(e))return t;t=this.data.tp$iternext(),e=this.selectors.tp$iternext()}},slots:{tp$doc:"compress(data, selectors) --\\x3e iterator over selected data\\n\\nReturn data elements corresponding to true selector elements.\\nForms a shorter iterator from selected data elements using the\\nselectors to choose the data elements.",tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("compress",["data","selectors"],t,i,[]),r=Sk.abstr.iter(r),s=Sk.abstr.iter(s),this===e.count.prototype)return new e.compress(r,s);{const t=new this.constructor;return e.compress.call(t,r,s),t}}}}),e.count=Sk.abstr.buildIteratorClass("itertools.count",{constructor:function count(t,e){this.start=t,this.step=e},iternext(){const t=this.start;return this.start=Sk.abstr.numberBinOp(this.start,this.step,"Add"),t},slots:{tp$doc:"count(start=0, step=1) --\\x3e count object\\n\\nReturn a count object whose .__next__() method returns consecutive values.\\nEquivalent to:\\n\\n def count(firstval=0, step=1):\\n x = firstval\\n while 1:\\n yield x\\n x += step\\n",tp$new(t,i){const[r,s]=Sk.abstr.copyKeywordsToNamedArgs("count",["start","step"],t,i,[new Sk.builtin.int_(0),new Sk.builtin.int_(1)]);if(!Sk.builtin.checkNumber(r)&&!Sk.builtin.checkComplex(r))throw new Sk.builtin.TypeError("a number is required");if(!Sk.builtin.checkNumber(s)&&!Sk.builtin.checkComplex(s))throw new Sk.builtin.TypeError("a number is required");if(this===e.count.prototype)return new e.count(r,s);{const t=new this.constructor;return e.count.call(t,r,s),t}},$r(){const t=Sk.misceval.objectRepr(this.start);let e=Sk.misceval.objectRepr(this.step);return e="1"===e?"":", "+e,new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+e+")")}}}),e.cycle=Sk.abstr.buildIteratorClass("itertools.cycle",{constructor:function cycle(t){this.iter=t,this.saved=[],this.consumed=!1,this.i=0,this.length},iternext(){let t;if(!this.consumed){if(t=this.iter.tp$iternext(),void 0!==t)return this.saved.push(t),t;if(this.consumed=!0,this.length=this.saved.length,!this.length)return}return t=this.saved[this.i],this.i=(this.i+1)%this.length,t},slots:{tp$doc:"cycle(iterable) --\\x3e cycle object\\n\\nReturn elements from the iterable until it is exhausted.\\nThen repeat the sequence indefinitely.",tp$new(t,i){Sk.abstr.checkOneArg("cycle",t,i);const r=Sk.abstr.iter(t[0]);if(this===e.cycle.prototype)return new e.cycle(r);{const t=new this.constructor;return e.cycle.call(t,r),t}}}}),e.dropwhile=Sk.abstr.buildIteratorClass("itertools.dropwhile",{constructor:function dropwhile(t,e){this.predicate=t,this.iter=e,this.passed},iternext(){let t=this.iter.tp$iternext();for(;void 0===this.passed&&void 0!==t;){const e=Sk.misceval.callsimArray(this.predicate,[t]);if(!Sk.misceval.isTrue(e))return this.passed=!0,t;t=this.iter.tp$iternext()}return t},slots:{tp$doc:"dropwhile(predicate, iterable) --\\x3e dropwhile object\\n\\nDrop items from the iterable while predicate(item) is true.\\nAfterwards, return every element until the iterable is exhausted.",tp$new(t,i){Sk.abstr.checkNoKwargs("dropwhile",i),Sk.abstr.checkArgsLen("dropwhile",t,2,2);const r=t[0],s=Sk.abstr.iter(t[1]);if(this===e.dropwhile.prototype)return new e.dropwhile(r,s);{const t=new this.constructor;return e.dropwhile.call(t,r,s),t}}}}),e.filterfalse=Sk.abstr.buildIteratorClass("itertools.filterfalse",{constructor:function filterfalse(t,e){this.predicate=t,this.iter=e},iternext(t){let e=this.iter.tp$iternext();if(void 0===e)return;let i=Sk.misceval.callsimArray(this.predicate,[e]);for(;Sk.misceval.isTrue(i);){if(e=this.iter.tp$iternext(),void 0===e)return;i=Sk.misceval.callsimArray(this.predicate,[e])}return e},slots:{tp$doc:"filterfalse(function or None, sequence) --\\x3e filterfalse object\\n\\nReturn those items of sequence for which function(item) is false.\\nIf function is None, return the items that are false.",tp$new(t,i){Sk.abstr.checkNoKwargs("filterfalse",i),Sk.abstr.checkArgsLen("filterfalse",t,2,2);const r=Sk.builtin.checkNone(t[0])?Sk.builtin.bool:t[0],s=Sk.abstr.iter(t[1]);if(this===e.filterfalse.prototype)return new e.filterfalse(r,s);{const t=new this.constructor;return e.filterfalse.call(t,r,s),t}}}}),e._grouper=Sk.abstr.buildIteratorClass("itertools._grouper",{constructor:function _grouper(t,e){this.groupby=t,this.tgtkey=t.tgtkey,this.id=t.id},iternext(t){const e=Sk.misceval.richCompareBool(this.groupby.currkey,this.tgtkey,"Eq");if(this.groupby.id===this.id&&e){let t=this.groupby.currval;return this.groupby.currval=this.groupby.iter.tp$iternext(),void 0!==this.groupby.currval&&(this.groupby.currkey=Sk.misceval.callsimArray(this.groupby.keyf,[this.groupby.currval])),t}}}),e.groupby=Sk.abstr.buildIteratorClass("itertools.groupby",{constructor:function groupby(t,e){this.iter=t,this.keyf=e,this.currval,this.currkey=this.tgtkey=new Sk.builtin.object,this.id},iternext(t){this.id=new Object;let i=Sk.misceval.richCompareBool(this.currkey,this.tgtkey,"Eq");for(;i;){if(this.currval=this.iter.tp$iternext(),void 0===this.currval)return;this.currkey=Sk.misceval.callsimArray(this.keyf,[this.currval]),i=Sk.misceval.richCompareBool(this.currkey,this.tgtkey,"Eq")}this.tgtkey=this.currkey;const r=new e._grouper(this);return new Sk.builtin.tuple([this.currkey,r])},slots:{tp$doc:"groupby(iterable, key=None) -> make an iterator that returns consecutive\\nkeys and groups from the iterable. If the key function is not specified or\\nis None, the element itself is used for grouping.\\n",tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("groupby",["iterable","key"],t,i,[Sk.builtin.none.none$]),r=Sk.abstr.iter(r),s=Sk.builtin.checkNone(s)?new Sk.builtin.func((t=>t)):s,this===e.groupby.prototype)return new e.groupby(r,s);{const t=new this.constructor;return e.groupby.call(t,r,s),t}}}}),e.islice=Sk.abstr.buildIteratorClass("itertools.islice",{constructor:function islice(t,e,i,r){this.iter=t,this.previt=e,this.stop=i,this.step=r,this.tp$iternext=()=>{if(this.tp$iternext=this.constructor.prototype.tp$iternext,!(this.previt>=this.stop)){for(let t=0;t=this.stop)){for(let t=this.previt+1;tNumber.MAX_SAFE_INTEGER)throw new Sk.builtin.ValueError("Stop for islice() must be None or an integer: 0 <= x <= sys.maxsize.");if(!Sk.builtin.checkNone(s)&&!Sk.misceval.isIndex(s))throw new Sk.builtin.ValueError("Indices for islice() must be None or an integer: 0 <= x <= sys.maxsize.");if(s=Sk.builtin.checkNone(s)?0:Sk.misceval.asIndexSized(s),s<0||s>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.ValueError("Indices for islice() must be None or an integer: 0 <= x <= sys.maxsize.");if(!Sk.builtin.checkNone(o)&&!Sk.misceval.isIndex(o))throw new Sk.builtin.ValueError("Step for islice() must be a positive integer or None");if(o=Sk.builtin.checkNone(o)?1:Sk.misceval.asIndexSized(o),o<=0||o>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.ValueError("Step for islice() must be a positive integer or None.");if(this===e.islice.prototype)return new e.islice(r,s,n,o);{const t=new this.constructor;return e.islice.call(t,r,s,n,o),t}}}}),e.permutations=Sk.abstr.buildIteratorClass("itertools.permutations",{constructor:function permutations(t,e){this.pool=t,this.r=e;const i=t.length;this.indices=new Array(i).fill().map(((t,e)=>e)),this.cycles=new Array(e).fill().map(((t,e)=>i-e)),this.n=i,this.tp$iternext=()=>{if(!(this.r>this.n))return this.tp$iternext=this.constructor.prototype.tp$iternext,new Sk.builtin.tuple(this.pool.slice(0,this.r))}},iternext(t){for(let e=this.r-1;e>=0;e--){if(this.cycles[e]--,0!=this.cycles[e]){const t=this.cycles[e];[this.indices[e],this.indices[this.n-t]]=[this.indices[this.n-t],this.indices[e]];const i=this.indices.map((t=>this.pool[t])).slice(0,this.r);return new Sk.builtin.tuple(i)}this.indices.push(this.indices.splice(e,1)[0]),this.cycles[e]=this.n-e}this.r=0},slots:{tp$doc:"permutations(iterable[, r]) --\\x3e permutations object\\n\\nReturn successive r-length permutations of elements in the iterable.\\n\\npermutations(range(3), 2) --\\x3e (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)",tp$new(t,i){let r,s;[r,s]=Sk.abstr.copyKeywordsToNamedArgs("permutations",["iterable","r"],t,i,[Sk.builtin.none.none$]);const n=Sk.misceval.arrayFromIterable(r);if(s=Sk.builtin.checkNone(s)?n.length:Sk.misceval.asIndexSized(s,Sk.builtin.OverFlowError),s<0)throw new Sk.builtin.ValueError("r must be non-negative");if(this===e.permutations.prototype)return new e.permutations(n,s);{const t=new this.constructor;return e.permutations.call(t,n,s),t}}}}),e.product=Sk.abstr.buildIteratorClass("itertools.product",{constructor:function product(t){this.pools=t,this.n=t.length,this.indices=Array(t.length).fill(0),this.pool_sizes=t.map((t=>t.length)),this.tp$iternext=()=>{this.tp$iternext=this.constructor.prototype.tp$iternext;const t=this.indices.map(((t,e)=>this.pools[e][this.indices[e]]));if(!t.some((t=>void 0===t)))return new Sk.builtin.tuple(t);this.n=0}},iternext(t){let e=this.n-1;for(;e>=0&&e=this.pool_sizes[e]?(this.indices[e]=-1,e--):e++;if(this.n&&!this.indices.every((t=>-1===t))){const t=this.indices.map(((t,e)=>this.pools[e][this.indices[e]]));return new Sk.builtin.tuple(t)}this.n=0},slots:{tp$doc:"product(*iterables, repeat=1) --\\x3e product object\\n\\nCartesian product of input iterables. Equivalent to nested for-loops.\\n\\nFor example, product(A, B) returns the same as: ((x,y) for x in A for y in B).\\nThe leftmost iterators are in the outermost for-loop, so the output tuples\\ncycle in a manner similar to an odometer (with the rightmost element changing\\non every iteration).\\n\\nTo compute the product of an iterable with itself, specify the number\\nof repetitions with the optional repeat keyword argument. For example,\\nproduct(A, repeat=4) means the same as product(A, A, A, A).\\n\\nproduct(\'ab\', range(3)) --\\x3e (\'a\',0) (\'a\',1) (\'a\',2) (\'b\',0) (\'b\',1) (\'b\',2)\\nproduct((0,1), (0,1), (0,1)) --\\x3e (0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) ...",tp$new(t,i){let[r]=Sk.abstr.copyKeywordsToNamedArgs("product",["repeat"],[],i,[new Sk.builtin.int_(1)]);if(r=Sk.misceval.asIndexSized(r,Sk.builtin.OverFlowError),r<0)throw new Sk.builtin.ValueError("repeat argument cannot be negative");const s=[];for(let e=0;ethis.object)},iternext(t){return this.times-- >0?this.object:void 0},slots:{tp$doc:"repeat(object [,times]) -> create an iterator which returns the object\\nfor the specified number of times. If not specified, returns the object\\nendlessly.",tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("repeat",["object","times"],t,i,[null]),s=null!==s?Sk.misceval.asIndexSized(s,Sk.builtin.OverFlowError):void 0,this===e.repeat.prototype)return new e.repeat(r,s);{const t=new this.constructor;return e.repeat.call(t,r,s),t}},$r(){const t=Sk.misceval.objectRepr(this.object),e=void 0===this.times?"":", "+(this.times>=0?this.times:0);return new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+e+")")}},methods:{__lenght_hint__:{$meth(){if(void 0===this.times)throw new Sk.builtin.TypeError("len() of unsized object");return new Sk.builtin.int_(this.times)},$flags:{NoArgs:!0},$textsig:null}}}),e.starmap=Sk.abstr.buildIteratorClass("itertools.starmap",{constructor:function starmap(t,e){this.func=t,this.iter=e},iternext(t){const e=this.iter.tp$iternext();if(void 0===e)return;const i=Sk.misceval.arrayFromIterable(e);return Sk.misceval.callsimArray(this.func,i)},slots:{tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("starmap",["func","iterable"],t,i,[]),s=Sk.abstr.iter(s),r=Sk.builtin.checkNone(r)?Sk.builtin.bool:r,this===e.starmap.prototype)return new e.starmap(r,s);{const t=new this.constructor;return e.starmap.call(t,r,s),t}}}}),e.takewhile=Sk.abstr.buildIteratorClass("itertools.takewhile",{constructor:function takewhile(t,e){this.predicate=t,this.iter=e},iternext(){const t=this.iter.tp$iternext();if(void 0!==t){const e=Sk.misceval.callsimArray(this.predicate,[t]);if(Sk.misceval.isTrue(e))return t;this.tp$iternext=()=>{}}},slots:{tp$doc:"takewhile(predicate, iterable) --\\x3e takewhile object\\n\\nReturn successive entries from an iterable as long as the \\npredicate evaluates to true for each entry.",tp$new(t,i){Sk.abstr.checkNoKwargs("takewhile",i),Sk.abstr.checkArgsLen("takewhile",t,2,2);const r=t[0],s=Sk.abstr.iter(t[1]);if(this===e.takewhile.prototype)return new e.takewhile(r,s);{const t=new this.constructor;return e.takewhile.call(t,r,s),t}}}}),e.tee=new Sk.builtin.func((function(){throw new Sk.builtin.NotImplementedError("tee is not yet implemented in Skulpt")})),e.zip_longest=Sk.abstr.buildIteratorClass("itertools.zip_longest",{constructor:function zip_longest(t,e){this.iters=t,this.fillvalue=e,this.active=this.iters.length},iternext(t){if(!this.active)return;let i;const r=[];for(let s=0;s{throw new a(e+" is not yet implemented in skulpt")}))}const j=E.JSONDecodeError=N("json.JSONDecodeError",{base:l,constructor:function JSONDecodeError(e,t,n){const r=t.slice(0,n),o=r.split("\\n").length,s=n-r.lastIndexOf("\\n"),i=`${e}: line ${o} column ${s} (char ${n})`;l.call(this,i),this.$msg=e,this.$doc=t,this.$pos=n,this.$lineno=o,this.$colno=s},getsets:Object.fromEntries(["msg","doc","pos","lineno","colno"].map((e=>[e,{$get(){return g(this["$"+e])}}])))});class JSONEncoder{constructor(e,t,n,r,o,s,i,l){this.skipkeys=e,this.ensure_ascii=t,this.check_circular=n,this.allow_nan=r,this.indent=o,this.separators=s,this.sort_keys=l,this.item_separator=", ",this.key_separator=": ",null!==this.separators?[this.item_separator,this.key_separator]=this.separators:null!==this.indent&&(this.item_separator=","),null!==i&&(this.default=i),this.encoder=this.make_encoder()}default(e){throw new i(`Object of type ${y(e)} is not JSON serializable`)}encode(t){return new e(this.encoder(t))}make_encoder(){let e,t;e=this.check_circular?new Set:null,t=(this.ensure_ascii,JSON.stringify);return function _make_iterencode(e,t,n,r,s,a,u,h,d){null!==r&&"string"!=typeof r&&(r=" ".repeat(r));let f,p,g,w;null!==e?(f=t=>{if(e.has(t))throw new l("Circular reference detected");e.add(t)},p=t=>e.delete(t)):(f=e=>{},p=e=>{});null!==r?(g=(e,t)=>{t+=1;const n="\\n"+r.repeat(t);return[e+=n,t,u+n]},w=(e,t,n)=>(n-=1,e+="\\n"+r.repeat(n)+t)):(g=(e,t)=>[e,t,u],w=(e,t,n)=>e+t);const _unhandled=(e,n)=>{f(e);const r=_iterencode(t(e),n);return p(e),r},_iterencode_list=(e,t)=>{if(!e.length)return"[]";let n,r;f(e),[n,t,r]=g("[",t);let o=!0;for(let s of e)o?o=!1:n+=r,n+=_iterencode(s,t);return p(e),w(n,"]",t)},_iterencode_dict=(e,t)=>{if(!e.sq$length())return"{}";let r,l;f(e),[r,t,l]=g("{",t);let u=!0;if(h){const t=$(e.tp$getattr(v)),n=c(t);e=$(o,[n])}for(let[o,c]of e.$items()){const e=o.valueOf(),h=typeof e;if("string"===h)o=e;else if("number"===h)o=s(o);else if("boolean"===h||null===e)o=String(e);else{if(!JSBI.__isBigInt(e)){if(d)continue;throw new i("keys must be str, int, float, bool or None, not "+y(o))}o=e.toString()}u?u=!1:r+=l,r+=n(o),r+=a,r+=_iterencode(c,t)}return p(e),w(r,"}",t)},_iterencode=(e,t=0)=>String(m(e,{stringHook:e=>n(e),numberHook:(e,t)=>s(t),bigintHook:e=>e.toString(),dictHook:e=>_iterencode_dict(e,t),arrayHook:e=>_iterencode_list(e,t),setHook:e=>_unhandled(e,t),funcHook:(e,n)=>_unhandled(n,t),objecthook:(e,n)=>_unhandled(n,t),unhandledHook:e=>_unhandled(e,t)}));return _iterencode}(e,this.default,t,this.indent,((e,t=this.allow_nan)=>{const n=e.valueOf();let r;if(Number.isFinite(n))return J(e);if(r=n.toString(),!t)throw new l("Out of range float values are not JSON compliant: "+J(e));return r}),this.key_separator,this.item_separator,this.sort_keys,this.skipkeys)}}const v=new e("items");const x=[!1,!0,!0,!0,null,null,null,!1],D=new JSONEncoder(...x),F=/(-?(?:0|[1-9]\\d*))(\\.\\d+)?([eE][-+]?\\d+)?/;const I=/"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"/m;function scanstring(t,n){const r=t.substring(n-1).match(I);if(null===r)throw new j("Unterminated string starting at",t,n-1);try{return[new e(JSON.parse(r[0])),n+r[0].length-1]}catch(o){let e=o.message.match(/(?:column|position) (\\d+)/);e=e&&Number(e[1]);n=n+(e||0)-(void 0===o.columnNumber?1:2);const r=o.message.replace("JSON.parse: ","").replace(/ at line \\d+ column \\d+ of the JSON data/,"").replace(/ in JSON at position \\d+$/,"");throw new j(r,t,n)}}const A=/[ \\t\\n\\r]*/;function JSONArray(e,t,r){const o=[];let s=e[t];const adjust_white_space=()=>{if(" "===s||"\\t"===s||"\\n"===s||"\\r"===s){const n=e.substring(t).match(A);t+=n[0].length,s=e[t]}};if(adjust_white_space(),"]"===s)return[new n([]),t+1];for(;;){let n;if([n,t]=r(e,t),void 0===n)throw new j("Expecting value",e,t);if(o.push(n),s=e[t],adjust_white_space(),t++,"]"===s)break;if(","!==s)throw new j("Expecting \',\' delimiter",e,t-1);s=e[t],adjust_white_space()}return[new n(o),t]}function JSONObject(e,t,s,i,l){let a=[],c=e[t];const adjust_white_space=()=>{if(" "===c||"\\t"===c||"\\n"===c||"\\r"===c){const n=e.substring(t).match(A);t+=n[0].length,c=e[t]}};if(\'"\'!==c){if(adjust_white_space(),"}"===c){if(null!==l){return[l(new n([])),t+1]}return a=new o([]),null!==i&&(a=i(a)),[a,t+1]}if(\'"\'!==c)throw new j("Expecting property name enclosed in double quotes",e,t)}let u,h;for(t+=1;;){if([u,t]=scanstring(e,t),":"!==(c=e[t])&&(adjust_white_space(),":"!==e[t]))throw new j("Expecting \':\' delimiter",e,t);if(c=e[++t],adjust_white_space(),[h,t]=s(e,t),void 0===h)throw new j("Expecting value",e,t);if(c=e[t],a.push([u,h]),adjust_white_space(),t++,"}"===c)break;if(","!==c)throw new j("Expecting \',\' delimiter",e,t-1);if(c=e[t],adjust_white_space(),t++,\'"\'!==c)throw new j("Expecting property name enclosed in double quotes",e,t-1)}if(null!==l){return[l(new n(a.map((e=>new r(e))))),t]}return a=new o(a.flat()),null!==i&&(a=i(a)),[a,t]}const H={NaN:new t(NaN),Infinity:new t(1/0),"-Infinity":new t(-1/0)};class JSONDecoder{constructor(e,t,n,r,o){this.object_hook=e,this.parse_float=t||w,this.parse_int=n||_,this.parse_constant=r||(e=>H[e]),this.object_pairs_hook=o,this.parse_object=JSONObject,this.parse_array=JSONArray,this.parse_string=scanstring,this.scan_once=function make_scanner(e){const{parse_object:t,parse_array:n,parse_string:r,parse_float:o,parse_int:s,parse_constant:i,object_hook:l,object_pairs_hook:a}=e,scan_once=(e,c)=>{const f=e[c];if(void 0===f)return[f,c];if(\'"\'===f)return r(e,c+1);if("{"===f)return t(e,c+1,scan_once,l,a);if("["===f)return n(e,c+1,scan_once);if("n"===f&&"null"===e.substring(c,c+4))return[u,c+4];if("t"===f&&"true"===e.substring(c,c+4))return[h,c+4];if("f"===f&&"false"===e.substring(c,c+5))return[d,c+5];const p=e.substring(c).match(F);if(null!==p){let e;const[t,n,r,i]=p;return e=r||i?o(n+(r||"")+(i||"")):s(n),[e,c+t.length]}return"N"===f&&"NaN"===e.substring(c,c+3)?[i("NaN"),c+3]:"I"==f&&"Infinity"===e.substring(c,c+8)?[i("Infinity"),c+8]:"-"==f&&"-Infinity"===e.substring(c,c+9)?[i("-Infinity"),c+9]:[void 0,c]};return scan_once}(this)}white(e,t){const n=(0===t?e:e.substring(t)).match(A);return null!==n&&(t+=n[0].length),t}decode(e){e=e.toString();let[t,n]=this.scan_once(e,this.white(e,0));if(void 0===t)throw new j("Expecting value",e,n);if(n=this.white(e,n),n!==e.length)throw new j("Extra data",e,n);return t}}const T=Array(5).fill(null),C=new JSONDecoder(...T);function convertToNullOrFunc(e){return null===e||e===u?null:t=>$(e,[g(t)])}return k("json",E,{loads:{$meth(e,t){O("dumps",e);let n=e[0];if(f(n));else{if(!p(n))throw new i(`the JSON object must be str or bytes, not ${y(n)}`);n=(new TextDecoder).decode(n.valueOf())}const r=S("dumps",["object_hook","parse_float","parse_int","parse_constant","object_pairs_hook"],[],t,T).map(convertToNullOrFunc);return r.every((e=>null===e))?C.decode(n):new JSONDecoder(...r).decode(n)},$doc:"Deserialize ``s`` (a ``str`` or ``bytes`` instance containing a JSON document) to a Python object.",$flags:{FastCall:!0}},dumps:{$meth(e,t){O("dumps",e);const n=e[0];let[r,o,s,l,a,c,u,h]=S("loads",["skipkeys","ensure_ascii","check_circular","allow_nan","indent","separators","default","sort_keys"],[],t,x);if(r=b(r),o=b(o),s=b(s),l=b(l),a=m(a),c=m(c),u=convertToNullOrFunc(u),h=b(h),!r&&o&&s&&l&&null===a&&null===c&&null===u&&!h)return D.encode(n);if(null===c);else if(!Array.isArray(c)||2!==c.length||"string"!=typeof c[0]||"string"!=typeof c[1])throw new i("separators shuld be a list or tuple of strings of length 2");return new JSONEncoder(r,o,s,l,a,c,u,h).encode(n)},$doc:"Serialize ``obj`` to a JSON formatted ``str``",$flags:{FastCall:!0}}}),E}',"src/lib/keyword.js":'function $builtinmodule(){const{ffi:{remapToPy:t},builtin:{frozenset:e,str:s}}=Sk,i=new s("keyword"),n=t(["iskeyword","issoftkeyword","kwlist","softkwlist"]),o=t(["False","None","True","and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal","not","or","pass","raise","return","try","while","with","yield"]),a=t(["_","case","match"]);return{__name__:i,__all__:n,kwlist:o,softkwlist:a,iskeyword:new e(o).tp$getattr(s.$contains),issoftkeyword:new e(a).tp$getattr(s.$contains)}}',"src/lib/math.js":'const $builtinmodule=function(e){const{builtin:{str:t,int_:n,float_:i,TypeError:r,pyCheckType:u,checkNumber:l},abstr:{lookupSpecial:o},misceval:{callsimOrSuspendArray:a}}=Sk,s={pi:new Sk.builtin.float_(Math.PI),e:new Sk.builtin.float_(Math.E),tau:new Sk.builtin.float_(2*Math.PI),nan:new Sk.builtin.float_(NaN),inf:new Sk.builtin.float_(1/0)},b=new t("__ceil__");const get_sign=function(e){return e=e?e<0?-1:1:1/e<0?-1:1};const c=18;function factorial(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let t=Sk.builtin.asnum$(e);if((e=Math.floor(t))!=t)throw new Sk.builtin.ValueError("factorial() only accepts integral values");if(e<0)throw new Sk.builtin.ValueError("factorial() not defined for negative numbers");let n=1;for(let i=2;i<=e&&i<=c;i++)n*=i;if(e<=c)return new Sk.builtin.int_(n);n=JSBI.BigInt(n);for(let i=c+1;i<=e;i++)n=JSBI.multiply(n,JSBI.BigInt(i));return new Sk.builtin.int_(n)}const m=new t("__floor__");function _gcd_internal(e,t){let n;return"number"==typeof e&&"number"==typeof t?(n=function _gcd(e,t){return 0==t?e:_gcd(t,e%t)}(e=Math.abs(e),t=Math.abs(t)),n=n<0?-n:n):(n=function _biggcd(e,t){return JSBI.equal(t,JSBI.__ZERO)?e:_biggcd(t,JSBI.remainder(e,t))}(e=JSBI.BigInt(e),t=JSBI.BigInt(t)),JSBI.lessThan(n,JSBI.__ZERO)&&(n=JSBI.multiply(n,JSBI.BigInt(-1)))),n}return Sk.abstr.setUpModuleMethods("math",s,{acos:{$meth:function acos(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.acos(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the arc cosine (measured in radians) of x."},acosh:{$meth:function acosh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=(e=Sk.builtin.asnum$(e))+Math.sqrt(e*e-1);return new Sk.builtin.float_(Math.log(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the inverse hyperbolic cosine of x."},asin:{$meth:function asin(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.asin(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the arc sine (measured in radians) of x."},asinh:{$meth:function asinh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=(e=Sk.builtin.asnum$(e))+Math.sqrt(e*e+1);return new Sk.builtin.float_(Math.log(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the inverse hyperbolic sine of x."},atan:{$meth:function atan(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.atan(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the arc tangent (measured in radians) of x."},atan2:{$meth:function atan2(e,t){return Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(t)),new Sk.builtin.float_(Math.atan2(Sk.builtin.asnum$(e),Sk.builtin.asnum$(t)))},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, y, x, /)",$doc:"Return the arc tangent (measured in radians) of y/x.\\n\\nUnlike atan(y/x), the signs of both x and y are considered."},atanh:{$meth:function atanh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=(1+(e=Sk.builtin.asnum$(e)))/(1-e);return new Sk.builtin.float_(Math.log(t)/2)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the inverse hyperbolic tangent of x."},ceil:{$meth:function ceil(e){let t;if(e.ob$type!==i){const n=o(e,b);if(void 0!==n)return a(n);u("","real number",l(e)),t=Sk.builtin.asnum$(e)}else t=e.v;return new n(Math.ceil(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the ceiling of x as an Integral.\\n\\nThis is the smallest integer >= x."},comb:{$meth:function comb(e,t){let n=Sk.misceval.asIndexOrThrow(e),i=Sk.misceval.asIndexOrThrow(t);if(n<0)throw new Sk.builtin.ValueError("n must be an non-negative integer");if(i<0)throw new Sk.builtin.ValueError("k must be a non-negative integer");if(i>e)return new Sk.builtin.int_(0);e=new Sk.builtin.int_(n),t=new Sk.builtin.int_(i);let r=Sk.ffi.remapToJs(e.nb$subtract(t));if(rNumber.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError("min(n - k, k) must not exceed "+Number.MAX_SAFE_INTEGER);const u=new Sk.builtin.int_(1);let l=e;for(let o=1;o n.\\n\\nIf k is not specified or is None, then k defaults to n\\nand the function returns n!.\\n\\nRaises TypeError if either of the arguments are not integers.\\nRaises ValueError if either of the arguments are negative."},copysign:{$meth:function copysign(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));const n=Sk.builtin.asnum$(t),i=Sk.builtin.asnum$(e),r=get_sign(i)*get_sign(n);return new Sk.builtin.float_(i*r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return a float with the magnitude (absolute value) of x but the sign of y.\\n\\nOn platforms that support signed zeros, copysign(1.0, -0.0)\\nreturns -1.0.\\n"},cos:{$meth:function cos(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.cos(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the cosine of x (measured in radians)."},cosh:{$meth:function cosh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),e=Sk.builtin.asnum$(e);const t=Math.E,n=Math.pow(t,e),i=(n+1/n)/2;return new Sk.builtin.float_(i)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the hyperbolic cosine of x."},degrees:{$meth:function degrees(e){Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e));const t=180/Math.PI*Sk.builtin.asnum$(e);return new Sk.builtin.float_(t)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Convert angle x from radians to degrees."},erf:{$meth:function erf(e){throw new Sk.builtin.NotImplementedError("math.erf() is not yet implemented in Skulpt")},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Error function at x."},erfc:{$meth:function erfc(e){throw new Sk.builtin.NotImplementedError("math.erfc() is not yet implemented in Skulpt")},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Complementary error function at x."},exp:{$meth:function exp(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let t=e.v;if("number"!=typeof t&&(t=e.nb$float().v),t==1/0||t==-1/0||isNaN(t))return new Sk.builtin.float_(Math.exp(t));const n=Math.exp(t);if(!isFinite(n))throw new Sk.builtin.OverflowError("math range error");return new Sk.builtin.float_(n)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return e raised to the power of x."},expm1:{$meth:function expm1(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e);if(Math.abs(t)<.7){const e=Math.exp(t);if(1==e)return new Sk.builtin.float_(t);{const n=(e-1)*t/Math.log(e);return new Sk.builtin.float_(n)}}{const e=Math.exp(t)-1;return new Sk.builtin.float_(e)}},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return exp(x)-1.\\n\\nThis function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x."},fabs:{$meth:function fabs(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let t=e.v;return JSBI.__isBigInt(t)&&(t=e.nb$float().v),t=Math.abs(t),new Sk.builtin.float_(t)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the absolute value of the float x."},factorial:{$meth:factorial,$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Find x!.\\n\\nRaise a ValueError if x is negative or non-integral."},floor:{$meth:function floor(e){let t;if(e.ob$type===i)t=e.v;else{const n=o(e,m);if(void 0!==n)return a(n);u("x","number",l(e)),t=Sk.builtin.asnum$(e)}return new n(Math.floor(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the floor of x as an Integral.\\n\\nThis is the largest integer <= x."},fmod:{$meth:function fmod(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));let n=e.v,i=t.v;if("number"!=typeof n&&(n=e.nb$float().v),"number"!=typeof i&&(i=t.nb$float().v),(i==1/0||i==-1/0)&&isFinite(n))return new Sk.builtin.float_(n);const r=n%i;if(isNaN(r)&&!isNaN(n)&&!isNaN(i))throw new Sk.builtin.ValueError("math domain error");return new Sk.builtin.float_(r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return fmod(x, y), according to platform C.\\n\\nx % y may differ."},frexp:{$meth:function frexp(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e),n=[t,0];if(0!==t&&Number.isFinite(t)){const e=Math.abs(t);let i=Math.max(-1023,Math.floor(Math.log2(e))+1),r=e*Math.pow(2,-i);for(;r<.5;)r*=2,i--;for(;r>=1;)r*=.5,i++;t<0&&(r=-r),n[0]=r,n[1]=i}return n[0]=new Sk.builtin.float_(n[0]),n[1]=new Sk.builtin.int_(n[1]),new Sk.builtin.tuple(n)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the mantissa and exponent of x, as pair (m, e).\\n\\nm is a float and e is an int, such that x = m * 2.**e.\\nIf x is 0, m and e are both 0. Else 0.5 <= abs(m) < 1.0."},fsum:{$meth:function fsum(e){if(!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("\'"+Sk.abstr.typeName(e)+"\' object is not iterable");let t,n,i,r=[];for(let l=(e=Sk.abstr.iter(e)).tp$iternext();void 0!==l;l=e.tp$iternext()){Sk.builtin.pyCheckType("","real number",Sk.builtin.checkNumber(l)),t=0;let e=l.v;"number"!=typeof e&&(e=l.nb$float().v),l=e;for(let u=0,o=r.length;u0;){n--;let t=a;a=JSBI.signedRightShift(u,JSBI.BigInt(n));const r=JSBI.subtract(JSBI.subtract(a,t),i),s=JSBI.leftShift(o,r),b=JSBI.add(JSBI.subtract(JSBI.subtract(l,t),a),i),c=JSBI.signedRightShift(e,b);o=JSBI.add(s,JSBI.divide(c,o))}let s=o;return JSBI.greaterThan(JSBI.multiply(s,s),e)&&(s=JSBI.subtract(s,i)),JSBI.lessThanOrEqual(s,JSBI.BigInt(Number.MAX_SAFE_INTEGER))&&(s=Number(s)),new Sk.builtin.int_(s)}(t)},$flags:{OneArg:!0},$textsig:"($module, n, /)",$doc:"Return the integer part of the square root of the input."},lcm:{$meth:function lcm(...e){function abs(e){return"number"==typeof e?new Sk.builtin.int_(Math.abs(e)):JSBI.lessThan(e,JSBI.__ZERO)?new Sk.builtin.int_(JSBI.unaryMinus(e)):new Sk.builtin.int_(e)}const t=e.length;if(0===t)return new Sk.builtin.int_(1);let n;for(n=0;nNumber.MAX_SAFE_INTEGER?JSBI.BigInt(r):e}else r=JSBI.BigInt(r);"number"!=typeof r&&(i=JSBI.BigInt(i),r=JSBI.multiply(JSBI.divide(r,_gcd_internal(r,i)),i))}return abs(r)},$flags:{MinArgs:0},$textsig:"($module, *integers, /)",$doc:"Return the least common multiple of the specified integer arguments. If all arguments are nonzero, then the returned value is the smallest positive integer that is a multiple of all arguments. If any of the arguments is zero, then the returned value is 0. lcm() without arguments returns 1."},ldexp:{$meth:function ldexp(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("i","integer",Sk.builtin.checkInt(t));let n=e.v;"number"!=typeof n&&(n=e.nb$float().v);const i=Sk.builtin.asnum$(t);if(n==1/0||n==-1/0||0==n||isNaN(n))return new Sk.builtin.float_(n);const r=n*Math.pow(2,i);if(!isFinite(r))throw new Sk.builtin.OverflowError("math range error");return new Sk.builtin.float_(r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, i, /)",$doc:"Return x * (2**i).\\n\\nThis is essentially the inverse of frexp()."},lgamma:{$meth:function lgamma(e){throw new Sk.builtin.NotImplementedError("math.lgamma() is not yet implemented in Skulpt")},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Natural logarithm of absolute value of Gamma function at x."},log:{$meth:function log(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let n,i,r=Sk.builtin.asnum$(e);if(r<=0)throw new Sk.builtin.ValueError("math domain error");if(void 0===t?n=Math.E:(Sk.builtin.pyCheckType("base","number",Sk.builtin.checkNumber(t)),n=Sk.builtin.asnum$(t)),n<=0)throw new Sk.builtin.ValueError("math domain error");if(Sk.builtin.checkFloat(e)||re)return new Sk.builtin.int_(0);if(0===t)return new Sk.builtin.int_(1);if(t>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError("k must not exceed "+Number.MAX_SAFE_INTEGER);const n=new Sk.builtin.int_(1);let i=e=new Sk.builtin.int_(e);for(let r=1;r n.\\n\\nIf k is not specified or is None, then k defaults to n\\nand the function returns n!.\\n\\nRaises TypeError if either of the arguments are not integers.\\nRaises ValueError if either of the arguments are negative.\'"},prod:{$meth:function prod(e,t){Sk.abstr.checkArgsLen("prod",e,1,1),e=Sk.abstr.copyKeywordsToNamedArgs("prod",[null,"start"],e,t,[new Sk.builtin.int_(1)]);const n=Sk.abstr.iter(e[0]);let i,r=e[1];return i=r.constructor===Sk.builtin.int_?function fastProdInt(){return Sk.misceval.iterFor(n,(e=>{if(e.constructor!==Sk.builtin.int_)return e.constructor===Sk.builtin.float_?(r=r.nb$float().nb$multiply(e),new Sk.misceval.Break("float")):(r=Sk.abstr.numberBinOp(r,e,"Mult"),new Sk.misceval.Break("slow"));r=r.nb$multiply(e)}))}():r.constructor===Sk.builtin.float_?"float":"slow",Sk.misceval.chain(i,(e=>"float"===e?function fastProdFloat(){return Sk.misceval.iterFor(n,(e=>{if(e.constructor!==Sk.builtin.float_&&e.constructor!==Sk.builtin.int_)return r=Sk.abstr.numberBinOp(r,e,"Mult"),new Sk.misceval.Break("slow");r=r.nb$multiply(e)}))}():e),(e=>{if("slow"===e)return function slowProd(){return Sk.misceval.iterFor(n,(e=>{r=Sk.abstr.numberBinOp(r,e,"Mult")}))}()}),(()=>r))},$flags:{FastCall:!0},$textsig:"($module, iterable, /, *, start=1)",$doc:"Calculate the product of all the elements in the input iterable. The default start value for the product is 1.\\n\\nWhen the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types."},pow:{$meth:function pow(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));let n=e.v,i=t.v;if("number"!=typeof n&&(n=e.nb$float().v),"number"!=typeof i&&(i=t.nb$float().v),0==n&&i<0)throw new Sk.builtin.ValueError("math domain error");if(1==n)return new Sk.builtin.float_(1);if(Number.isFinite(n)&&Number.isFinite(i)&&n<0&&!Number.isInteger(i))throw new Sk.builtin.ValueError("math domain error");if(-1==n&&(i==-1/0||i==1/0))return new Sk.builtin.float_(1);const r=Math.pow(n,i);if(!Number.isFinite(n)||!Number.isFinite(i))return new Sk.builtin.float_(r);if(r==1/0||r==-1/0)throw new Sk.builtin.OverflowError("math range error");return new Sk.builtin.float_(r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return x**y (x to the power of y)."},radians:{$meth:function radians(e){Sk.builtin.pyCheckType("deg","number",Sk.builtin.checkNumber(e));const t=Math.PI/180*Sk.builtin.asnum$(e);return new Sk.builtin.float_(t)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Convert angle x from degrees to radians."},remainder:{$meth:function remainder(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));let n=e.v,i=t.v;if("number"!=typeof n&&(n=e.nb$float().v),"number"!=typeof i&&(i=t.nb$float().v),isFinite(n)&&isFinite(i)){let e,t,r,u,l;if(0==i)throw new Sk.builtin.ValueError("math domain error");if(e=Math.abs(n),t=Math.abs(i),u=e%t,r=t-u,ur)l=-r;else{if(u!=r)throw new Sk.builtin.AssertionError;l=u-.5*(e-u)%t*2}return new Sk.builtin.float_(get_sign(n)*l)}if(isNaN(n))return e;if(isNaN(i))return t;if(n==1/0||n==-1/0)throw new Sk.builtin.ValueError("math domain error");if(i!=1/0&&i!=-1/0)throw new Sk.builtin.AssertionError;return new Sk.builtin.float_(n)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Difference between x and the closest integer multiple of y.\\n\\nReturn x - n*y where n*y is the closest integer multiple of y.\\nIn the case where x is exactly halfway between two multiples of\\ny, the nearest even value of n is used. The result is always exact."},sin:{$meth:function sin(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.sin(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the sine of x (measured in radians)."},sinh:{$meth:function sinh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),e=Sk.builtin.asnum$(e);const t=Math.E,n=Math.pow(t,e),i=(n-1/n)/2;return new Sk.builtin.float_(i)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the hyperbolic sine of x."},sqrt:{$meth:function sqrt(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e);if(t<0)throw new Sk.builtin.ValueError("math domain error");return new Sk.builtin.float_(Math.sqrt(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the square root of x."},tan:{$meth:function tan(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.tan(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the tangent of x (measured in radians)."},tanh:{$meth:function tanh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e);if(0===t)return new Sk.builtin.float_(t);const n=Math.E,i=Math.pow(n,t),r=1/i,u=(i-r)/2/((i+r)/2);return new Sk.builtin.float_(u)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the hyperbolic tangent of x."},trunc:{$meth:function trunc(e){if(e.ob$type===i)return e.nb$int();const n=o(e,t.$trunc);if(void 0===n)throw new r(`type ${e.tp$name} doesn\'t define __trunc__ method`);return a(n)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Truncates the Real x to the nearest Integral toward 0.\\n\\nUses the __trunc__ magic method."}}),s};',"src/lib/mixiot/__init__.js":'var $builtinmodule=function(i){var n={__name__:new Sk.builtin.str("mixiot")};n.MixIO=Sk.misceval.buildClass(n,(function(i,n){n.__init__=new Sk.builtin.func((function(i,n,e,o,t,c,f){n=Sk.ffi.remapToJs(n),e=Sk.ffi.remapToJs(e),o=Sk.ffi.remapToJs(o),t=Sk.ffi.remapToJs(t),c=Sk.ffi.remapToJs(c),f=Sk.ffi.remapToJs(f),mixio_client=new MixIO(n,e,o,t,c,f)})),n.publish=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n),t=Sk.ffi.remapToJs(e);mixio_client.publish(o,t)})),n.subscribe=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n);if(!(e instanceof Sk.builtin.func))throw new Sk.builtin.TypeError("Callback given is not a function");var t=function pythonToJavascriptFunction(i,n){return function(){var e=Array.prototype.slice.call(arguments).map((function(i){return Sk.ffi.remapToPy(i)}));return"undefined"!=typeof n&&e.unshift(n),Sk.misceval.applyAsync(void 0,i,void 0,void 0,void 0,e).catch(Sk.uncaughtException)}}(e);mixio_client.subscribeAndSetCallback(o,t)})),n.unsubscribe=new Sk.builtin.func((function(i,n){var e=Sk.ffi.remapToJs(n);mixio_client.unsubscribe(e)})),n.disconnect=new Sk.builtin.func((function(i){mixio_client.disconnect()}))}),"MixIO",[]);n.MixIO_init_by_mixly_key=Sk.misceval.buildClass(n,(function(i,n){n.__init__=new Sk.builtin.func((function(i,n,e,o,t){n=Sk.ffi.remapToJs(n),e=Sk.ffi.remapToJs(e),mixiomixlyKey=Sk.ffi.remapToJs(o),t=Sk.ffi.remapToJs(t),mixio_client=MixIO.fromMixlyKey(n,e,o,t)})),n.publish=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n),t=Sk.ffi.remapToJs(e);mixio_client.publish(o,t)})),n.subscribe=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n);if(!(e instanceof Sk.builtin.func))throw new Sk.builtin.TypeError("Callback given is not a function");var t=function pythonToJavascriptFunction(i,n){return function(){var e=Array.prototype.slice.call(arguments).map((function(i){return Sk.ffi.remapToPy(i)}));return"undefined"!=typeof n&&e.unshift(n),Sk.misceval.applyAsync(void 0,i,void 0,void 0,void 0,e).catch(Sk.uncaughtException)}}(e);mixio_client.subscribeAndSetCallback(o,t)})),n.unsubscribe=new Sk.builtin.func((function(i,n){var e=Sk.ffi.remapToJs(n);mixio_client.unsubscribe(e)})),n.disconnect=new Sk.builtin.func((function(i){mixio_client.disconnect()}))}),"MixIO_init_by_mixly_key",[]);return n.MixIO_init_by_share_key=Sk.misceval.buildClass(n,(function(i,n){n.__init__=new Sk.builtin.func((function(i,n,e,o,t){n=Sk.ffi.remapToJs(n),e=Sk.ffi.remapToJs(e),mixiomixlyKey=Sk.ffi.remapToJs(o),t=Sk.ffi.remapToJs(t),mixio_client=MixIO.fromShareKey(n,e,o,t).then((i=>{console.log(i),mixio_client_sharekey=i})).catch((i=>{console.error("Failed to create MixIO from share key: ",i),sleep(1)}))})),n.publish=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n),t=Sk.ffi.remapToJs(e);mixio_client_sharekey.publish(o,t)})),n.subscribe=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n);if(!(e instanceof Sk.builtin.func))throw new Sk.builtin.TypeError("Callback given is not a function");var t=function pythonToJavascriptFunction(i,n){return function(){var e=Array.prototype.slice.call(arguments).map((function(i){return Sk.ffi.remapToPy(i)}));return"undefined"!=typeof n&&e.unshift(n),Sk.misceval.applyAsync(void 0,i,void 0,void 0,void 0,e).catch(Sk.uncaughtException)}}(e);mixio_client_sharekey.subscribeAndSetCallback(o,t)})),n.unsubscribe=new Sk.builtin.func((function(i,n){var e=Sk.ffi.remapToJs(n);mixio_client_sharekey.unsubscribe(e)})),n.disconnect=new Sk.builtin.func((function(i){mixio_client_sharekey.disconnect()}))}),"MixIO_init_by_share_key",[]),n};',"src/lib/operator.js":'function $builtinmodule(e){const{builtin:{str:t,tuple:a,list:r,int_:o,bool:n,TypeError:s,ValueError:i,none:{none$:m},NotImplemented:{NotImplemented$:d},abs:l,len:h,checkString:u,checkInt:c},abstr:{buildNativeClass:M,checkNoKwargs:b,checkArgsLen:g,checkOneArg:f,numberUnaryOp:p,numberBinOp:A,numberInplaceBinOp:k,objectGetItem:$,objectDelItem:_,objectSetItem:w,sequenceConcat:v,sequenceContains:x,sequenceGetCountOf:j,sequenceGetIndexOf:O,sequenceInPlaceConcat:I,typeName:S,lookupSpecial:y,gattr:q,setUpModuleMethods:R},misceval:{richCompareBool:B,asIndexOrThrow:N,chain:E,callsimArray:T,callsimOrSuspendArray:C,objectRepr:D},generic:{getAttr:G}}=Sk,L=["abs","add","and_","concat","contains","delitem","eq","floordiv","ge","getitem","gt","iadd","iand","iconcat","ifloordiv","ilshift","imatmul","imod","imul","index","inv","invert","ior","ipow","irshift","isub","itruediv","ixor","le","lshift","lt","matmul","mod","mul","ne","neg","not_","or_","pos","pow","rshift","setitem","sub","truediv","xor"],F=["attrgetter","countOf","indexOf","is_","is_not","itemgetter","length_hint","methodcaller","truth",...L].sort(),P={__name__:new t("operator"),__doc__:new t("Operator interface.\\n\\nThis module exports a set of functions implemented in javascript corresponding\\nto the intrinsic operators of Python. For example, operator.add(x, y)\\nis equivalent to the expression x+y. The function names are those\\nused for special methods; variants without leading and trailing\\n\'__\' are also provided for convenience."),__all__:new r(F.map((e=>new t(e))))};P.itemgetter=M("operator.itemgetter",{constructor:function itemgetter(e){this.items=e,this.oneitem=1===e.length,this.item=e[0],this.in$repr=!1},slots:{tp$getattr:G,tp$new:(e,t)=>(b("itemgetter",t),g("itemgetter",e,1),new P.itemgetter(e)),tp$call(e,t){f("itemgetter",e,t);const r=e[0];return this.oneitem?$(r,this.item,!0):new a(this.items.map((e=>$(r,e))))},tp$doc:"Return a callable object that fetches the given item(s) from its operand.\\n After f = itemgetter(2), the call f(r) returns r[2].\\n After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])",$r(){if(this.in$repr)return new t(this.tp$name+"(...)");this.in$repr=!0;const e=this.tp$name+"("+this.items.map((e=>D(e))).join(", ")+")";return this.in$repr=!1,e}}}),P.attrgetter=M("operator.attrgetter",{constructor:function attrgetter(e){this.attrs=e,this.oneattr=1===e.length,this.attr=e[0],this.in$repr=!1},slots:{tp$getattr:G,tp$new(e,a){b("attrgetter",a),g("attrgetter",e,1);const r=[];for(let o=0;onew t(e)))):r.push([a])}return new P.attrgetter(r)},tp$call(e,t){f("attrgetter",e,t);const r=e[0];if(this.oneattr)return this.attr.reduce(((e,t)=>q(e,t)),r);const o=this.attrs.map((e=>e.reduce(((e,t)=>q(e,t)),r)));return new a(o)},tp$doc:"attrgetter(attr, ...) --\\x3e attrgetter object\\n\\nReturn a callable object that fetches the given attribute(s) from its operand.\\nAfter f = attrgetter(\'name\'), the call f(r) returns r.name.\\nAfter g = attrgetter(\'name\', \'date\'), the call g(r) returns (r.name, r.date).\\nAfter h = attrgetter(\'name.first\', \'name.last\'), the call h(r) returns\\n(r.name.first, r.name.last).",$r(){if(this.in$repr)return new t(this.tp$name+"(...)");this.in$repr=!0;const e=this.tp$name+"("+this.items.map((e=>D(e))).join(", ")+")";return this.in$repr=!1,e}}}),P.methodcaller=M("operator.methodcaller",{constructor:function methodcaller(e,t,a){this.$name=e,this.args=t,this.kwargs=a||[],this.in$repr=!1},slots:{tp$getattr:G,tp$new(e,t){g("methodcaller",e,1);const a=e[0];if(!u(a))throw new s("method name must be a string");return new P.methodcaller(a,e.slice(1),t)},tp$call(e,t){f("methodcaller",e,t);const a=e[0];return E(q(a,this.$name,!0),(e=>C(e,this.args,this.kwargs)))},tp$doc:"methodcaller(name, ...) --\\x3e methodcaller object\\n\\nReturn a callable object that calls the given method on its operand.\\nAfter f = methodcaller(\'name\'), the call f(r) returns r.name().\\nAfter g = methodcaller(\'name\', \'date\', foo=1), the call g(r) returns\\nr.name(\'date\', foo=1).",$r(){if(this.in$repr)return new t(this.tp$name+"(...)");this.in$repr=!0;let e=[D(this.$name)];e.push(...this.args.map((e=>D(e))));for(let t=0;tn(B(e,t,"Lt"))),sameAs("a < b")),le:makeModuleMethod(((e,t)=>n(B(e,t,"LtE"))),sameAs("a <= b")),eq:makeModuleMethod(((e,t)=>n(B(e,t,"Eq"))),sameAs("a == b")),ne:makeModuleMethod(((e,t)=>n(B(e,t,"NotEq"))),sameAs("a != b")),ge:makeModuleMethod(((e,t)=>n(B(e,t,"GtE"))),sameAs("a >= b")),gt:makeModuleMethod(((e,t)=>n(B(e,t,"Gt"))),sameAs("a > b")),not_:makeModuleMethod((e=>p(e,"Not")),sameAs("not a")),truth:makeModuleMethod((e=>n(e)),"Return True if a is true, False otherwise."),is_:makeModuleMethod(((e,t)=>n(B(e,t,"Is"))),sameAs("a is b")),is_not:makeModuleMethod(((e,t)=>n(B(e,t,"IsNot"))),sameAs("a is not b")),abs:makeModuleMethod((e=>l(e)),sameAs("abs(a)")),add:makeModuleMethod(((e,t)=>A(e,t,"Add")),sameAs("a + b")),and_:makeModuleMethod(((e,t)=>A(e,t,"BitAnd")),sameAs("a & b")),floordiv:makeModuleMethod(((e,t)=>A(e,t,"FloorDiv")),sameAs("a // b")),index:makeModuleMethod((e=>new o(N(e))),sameAs("a.__index__()")),inv:makeModuleMethod((e=>p(e,"Invert")),sameAs("~a")),invert:makeModuleMethod((e=>p(e,"Invert")),sameAs("~a")),lshift:makeModuleMethod(((e,t)=>A(e,t,"LShift")),sameAs("a << b")),mod:makeModuleMethod(((e,t)=>A(e,t,"Mod")),sameAs("a % b")),mul:makeModuleMethod(((e,t)=>A(e,t,"Mult")),sameAs("a * b")),matmul:makeModuleMethod(((e,t)=>A(e,t,"MatMult")),sameAs("a @ b")),neg:makeModuleMethod((e=>p(e,"USub")),sameAs("-a")),or_:makeModuleMethod(((e,t)=>A(e,t,"BitOr")),sameAs("a | b")),pos:makeModuleMethod((e=>p(e,"UAdd")),sameAs("+a")),pow:makeModuleMethod(((e,t)=>A(e,t,"Pow")),sameAs("a ** b")),rshift:makeModuleMethod(((e,t)=>A(e,t,"RShift")),sameAs("a >> b")),sub:makeModuleMethod(((e,t)=>A(e,t,"Sub")),sameAs("a - b")),truediv:makeModuleMethod(((e,t)=>A(e,t,"Div")),sameAs("a / b")),xor:makeModuleMethod(((e,t)=>A(e,t,"BitXor")),sameAs("a ^ b")),concat:makeModuleMethod(((e,t)=>v(e,t)),sameAs("a + b, for a and b sequences")),contains:makeModuleMethod(((e,t)=>E(x(e,t),n)),sameAs("b in a (note reversed operands)")),countOf:makeModuleMethod(((e,t)=>j(e,t)),"Return thenumber of times b occurs in a."),delitem:makeModuleMethod(((e,t)=>E(_(e,t,!0),(()=>m))),sameAs("del a[b]")),getitem:makeModuleMethod(((e,t)=>$(e,t,!0)),sameAs("a[b]")),indexOf:makeModuleMethod(((e,t)=>O(e,t)),"Return the first index of b in a"),setitem:makeModuleMethod(((e,t,a)=>E(w(e,t,a,!0),(()=>m))),sameAs("a[b] = c")),length_hint:{$meth:function length_hint(e,a){if(void 0===a)a=new o(0);else if(!c(a))throw new s("\'"+S(a)+"\' object cannot be interpreted as an integer");try{return h(e)}catch(m){if(!(m instanceof s))throw m}const r=y(e,t.$length_hint);if(void 0===r)return a;let n;try{n=T(r,[])}catch(m){if(!(m instanceof s))throw m;return a}if(n===d)return a;if(!c(n))throw new s("__length_hint__ must be an integer, not "+S(n));if(n.nb$isnegative())throw new i("__length_hint__() should return >= 0");return n},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($module, obj, default=0, /)",$doc:"Return an estimate of the number of items in obj.\\n\\nThis is useful for presizing containers when building from an iterable.\\n\\nIf the object supports len(), the result will be exact.\\nOtherwise, it may over- or under-estimate by an arbitrary amount.\\nThe result will be an integer >= 0."},iadd:makeModuleMethod(((e,t)=>k(e,t,"Add")),sameAs("a += b")),iand:makeModuleMethod(((e,t)=>k(e,t,"BitAnd")),sameAs("a &= b")),iconcat:makeModuleMethod(((e,t)=>I(e,t)),sameAs("a += b, for a and b sequences")),ifloordiv:makeModuleMethod(((e,t)=>k(e,t,"FloorDiv")),sameAs("a //= b")),ilshift:makeModuleMethod(((e,t)=>k(e,t,"LShift")),sameAs("a <<= b")),imod:makeModuleMethod(((e,t)=>k(e,t,"Mod")),sameAs("a %= b")),imul:makeModuleMethod(((e,t)=>k(e,t,"Mult")),sameAs("a *= b")),imatmul:makeModuleMethod(((e,t)=>k(e,t,"MatMult")),sameAs("a @= b")),ior:makeModuleMethod(((e,t)=>k(e,t,"BitOr")),sameAs("a |= b")),ipow:makeModuleMethod(((e,t)=>k(e,t,"Pow")),sameAs("a **= b")),irshift:makeModuleMethod(((e,t)=>k(e,t,"RShift")),sameAs("a >>= b")),isub:makeModuleMethod(((e,t)=>k(e,t,"Sub")),sameAs("a -= b")),itruediv:makeModuleMethod(((e,t)=>k(e,t,"Div")),sameAs("a /= b")),ixor:makeModuleMethod(((e,t)=>k(e,t,"BitXor")),sameAs("a ^= b"))}),L.forEach((e=>{P[`__${e.replace("_","")}__`]=P[e]})),P.div=P.truediv,P.__div__=P.div,P}',"src/lib/platform.js":'var $builtinmodule=function(n){var e={},i="undefined"!=typeof window&&"undefined"!=typeof window.navigator;return e.python_implementation=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("python_implementation",arguments.length,0,0),new Sk.builtin.str("Skulpt")})),e.node=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("node",arguments.length,0,0),new Sk.builtin.str("")})),e.version=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("version",arguments.length,0,0),new Sk.builtin.str("")})),e.python_version=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("python_version",arguments.length,0,0),n=Sk.__future__.python_version?"3.2.0":"2.7.0",new Sk.builtin.str(n)})),e.system=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("system",arguments.length,0,0),n=i?window.navigator.appCodeName:"",new Sk.builtin.str(n)})),e.machine=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("machine",arguments.length,0,0),n=i?window.navigator.platform:"",new Sk.builtin.str(n)})),e.release=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("release",arguments.length,0,0),n=i?window.navigator.appVersion:"",new Sk.builtin.str(n)})),e.architecture=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("architecture",arguments.length,0,0),new Sk.builtin.tuple([new Sk.builtin.str("64bit"),new Sk.builtin.str("")])})),e.processor=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("processor",arguments.length,0,0),new Sk.builtin.str("")})),e};',"src/lib/processing.js":'var $builtinmodule=function(n){var i,e,t,u,o,s,l,c={__name__:new Sk.builtin.str("processing")},r=[],v=!0,f=null;c.processing=null,c.p=null,c.X=new Sk.builtin.int_(0),c.Y=new Sk.builtin.int_(1),c.Z=new Sk.builtin.int_(2),c.R=new Sk.builtin.int_(3),c.G=new Sk.builtin.int_(4),c.B=new Sk.builtin.int_(5),c.A=new Sk.builtin.int_(6),c.U=new Sk.builtin.int_(7),c.V=new Sk.builtin.int_(8),c.NX=new Sk.builtin.int_(9),c.NY=new Sk.builtin.int_(10),c.NZ=new Sk.builtin.int_(11),c.EDGE=new Sk.builtin.int_(12),c.SR=new Sk.builtin.int_(13),c.SG=new Sk.builtin.int_(14),c.SB=new Sk.builtin.int_(15),c.SA=new Sk.builtin.int_(16),c.SW=new Sk.builtin.int_(17),c.TX=new Sk.builtin.int_(18),c.TY=new Sk.builtin.int_(19),c.TZ=new Sk.builtin.int_(20),c.VX=new Sk.builtin.int_(21),c.VY=new Sk.builtin.int_(22),c.VZ=new Sk.builtin.int_(23),c.VW=new Sk.builtin.int_(24),c.AR=new Sk.builtin.int_(25),c.AG=new Sk.builtin.int_(26),c.AB=new Sk.builtin.int_(27),c.DR=new Sk.builtin.int_(3),c.DG=new Sk.builtin.int_(4),c.DB=new Sk.builtin.int_(5),c.DA=new Sk.builtin.int_(6),c.SPR=new Sk.builtin.int_(28),c.SPG=new Sk.builtin.int_(29),c.SPB=new Sk.builtin.int_(30),c.SHINE=new Sk.builtin.int_(31),c.ER=new Sk.builtin.int_(32),c.EG=new Sk.builtin.int_(33),c.EB=new Sk.builtin.int_(34),c.BEEN_LIT=new Sk.builtin.int_(35),c.VERTEX_FIELD_COUNT=new Sk.builtin.int_(36),c.CENTER=new Sk.builtin.int_(3),c.RADIUS=new Sk.builtin.int_(2),c.CORNERS=new Sk.builtin.int_(1),c.CORNER=new Sk.builtin.int_(0),c.DIAMETER=new Sk.builtin.int_(3),c.BASELINE=new Sk.builtin.int_(0),c.TOP=new Sk.builtin.int_(101),c.BOTTOM=new Sk.builtin.int_(102),c.NORMAL=new Sk.builtin.int_(1),c.NORMALIZED=new Sk.builtin.int_(1),c.IMAGE=new Sk.builtin.int_(2),c.MODEL=new Sk.builtin.int_(4),c.SHAPE=new Sk.builtin.int_(5),c.AMBIENT=new Sk.builtin.int_(0),c.DIRECTIONAL=new Sk.builtin.int_(1),c.SPOT=new Sk.builtin.int_(3),c.RGB=new Sk.builtin.int_(1),c.ARGB=new Sk.builtin.int_(2),c.HSB=new Sk.builtin.int_(3),c.ALPHA=new Sk.builtin.int_(4),c.CMYK=new Sk.builtin.int_(5),c.TIFF=new Sk.builtin.int_(0),c.TARGA=new Sk.builtin.int_(1),c.JPEG=new Sk.builtin.int_(2),c.GIF=new Sk.builtin.int_(3),c.MITER=new Sk.builtin.str("miter"),c.BEVEL=new Sk.builtin.str("bevel"),c.ROUND=new Sk.builtin.str("round"),c.SQUARE=new Sk.builtin.str("butt"),c.PROJECT=new Sk.builtin.str("square"),c.P2D=new Sk.builtin.int_(1),c.JAVA2D=new Sk.builtin.int_(1),c.WEBGL=new Sk.builtin.int_(2),c.P3D=new Sk.builtin.int_(2),c.OPENGL=new Sk.builtin.int_(2),c.PDF=new Sk.builtin.int_(0),c.DXF=new Sk.builtin.int_(0),c.OTHER=new Sk.builtin.int_(0),c.WINDOWS=new Sk.builtin.int_(1),c.MAXOSX=new Sk.builtin.int_(2),c.LINUX=new Sk.builtin.int_(3),c.EPSILON=new Sk.builtin.float_(1e-4),c.MAX_FLOAT=new Sk.builtin.float_(34028235e31),c.MIN_FLOAT=new Sk.builtin.float_(-34028235e31),c.MAX_INT=new Sk.builtin.int_(2147483647),c.MIN_INT=new Sk.builtin.int_(-2147483648),c.HALF_PI=new Sk.builtin.float_(Math.PI/2),c.THIRD_PI=new Sk.builtin.float_(Math.PI/3),c.PI=new Sk.builtin.float_(Math.PI),c.TWO_PI=new Sk.builtin.float_(2*Math.PI),c.TAU=new Sk.builtin.float_(2*Math.PI),c.QUARTER_PI=new Sk.builtin.float_(Math.PI/4),c.DEG_TO_RAD=new Sk.builtin.float_(Math.PI/180),c.RAD_TO_DEG=new Sk.builtin.float_(180/Math.PI),c.WHITESPACE=new Sk.builtin.str(" \\t\\n\\r\\f "),c.POINT=new Sk.builtin.int_(2),c.POINTS=new Sk.builtin.int_(2),c.LINE=new Sk.builtin.int_(4),c.LINES=new Sk.builtin.int_(4),c.TRIANGLE=new Sk.builtin.int_(8),c.TRIANGLES=new Sk.builtin.int_(9),c.TRIANGLE_FAN=new Sk.builtin.int_(11),c.TRIANGLE_STRIP=new Sk.builtin.int_(10),c.QUAD=new Sk.builtin.int_(16),c.QUADS=new Sk.builtin.int_(16),c.QUAD_STRIP=new Sk.builtin.int_(17),c.POLYGON=new Sk.builtin.int_(20),c.PATH=new Sk.builtin.int_(21),c.RECT=new Sk.builtin.int_(30),c.ELLIPSE=new Sk.builtin.int_(31),c.ARC=new Sk.builtin.int_(32),c.SPHERE=new Sk.builtin.int_(40),c.BOX=new Sk.builtin.int_(41),c.GROUP=new Sk.builtin.int_(0),c.PRIMITIVE=new Sk.builtin.int_(1),c.GEOMETRY=new Sk.builtin.int_(3),c.VERTEX=new Sk.builtin.int_(0),c.BEZIER_VERTEX=new Sk.builtin.int_(1),c.CURVE_VERTEX=new Sk.builtin.int_(2),c.BREAK=new Sk.builtin.int_(3),c.CLOSESHAPE=new Sk.builtin.int_(4),c.REPLACE=new Sk.builtin.int_(0),c.BLEND=new Sk.builtin.int_(1),c.ADD=new Sk.builtin.int_(2),c.SUBTRACT=new Sk.builtin.int_(4),c.LIGHTEST=new Sk.builtin.int_(8),c.DARKEST=new Sk.builtin.int_(16),c.DIFFERENCE=new Sk.builtin.int_(32),c.EXCLUSION=new Sk.builtin.int_(64),c.MULTIPLY=new Sk.builtin.int_(128),c.SCREEN=new Sk.builtin.int_(256),c.OVERLAY=new Sk.builtin.int_(512),c.HARD_LIGHT=new Sk.builtin.int_(1024),c.SOFT_LIGHT=new Sk.builtin.int_(2048),c.DODGE=new Sk.builtin.int_(4096),c.BURN=new Sk.builtin.int_(8192),c.ALPHA_MASK=new Sk.builtin.int_(4278190080),c.RED_MASK=new Sk.builtin.int_(16711680),c.GREEN_MASK=new Sk.builtin.int_(65280),c.BLUE_MASK=new Sk.builtin.int_(255),c.CUSTOM=new Sk.builtin.int_(0),c.ORTHOGRAPHIC=new Sk.builtin.int_(2),c.PERSPECTIVE=new Sk.builtin.int_(3),c.ARROW=new Sk.builtin.str("default"),c.CROSS=new Sk.builtin.str("crosshair"),c.HAND=new Sk.builtin.str("pointer"),c.MOVE=new Sk.builtin.str("move"),c.TEXT=new Sk.builtin.str("text"),c.WAIT=new Sk.builtin.str("wait"),c.NOCURSOR=Sk.builtin.assk$("url(\'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\'), auto"),c.DISABLE_OPENGL_2X_SMOOTH=new Sk.builtin.int_(1),c.ENABLE_OPENGL_2X_SMOOTH=new Sk.builtin.int_(-1),c.ENABLE_OPENGL_4X_SMOOTH=new Sk.builtin.int_(2),c.ENABLE_NATIVE_FONTS=new Sk.builtin.int_(3),c.DISABLE_DEPTH_TEST=new Sk.builtin.int_(4),c.ENABLE_DEPTH_TEST=new Sk.builtin.int_(-4),c.ENABLE_DEPTH_SORT=new Sk.builtin.int_(5),c.DISABLE_DEPTH_SORT=new Sk.builtin.int_(-5),c.DISABLE_OPENGL_ERROR_REPORT=new Sk.builtin.int_(6),c.ENABLE_OPENGL_ERROR_REPORT=new Sk.builtin.int_(-6),c.ENABLE_ACCURATE_TEXTURES=new Sk.builtin.int_(7),c.DISABLE_ACCURATE_TEXTURES=new Sk.builtin.int_(-7),c.HINT_COUNT=new Sk.builtin.int_(10),c.OPEN=new Sk.builtin.int_(1),c.CLOSE=new Sk.builtin.int_(2),c.BLUR=new Sk.builtin.int_(11),c.GRAY=new Sk.builtin.int_(12),c.INVERT=new Sk.builtin.int_(13),c.OPAQUE=new Sk.builtin.int_(14),c.POSTERIZE=new Sk.builtin.int_(15),c.THRESHOLD=new Sk.builtin.int_(16),c.ERODE=new Sk.builtin.int_(17),c.DILATE=new Sk.builtin.int_(18),c.BACKSPACE=new Sk.builtin.int_(8),c.TAB=new Sk.builtin.int_(9),c.ENTER=new Sk.builtin.int_(10),c.RETURN=new Sk.builtin.int_(13),c.ESC=new Sk.builtin.int_(27),c.DELETE=new Sk.builtin.int_(127),c.CODED=new Sk.builtin.int_(65535),c.SHIFT=new Sk.builtin.int_(16),c.CONTROL=new Sk.builtin.int_(17),c.ALT=new Sk.builtin.int_(18),c.CAPSLK=new Sk.builtin.int_(20),c.PGUP=new Sk.builtin.int_(33),c.PGDN=new Sk.builtin.int_(34),c.END=new Sk.builtin.int_(35),c.HOME=new Sk.builtin.int_(36),c.LEFT=new Sk.builtin.int_(37),c.UP=new Sk.builtin.int_(38),c.RIGHT=new Sk.builtin.int_(39),c.DOWN=new Sk.builtin.int_(40),c.F1=new Sk.builtin.int_(112),c.F2=new Sk.builtin.int_(113),c.F3=new Sk.builtin.int_(114),c.F4=new Sk.builtin.int_(115),c.F5=new Sk.builtin.int_(116),c.F6=new Sk.builtin.int_(117),c.F7=new Sk.builtin.int_(118),c.F8=new Sk.builtin.int_(119),c.F9=new Sk.builtin.int_(120),c.F10=new Sk.builtin.int_(121),c.F11=new Sk.builtin.int_(122),c.F12=new Sk.builtin.int_(123),c.NUMLK=new Sk.builtin.int_(144),c.META=new Sk.builtin.int_(157),c.INSERT=new Sk.builtin.int_(155),c.SINCOS_LENGTH=new Sk.builtin.int_(720),c.PRECISIONB=new Sk.builtin.int_(15),c.PRECISIONF=new Sk.builtin.int_(32768),c.PREC_MAXVAL=new Sk.builtin.int_(32767),c.PREC_ALPHA_SHIFT=new Sk.builtin.int_(9),c.PREC_RED_SHIFT=new Sk.builtin.int_(1),c.NORMAL_MODE_AUTO=new Sk.builtin.int_(0),c.NORMAL_MODE_SHAPE=new Sk.builtin.int_(1),c.NORMAL_MODE_VERTEX=new Sk.builtin.int_(2),c.MAX_LIGHTS=new Sk.builtin.int_(8),c.line=new Sk.builtin.func((function(n,i,e,t){c.processing.line(n.v,i.v,e.v,t.v)})),c.ellipse=new Sk.builtin.func((function(n,i,e,t){c.processing.ellipse(n.v,i.v,e.v,t.v)})),c.circle=new Sk.builtin.func((function(n,i,e){c.processing.ellipse(n.v,i.v,e.v,e.v)})),c.text=new Sk.builtin.func((function(n,i,e){c.processing.text(n.v,i.v,e.v)})),c.point=new Sk.builtin.func((function(n,i){c.processing.point(n.v,i.v)})),c.arc=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.arc(n.v,i.v,e.v,t.v,u.v,o.v)})),c.quad=new Sk.builtin.func((function(n,i,e,t,u,o,s,l){c.processing.quad(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v)})),c.rect=new Sk.builtin.func((function(n,i,e,t,u){"undefined"==typeof u?c.processing.rect(n.v,i.v,e.v,t.v):c.processing.rect(n.v,i.v,e.v,t.v,u.v)})),c.triangle=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.triangle(n.v,i.v,e.v,t.v,u.v,o.v)})),c.bezier=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r,v,f,S){"undefined"==typeof r?c.processing.bezier(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):c.processing.bezier(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v,f.v,S.v)})),c.alpha=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof i?new Sk.builtin.float_(c.processing.alpha(n.v)):"undefined"==typeof e?new Sk.builtin.float_(c.processing.alpha(n.v,i.v)):new Sk.builtin.float_(c.processing.alpha(n.v,i.v,e.v))})),c.ambient=new Sk.builtin.func((function(n,i,e){"undefined"==typeof i?c.processing.ambient(n.v):"undefined"==typeof e?c.processing.ambient(n.v,i.v):c.processing.ambient(n.v,i.v,e.v)})),c.ambientLight=new Sk.builtin.func((function(n,i,e,t,u,o){"undefined"==typeof t?c.processing.ambientLight(n.v,i.v,e.v):"undefined"==typeof u?c.processing.ambientLight(n.v,i.v,e.v,t.v):"undefined"==typeof o?c.processing.ambientLight(n.v,i.v,e.v,t.v,u.v):c.processing.ambientLight(n.v,i.v,e.v,t.v,u.v,o.v)})),c.beginCamera=new Sk.builtin.func((function(){c.processing.beginCamera()})),c.beginShape=new Sk.builtin.func((function(n){"undefined"==typeof n&&(n=c.POLYGON),c.processing.beginShape(n.v)})),c.bezierDetail=new Sk.builtin.func((function(n){n="undefined"!=typeof n?n.v:20,c.processing.bezierDetail(n)})),c.bezierPoint=new Sk.builtin.func((function(n,i,e,t,u){c.processing.bezierPoint(n.v,i.v,e.v,t.v,u.v)})),c.bezierTangent=new Sk.builtin.func((function(n,i,e,t,u){c.processing.bezierTangent(n.v,i.v,e.v,t.v,u.v)})),c.bezierVertex=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r){"undefined"==typeof s?c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v):"undefined"==typeof l?c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v,s.v):"undefined"==typeof r?c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v)})),c.blend=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r,v){n instanceof Sk.builtin.int_||n instanceof Sk.builtin.float_?c.processing.blend(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v):c.processing.blend(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v)})),c.blendColor=new Sk.builtin.func((function(n,i,e){var t=Sk.misceval.callsimArray(c.color,[new Sk.builtin.int_(0),new Sk.builtin.int_(0),new Sk.builtin.int_(0)]);return t.v=c.processing.blendColor(n.v,i.v,e.v),t})),c.brightness=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof i?new Sk.builtin.float_(c.processing.brightness(n.v)):"undefined"==typeof e?new Sk.builtin.float_(c.processing.brightness(n.v,i.v)):new Sk.builtin.float_(c.processing.brightness(n.v,i.v,e.v))})),c.camera=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r){"undefined"==typeof n?c.processing.camera():c.processing.camera(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v)})),c.constrain=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.constrain(n.v,i.v,e.v))})),c.copy=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r){n instanceof Sk.builtin.int_||n instanceof Sk.builtin.float_?c.processing.copy(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):c.processing.copy(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v)})),c.createFont=new Sk.builtin.func((function(n,i,e,t){var u=Sk.misceval.callsimArray(c.PFont);return u.v="undefined"==typeof e?c.processing.createFont(n.v,i.v):"undefined"==typeof t?c.processing.createFont(n.v,i.v,e.v):c.processing.createFont(n.v,i.v,e.v,t.v),u})),c.createGraphics=new Sk.builtin.func((function(n,i,e,t){var u=Sk.misceval.callsimArray(c.PGraphics);return u.v="undefined"==typeof t?c.processing.createGraphics(n.v,i.v,e.v):c.processing.createGraphics(n.v,i.v,e.v,t.v),u})),c.createImage=new Sk.builtin.func((function(n,i,e){var t=Sk.misceval.callsimArray(c.PImage);return t.v=c.processing.createImage(n.v,i.v,e.v),t})),c.cursor=new Sk.builtin.func((function(n,i,e){"undefined"==typeof n?c.processing.cursor():"undefined"==typeof i?c.processing.cursor(n.v):"undefined"==typeof e?c.processing.cursor(n.v,i.v):c.processing.cursor(n.v,i.v,e.v)})),c.curve=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r,v,f,S){"undefined"==typeof r?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):"undefined"==typeof v?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v):"undefined"==typeof f?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v):"undefined"==typeof S?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v,f.v):c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v,f.v,S.v)})),c.curveDetail=new Sk.builtin.func((function(n){c.processing.curveDetail(n.v)})),c.curvePoint=new Sk.builtin.func((function(n,i,e,t,u){c.processing.curvePoint(n.v,i.v,e.v,t.v,u.v)})),c.curveTangent=new Sk.builtin.func((function(n,i,e,t,u){c.processing.curveTangent(n.v,i.v,e.v,t.v,u.v)})),c.curveTightness=new Sk.builtin.func((function(n){c.processing.curveTightness(n.v)})),c.curveVertex=new Sk.builtin.func((function(n,i,e){"undefined"==typeof e?c.processing.curveVertex(n.v,i.v):c.processing.curveVertex(n.v,i.v,e.v)})),c.day=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.day())})),c.degrees=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.degrees(n.v))})),c.directionalLight=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.directionalLight(n.v,i.v,e.v,t.v,u.v,o.v)})),c.dist=new Sk.builtin.func((function(n,i,e,t,u,o){return"undefined"==typeof u?new Sk.builtin.float_(c.processing.dist(n.v,i.v,e.v,t.v)):"undefined"==typeof o?new Sk.builtin.float_(c.processing.dist(n.v,i.v,e.v,t.v,u.v)):new Sk.builtin.float_(c.processing.dist(n.v,i.v,e.v,t.v,u.v,o.v))})),c.emissive=new Sk.builtin.func((function(n,i,e){"undefined"==typeof i?c.processing.emissive(n.v):"undefined"==typeof e?c.processing.emissive(n.v,i.v):c.processing.emissive(n.v,i.v,e.v)})),c.endCamera=new Sk.builtin.func((function(){c.processing.endCamera()})),c.endShape=new Sk.builtin.func((function(n){"undefined"==typeof n?c.processing.endShape():c.processing.endShape(n.v)})),c.filter=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.filter(n.v):c.processing.filter(n.v,i.v)})),c.frustum=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.frustum(n,i,e,t,u,o)})),c.hint=new Sk.builtin.func((function(n){c.processing.hint(n)})),c.hour=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.hour())})),c.hue=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.hue(n.v))})),c.imageMode=new Sk.builtin.func((function(n){c.processing.imageMode(n.v)})),c.lerp=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.lerp(n.v,i.v,e.v))})),c.lerpColor=new Sk.builtin.func((function(n,i,e){var t=Sk.misceval.callsimArray(c.color,[new Sk.builtin.int_(0),new Sk.builtin.int_(0),new Sk.builtin.int_(0)]);return t.v=c.processing.lerpColor(n.v,i.v,e.v),t})),c.lightFalloff=new Sk.builtin.func((function(n,i,e){c.processing.lightFalloff(n.v,i.v,e.v)})),c.lights=new Sk.builtin.func((function(){c.processing.lights()})),c.lightSpecular=new Sk.builtin.func((function(n,i,e){c.processing.lightSpecular(n.v,i.v,e.v)})),c.loadBytes=new Sk.builtin.func((function(n){return new Sk.builtin.list(c.processing.loadBytes(n.v))})),c.loadFont=new Sk.builtin.func((function(n){var i=Sk.misceval.callsimArray(c.PFont);return i.v=c.processing.loadFont(n.v),i})),c.loadShape=new Sk.builtin.func((function(n){return Sk.misceval.callsimArray(c.PShapeSVG,[new Sk.builtin.str("string"),n])})),c.loadStrings=new Sk.builtin.func((function(n){return new Sk.builtin.list(c.processing.loadStrings(n.v))})),c.mag=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof e?new Sk.builtin.float_(c.processing.mag(n.v,i.v)):new Sk.builtin.float_(c.processing.mag(n.v,i.v,e.v))})),c.map=new Sk.builtin.func((function(n,i,e,t,u){return new Sk.builtin.float_(c.processing.map(n.v,i.v,e.v,t.v,u.v))})),c.millis=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.millis())})),c.minute=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.minute())})),c.modelX=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.modelX(n.v,i.v,e.v))})),c.modelY=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.modelY(n.v,i.v,e.v))})),c.modelZ=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.modelZ(n.v,i.v,e.v))})),c.month=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.month())})),c.noCursor=new Sk.builtin.func((function(){c.processing.noCursor()})),c.noise=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof i?new Sk.builtin.float_(c.processing.noise(n.v)):"undefined"==typeof e?new Sk.builtin.float_(c.processing.noise(n.v,i.v)):new Sk.builtin.float_(c.processing.noise(n.v,i.v,e.v))})),c.noiseDetail=new Sk.builtin.func((function(n,i){c.processing.noiseDetail(n.v,i.v)})),c.noiseSeed=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.noiseSeed(n.v))})),c.noLights=new Sk.builtin.func((function(){c.processing.noLights()})),c.norm=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.norm(n.v,i.v,e.v))})),c.normal=new Sk.builtin.func((function(n,i,e){c.processing.normal(n.v,i.v,e.v)})),c.noTint=new Sk.builtin.func((function(){c.processing.noTint()})),c.ortho=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.ortho(n.v,i.v,e.v,t.v,u.v,o.v)})),c.perspective=new Sk.builtin.func((function(n,i,e,t){"undefined"==typeof n?c.processing.perspective():"undefined"==typeof i?c.processing.perspective(n.v):"undefined"==typeof e?c.processing.perspective(n.v,i.v):"undefined"==typeof t?c.processing.perspective(n.v,i.v,e.v):c.processing.perspective(n.v,i.v,e.v,t.v)})),c.pointLight=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.pointLight(n.v,i.v,e.v,t.v,u.v,o.v)})),c.printCamera=new Sk.builtin.func((function(){c.processing.printCamera()})),c.println=new Sk.builtin.func((function(n){c.processing.println(n.v)})),c.printProjection=new Sk.builtin.func((function(){c.processing.printProjection()})),c.radians=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.radians(n.v))})),c.randomSeed=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.randomSeed(n.v))})),c.random=new Sk.builtin.func((function(n,i){return"undefined"==typeof n?new Sk.builtin.float_(c.processing.random()):"undefined"==typeof i?new Sk.builtin.float_(c.processing.random(n.v)):new Sk.builtin.float_(c.processing.random(n.v,i.v))})),c.requestImage=new Sk.builtin.func((function(n,i){var e=Sk.misceval.callsimArray(c.PImage);return e.v="undefined"==typeof i?c.processing.requestImage(n.v):c.processing.requestImage(n.v,i.v),e})),c.saturation=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.saturation(n.v))})),c.save=new Sk.builtin.func((function(n){c.processing.save(n.v)})),c.saveFrame=new Sk.builtin.func((function(n){"undefined"==typeof n?c.processing.saveFrame():c.processing.saveFrame(n.v)})),c.saveStrings=new Sk.builtin.func((function(n,i){c.processing.saveStrings(n.v,i.v)})),c.screenX=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.screenX(n.v,i.v,e.v))})),c.screenY=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.screenY(n.v,i.v,e.v))})),c.screenZ=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.screenZ(n.v,i.v,e.v))})),c.second=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.second())})),c.shape=new Sk.builtin.func((function(n,i,e,t,u){"undefined"==typeof i?c.processing.shape(n.v):"undefined"==typeof e?c.processing.shape(n.v,i.v):"undefined"==typeof t?c.processing.shape(n.v,i.v,e.v):"undefined"==typeof u?c.processing.shape(n.v,i.v,e.v,t.v):c.processing.shape(n.v,i.v,e.v,t.v,u.v)})),c.shapeMode=new Sk.builtin.func((function(n){c.processing.shapeMode(n.v)})),c.shininess=new Sk.builtin.func((function(n){c.processing.shininess(n.v)})),c.specular=new Sk.builtin.func((function(n,i,e){"undefined"==typeof i?c.processing.specular(n.v):"undefined"==typeof e?c.processing.specular(n.v,i.v):c.processing.specular(n.v,i.v,e.v)})),c.spotLight=new Sk.builtin.func((function(n,i,e,t,u,o,s,l){c.processing.spotLight(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v)})),c.sq=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.sq(n))})),c.status=new Sk.builtin.func((function(n){c.processing.status(n.v)})),c.textAlign=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.textAlign(n.v):c.processing.textAlign(n.v,i.v)})),c.textAscent=new Sk.builtin.func((function(){return new Sk.builtin.float_(c.processing.textAscent())})),c.textDescent=new Sk.builtin.func((function(){return new Sk.builtin.float_(c.processing.textDescent())})),c.textFont=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.textFont(n.v):c.processing.textFont(n.v,i.v)})),c.textLeading=new Sk.builtin.func((function(n){c.processing.textLeading(n.v)})),c.textMode=new Sk.builtin.func((function(n){c.processing.textMode(n.v)})),c.textSize=new Sk.builtin.func((function(n){c.processing.textSize(n.v)})),c.texture=new Sk.builtin.func((function(n){c.processing.texture(n.v)})),c.textureMode=new Sk.builtin.func((function(n){c.processing.textureMode(n.v)})),c.textWidth=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.textWidth(n.v))})),c.tint=new Sk.builtin.func((function(n,i,e,t){"undefined"==typeof i?c.processing.tint(n.v):"undefined"==typeof e?c.processing.tint(n.v,i.v):"undefined"==typeof t?c.processing.tint(n.v,i.v,e.v):c.processing.tint(n.v,i.v,e.v,t.v)})),c.updatePixels=new Sk.builtin.func((function(){c.processing.updatePixels()})),c.vertex=new Sk.builtin.func((function(n,i,e,t,u){"undefined"==typeof e?c.processing.vertex(n.v,i.v):"undefined"==typeof t?c.processing.vertex(n.v,i.v,e.v):"undefined"==typeof u?c.processing.vertex(n.v,i.v,e.v,t.v):c.processing.vertex(n.v,i.v,e.v,t.v,u.v)})),c.year=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.year())})),c.box=new Sk.builtin.func((function(n){c.processing.box(n.v)})),c.sphere=new Sk.builtin.func((function(n){c.processing.sphere(n.v)})),c.sphereDetail=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.sphereDetail(n.v):c.processing.sphereDetail(n.v,i.v)})),c.background=new Sk.builtin.func((function(n,i,e){"undefined"!=typeof i&&(i=i.v),"undefined"!=typeof e&&(e=e.v),c.processing.background(n.v,i,e)})),c.fill=new Sk.builtin.func((function(n,i,e,t){"undefined"!=typeof i&&(i=i.v),"undefined"!=typeof e&&(e=e.v),"undefined"!=typeof t&&(t=t.v),c.processing.fill(n.v,i,e,t)})),c.stroke=new Sk.builtin.func((function(n,i,e,t){"undefined"!=typeof i&&(i=i.v),"undefined"!=typeof e&&(e=e.v),"undefined"!=typeof t&&(t=t.v),c.processing.stroke(n.v,i,e,t)})),c.noStroke=new Sk.builtin.func((function(){c.processing.noStroke()})),c.colorMode=new Sk.builtin.func((function(n,i,e,t,u){i="undefined"==typeof i?255:i.v,"undefined"!=typeof e&&(e=e.v),"undefined"!=typeof t&&(t=t.v),"undefined"!=typeof u&&(u=u.v),c.processing.colorMode(n.v,i,e,t,u)})),c.noFill=new Sk.builtin.func((function(){c.processing.noFill()})),c.loop=new Sk.builtin.func((function(){if(null===c.processing)throw new Sk.builtin.Exception("loop() should be called after run()");v=!0,c.processing.loop()})),c.noLoop=new Sk.builtin.func((function(){if(null===c.processing)throw new Sk.builtin.Exception("noLoop() should be called after run()");v=!1,c.processing.noLoop()})),c.frameRate=new Sk.builtin.func((function(n){c.processing.frameRate(n.v)})),c.width=new Sk.builtin.int_(0),c.height=new Sk.builtin.int_(0),c.renderMode=c.P2D,c.size=new Sk.builtin.func((function(n,i,e){"undefined"==typeof e&&(e=c.P2D),c.processing.size(n.v,i.v,e.v),c.width=new Sk.builtin.int_(c.processing.width),c.height=new Sk.builtin.int_(c.processing.height),c.renderMode=e})),c.exitp=new Sk.builtin.func((function(){c.processing.exit()})),c.mouseX=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.mouseX)})),c.mouseY=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.mouseY)})),c.pmouseX=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.pmouseX)})),c.pmouseY=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.pmouseY)})),c.rectMode=new Sk.builtin.func((function(n){c.processing.rectMode(n.v)})),c.strokeWeight=new Sk.builtin.func((function(n){c.processing.strokeWeight(n.v)})),c.smooth=new Sk.builtin.func((function(){c.processing.smooth()})),c.noSmooth=new Sk.builtin.func((function(){c.processing.noSmooth()})),c.ellipseMode=new Sk.builtin.func((function(n){c.processing.ellipseMode(n.v)})),c.strokeCap=new Sk.builtin.func((function(n){c.processing.strokeCap(n.v)})),c.strokeJoin=new Sk.builtin.func((function(n){c.processing.strokeJoin(n.v)})),c.rotate=new Sk.builtin.func((function(n){c.processing.rotate(n.v)})),c.rotateX=new Sk.builtin.func((function(n){c.processing.rotateX(n.v)})),c.rotateY=new Sk.builtin.func((function(n){c.processing.rotateY(n.v)})),c.rotateZ=new Sk.builtin.func((function(n){c.processing.rotateZ(n.v)})),c.scale=new Sk.builtin.func((function(n,i,e){i="undefined"==typeof i?1:i.v,e="undefined"==typeof e?1:e.v,c.processing.scale(n.v,i,e)})),c.translate=new Sk.builtin.func((function(n,i,e){i="undefined"==typeof i?1:i.v,e="undefined"==typeof e?1:e.v,c.processing.translate(n.v,i,e)})),c.popMatrix=new Sk.builtin.func((function(){c.processing.popMatrix()})),c.pushMatrix=new Sk.builtin.func((function(){c.processing.pushMatrix()})),c.applyMatrix=new Sk.builtin.func((function(){var n,i=Array.prototype.slice.call(arguments,0,16);for(n=0;n>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&n)>>>16)<<16)+1812433253*(65535&n)+this.mti,this.mt[this.mti]>>>=0},MersenneTwister.prototype.init_by_array=function(n,t){var i,e,r;for(this.init_genrand(19650218),i=1,e=0,r=this.N>t?this.N:t;r;r--){var u=this.mt[i-1]^this.mt[i-1]>>>30;this.mt[i]=(this.mt[i]^(1664525*((4294901760&u)>>>16)<<16)+1664525*(65535&u))+n[e]+e,this.mt[i]>>>=0,e++,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),e>=t&&(e=0)}for(r=this.N-1;r;r--){u=this.mt[i-1]^this.mt[i-1]>>>30;this.mt[i]=(this.mt[i]^(1566083941*((4294901760&u)>>>16)<<16)+1566083941*(65535&u))-i,this.mt[i]>>>=0,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1)}this.mt[0]=2147483648},MersenneTwister.prototype.genrand_int32=function(){var n,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var i;for(this.mti==this.N+1&&this.init_genrand(5489),i=0;i>>1^t[1&n];for(;i>>1^t[1&n];n=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^n>>>1^t[1&n],this.mti=0}return n=this.mt[this.mti++],n^=n>>>11,n^=n<<7&2636928640,n^=n<<15&4022730752,(n^=n>>>18)>>>0},MersenneTwister.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},MersenneTwister.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},MersenneTwister.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},MersenneTwister.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},MersenneTwister.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var $builtinmodule=function(n){var t={},i=new MersenneTwister,e=void 0;t.seed=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("seed",arguments.length,0,1),n=Sk.builtin.asnum$(n),i=arguments.length>0?new MersenneTwister(n):new MersenneTwister,Sk.builtin.none.none$})),t.random=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("random",arguments.length,0,0),new Sk.builtin.float_(i.genrand_res53())}));var toInt=function(n){return 0|n},randrange=function(n,t,e){var r,u,s;if(!Sk.builtin.checkInt(n))throw new Sk.builtin.ValueError("non-integer first argument for randrange()");if(void 0===t)return s=toInt(i.genrand_res53()*n),new Sk.builtin.int_(s);if(!Sk.builtin.checkInt(t))throw new Sk.builtin.ValueError("non-integer stop for randrange()");if(void 0===e&&(e=1),r=t-n,1==e&&r>0)return s=n+toInt(i.genrand_res53()*r),new Sk.builtin.int_(s);if(1==e)throw new Sk.builtin.ValueError("empty range for randrange() ("+n+", "+t+", "+r+")");if(!Sk.builtin.checkInt(e))throw new Sk.builtin.ValueError("non-integer step for randrange()");if(e>0)u=toInt((r+e-1)/e);else{if(!(e<0))throw new Sk.builtin.ValueError("zero step for randrange()");u=toInt((r+e+1)/e)}if(u<=0)throw new Sk.builtin.ValueError("empty range for randrange()");return s=n+e*toInt(i.genrand_res53()*u),new Sk.builtin.int_(s)};t.randint=new Sk.builtin.func((function(n,t){return Sk.builtin.pyCheckArgsLen("randint",arguments.length,2,2),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),randrange(n,t+1)})),t.randrange=new Sk.builtin.func((function(n,t,i){return Sk.builtin.pyCheckArgsLen("randrange",arguments.length,1,3),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),i=Sk.builtin.asnum$(i),randrange(n,t,i)})),t.uniform=new Sk.builtin.func((function(n,t){Sk.builtin.pyCheckArgsLen("uniform",arguments.length,2,2),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t);const e=n+i.genrand_res53()*(t-n);return new Sk.builtin.float_(e)})),t.triangular=new Sk.builtin.func((function(n,t,e){var r,u,s;return Sk.builtin.pyCheckArgsLen("triangular",arguments.length,2,3),Sk.builtin.pyCheckType("low","number",Sk.builtin.checkNumber(n)),Sk.builtin.pyCheckType("high","number",Sk.builtin.checkNumber(t)),(n=Sk.builtin.asnum$(n))>(t=Sk.builtin.asnum$(t))&&(s=n,n=t,t=s),void 0===e||e===Sk.builtin.none.none$?e=(t-n)/2:(Sk.builtin.pyCheckType("mode","number",Sk.builtin.checkNumber(e)),e=Sk.builtin.asnum$(e)),u=(r=i.genrand_res53())<(e-n)/(t-n)?n+Math.sqrt(r*(t-n)*(e-n)):t-Math.sqrt((1-r)*(t-n)*(t-e)),new Sk.builtin.float_(u)}));var normalSample=function(n,t){var r,u,s,h,l;return void 0!==e?(l=e,e=void 0):(r=i.genrand_res53(),u=i.genrand_res53(),s=Math.sqrt(-2*Math.log(r)),h=2*Math.PI*u,l=s*Math.cos(h),e=s*Math.sin(h)),n+t*l};return t.gauss=new Sk.builtin.func((function(n,t){return Sk.builtin.pyCheckArgsLen("gauss",arguments.length,2,2),Sk.builtin.pyCheckType("mu","number",Sk.builtin.checkNumber(n)),Sk.builtin.pyCheckType("sigma","number",Sk.builtin.checkNumber(t)),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),new Sk.builtin.float_(normalSample(n,t))})),t.normalvariate=t.gauss,t.lognormvariate=new Sk.builtin.func((function(n,t){return Sk.builtin.pyCheckArgsLen("lognormvariate",arguments.length,2,2),Sk.builtin.pyCheckType("mu","number",Sk.builtin.checkNumber(n)),Sk.builtin.pyCheckType("sigma","number",Sk.builtin.checkNumber(t)),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),new Sk.builtin.float_(Math.exp(normalSample(n,t)))})),t.expovariate=new Sk.builtin.func((function(n){Sk.builtin.pyCheckArgsLen("expovariate",arguments.length,1,1),Sk.builtin.pyCheckType("lambd","number",Sk.builtin.checkNumber(n)),n=Sk.builtin.asnum$(n);var t=i.genrand_res53();return new Sk.builtin.float_(-Math.log(t)/n)})),t.choice=new Sk.builtin.func((function(n){if(Sk.builtin.pyCheckArgsLen("choice",arguments.length,1,1),Sk.builtin.pyCheckType("seq","sequence",Sk.builtin.checkSequence(n)),void 0!==n.sq$length){var t=new Sk.builtin.int_(toInt(i.genrand_res53()*n.sq$length()));return n.mp$subscript(t)}throw new Sk.builtin.TypeError("object has no length")})),t.shuffle=new Sk.builtin.func((function(n){if(Sk.builtin.pyCheckArgsLen("shuffle",arguments.length,1,1),Sk.builtin.pyCheckType("x","sequence",Sk.builtin.checkSequence(n)),n.constructor===Sk.builtin.list){const u=n.v;for(var t=u.length-1;t>0;t-=1){var e=u[r=toInt(i.genrand_res53()*(t+1))];u[r]=u[t],u[t]=e}}else{if(void 0===n.sq$length)throw new Sk.builtin.TypeError("object has no length");if(void 0===n.mp$ass_subscript)throw new Sk.builtin.TypeError("object is immutable");for(t=n.sq$length()-1;t>0;t-=1){var r=new Sk.builtin.int_(toInt(i.genrand_res53()*(t+1)));t=new Sk.builtin.int_(t);e=n.mp$subscript(r);n.mp$ass_subscript(r,n.mp$subscript(t)),n.mp$ass_subscript(t,e)}}return Sk.builtin.none.none$})),t.sample=new Sk.builtin.func((function(n,t){var e,r,u,s,h;for(Sk.builtin.pyCheckArgsLen("sample",arguments.length,2,2),Sk.builtin.pyCheckType("population","iterable",Sk.builtin.checkIterable(n)),Sk.builtin.pyCheckType("k","integer",Sk.builtin.checkInt(t)),t=Sk.builtin.asnum$(t),h=[],e=0,s=(u=Sk.abstr.iter(n)).tp$iternext();void 0!==s;e++,s=u.tp$iternext())r=Math.floor(i.genrand_res53()*(e+1)),enew pyStr(e))))},_value2member={},RegexFlagMeta=buildNativeClass("RegexFlagMeta",{constructor:function RegexFlagMeta(){},base:pyType,slots:{tp$iter(){const e=Object.values(_members)[Symbol.iterator]();return new pyIterator((()=>e.next().value))},sq$contains(e){if(!(e instanceof this))throw new TypeError("unsupported operand type(s) for \'in\': \'"+typeName(e)+"\' and \'"+typeName(this)+"\'");return Object.values(_members).includes(e)}}});re.RegexFlag=buildNativeClass("RegexFlag",{meta:RegexFlagMeta,base:pyInt,constructor:function RegexFlag(e){const t=_value2member[e];if(t)return t;this.v=e,_value2member[e]=this},slots:{tp$new(e,t){checkOneArg("RegexFlag",e,t);const r=e[0].valueOf();if(!checkInt(r))throw new ValueError(objectRepr(r)+" is not a valid RegexFlag");return new re.RegexFlag(r)},$r(){let e=this.valueOf();const t=e<0;e=t?~e:e;const r=[];Object.entries(_members).forEach((([t,n])=>{const s=n.valueOf();e&s&&(e&=~s,r.push("re."+t))})),e&&r.push(hex(e).toString());let n=r.join("|");return t&&(n=r.length>1?"~("+n+")":"~"+n),new pyStr(n)},sq$contains(e){if(!(e instanceof re.RegexFlag))throw new TypeError("\'in\' requires a RegexFlag not "+typeName(e));return this.nb$and(e)===e},nb$and:flagBitSlot(((e,t)=>e&t),JSBI.bitwiseAnd),nb$or:flagBitSlot(((e,t)=>e|t),JSBI.bitwiseOr),nb$xor:flagBitSlot(((e,t)=>e^t),JSBI.bitwiseXor),nb$invert:function(){const e=this.v;return"number"==typeof e?new re.RegexFlag(~e):new re.RegexFlag(JSBI.bitwiseNot(e))}},proto:{valueOf(){return this.v}},flags:{sk$acceptable_as_base_class:!1}}),re.TEMPLATE=re.T=new re.RegexFlag(1),re.IGNORECASE=re.I=new re.RegexFlag(2),re.LOCALE=re.L=new re.RegexFlag(4),re.MULTILINE=re.M=new re.RegexFlag(8),re.DOTALL=re.S=new re.RegexFlag(16),re.UNICODE=re.U=new re.RegexFlag(32),re.VERBOSE=re.X=new re.RegexFlag(64),re.DEBUG=new re.RegexFlag(128),re.ASCII=re.A=new re.RegexFlag(256);const _members={ASCII:re.A,IGNORECASE:re.I,LOCALE:re.L,UNICODE:re.U,MULTILINE:re.M,DOTALL:re.S,VERBOSE:re.X,TEMPLATE:re.T,DEBUG:re.DEBUG};function flagBitSlot(e,t){return function(r){if(r instanceof re.RegexFlag||r instanceof pyInt){let n=this.v,s=r.v;if("number"==typeof n&&"number"==typeof s){let t=e(n,s);return t<0&&(t+=4294967296),new re.RegexFlag(t)}return n=JSBI.BigUp(n),s=JSBI.BigUp(s),new re.RegexFlag(JSBI.numberIfSafe(t(n,s)))}return pyNotImplemented}}const jsFlags={i:re.I,m:re.M,s:re.S,u:re.U},jsInlineFlags={i:re.I,a:re.A,s:re.S,L:re.L,m:re.M,u:re.U,x:re.X};RegExp.prototype.hasOwnProperty("sticky")||delete jsFlags.s,RegExp.prototype.hasOwnProperty("unicode")||delete jsFlags.u;const flagFails=Object.entries({"cannot use LOCALE flag with a str pattern":re.L,"ASCII and UNICODE flags are incompatible":new re.RegexFlag(re.A.valueOf()|re.U.valueOf())}),inline_regex=/\\(\\?([isamux]+)\\)/g;function adjustFlags(e,t){let r=e.toString(),n="g",s=0;return r=r.replace(inline_regex,((e,t)=>{for(let r of t){const e=jsInlineFlags[r];s|=e.valueOf()}return""})),flagFails.forEach((([e,t])=>{if((t.valueOf()&s)===t.valueOf())throw new re.error("bad bad inline flags: "+e)})),t=numberBinOp(new re.RegexFlag(s),t,"BitOr"),flagFails.forEach((([e,r])=>{if(numberBinOp(r,t,"BitAnd")===r)throw new ValueError(e)})),numberBinOp(re.A,t,"BitAnd")!==re.A&&(t=numberBinOp(re.U,t,"BitOr")),Object.entries(jsFlags).forEach((([e,r])=>{numberBinOp(r,t,"BitAnd")===r&&(n+=e)})),t=new re.RegexFlag(t.valueOf()),[r,n,t]}let neg_lookbehind_A="(?)(?!(?:\\]|[^\\[]*[^\\\\]\\]))/g,py_to_js_unicode_escape=/\\\\[\\t\\r\\n \\v\\f#&~"\'!:,;`<>]|\\\\-(?!(?:\\]|[^\\[]*[^\\\\]\\]))/g,quantifierErrors=/Incomplete quantifier|Lone quantifier/g,_compiled_patterns=Object.create(null);function compile_pattern(e,t){let r,n;[r,n,t]=adjustFlags(e,t);const s=_compiled_patterns[e.toString()];if(s&&s.$flags===t)return s;const i={};let o,a;r="_"+r,r=r.replace(initialUnescapedBracket,"$1$2\\\\]$3"),r=r.replace(py_to_js_regex,((t,r,n,s,o,a)=>{switch(n){case"\\\\A":return r+neg_lookbehind_A+"^";case"\\\\Z":return r+"$(?!\\\\n)";case"{,":return r+"{0,";case"$":return r+"(?:(?=\\\\n$)|$)";default:if(n.endsWith(">"))return i[o]=!0,r+"(?<"+o+">";if(!i[s])throw new re.error("unknown group name "+s+" at position "+a+1,e,new pyInt(a+1));return r+"\\\\k<"+s+">"}})),r=r.slice(1);let l=r;n.includes("u")&&(l=r.replace(py_to_js_unicode_escape,(e=>{switch(e){case"\\\\ ":return" ";case"\\\\\\t":return"\\\\t";case"\\\\\\n":return"\\\\n";case"\\\\\\v":return"\\\\v";case"\\\\\\f":return"\\\\f";case"\\\\r":return"\\\\r";default:return e.slice(1)}})));try{o=new RegExp(l,n)}catch(g){if(!quantifierErrors.test(g.message))throw a=g.message.substring(g.message.lastIndexOf(":")+2)+" in pattern: "+e.toString(),new re.error(a,e);try{o=new RegExp(r,n.replace("u",""))}catch(g){throw a=g.message.substring(g.message.lastIndexOf(":")+2)+" in pattern: "+e.toString(),new re.error(a,e)}}const p=new re.Pattern(o,e,t);return _compiled_patterns[e.toString()]=p,p}function _compile(e,t){if(e instanceof re.Pattern){if(t!==zero||t.valueOf())throw new ValueError("cannot process flags argument with compiled pattern");return e}if(!checkString(e))throw new TypeError("first argument must be string or compiled pattern");return compile_pattern(e,t)}re.error=buildNativeClass("re.error",{base:Exception,constructor:function error(e,t,r){this.$pattern=t,this.$msg=e,this.$pos=r||pyNone,Exception.call(this,e)},slots:{tp$doc:"Exception raised for invalid regular expressions.\\n\\n Attributes:\\n\\n msg: The unformatted error message\\n pattern: The regular expression pattern\\n",tp$init(e,t){const[r,n,s]=copyKeywordToNamedArgs("re.error",["msg","pattern","pos"],e,t,[pyNone,pyNone]);this.$pattern=n,this.$pos=s,this.$msg=r}},getsets:{msg:{$get(){return this.$msg}},pattern:{$get(){return this.$pattern}},pos:{$get(){return this.$pos}}}});const zero=new pyInt(0),maxsize=Number.MAX_SAFE_INTEGER;re.Pattern=buildNativeClass("re.Pattern",{constructor:function(e,t,r){this.v=e,this.str=t,this.$flags=r,this.$groups=null,this.$groupindex=null},slots:{$r(){const e=objectRepr(this.str).slice(0,200),t=objectRepr(this.$flags.nb$and(re.U.nb$invert()));return new pyStr("re.compile("+e+(t?", "+t:"")+")")},tp$richcompare(e,t){if("Eq"!==t&&"NotEq"!==t||!(e instanceof re.Pattern))return pyNotImplemented;const r=this.str===e.str&&this.$flags===e.$flags;return"Eq"===t?r:!r},tp$hash(){},tp$doc:"Compiled regular expression object."},methods:{match:{$meth:function match(e,t,r){return this.$match(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Matches zero or more characters at the beginning of the string."},fullmatch:{$meth:function fullmatch(e,t,r){return this.full$match(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Matches against all of the string."},search:{$meth:function search(e,t,r){return this.$search(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Scan through string looking for a match, and return a corresponding match object instance.\\n\\nReturn None if no position in the string matches."},sub:{$meth:function sub(e,t,r){return this.$sub(e,t,r)},$flags:{NamedArgs:["repl","string","count"],Defaults:[zero]},$textsig:"($self, /, repl, string, count=0)",$doc:"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl."},subn:{$meth:function(e,t,r){return this.$subn(e,t,r)},$flags:{NamedArgs:["repl","string","count"],Defaults:[zero]},$textsig:"($self, /, repl, string, count=0)",$doc:"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl."},findall:{$meth:function findall(e,t,r){return this.find$all(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Return a list of all non-overlapping matches of pattern in string."},split:{$meth:function split(e,t){return this.$split(e,t)},$flags:{NamedArgs:["string","maxsplit"],Defaults:[zero]},$textsig:"($self, /, string, maxsplit=0)",$doc:"Split string by the occurrences of pattern."},finditer:{$meth:function finditer(e,t,r){return this.find$iter(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Return an iterator over all non-overlapping matches for the RE pattern in string.\\n\\nFor each match, the iterator returns a match object."},scanner:{$meth:function scanner(e,t,r){return this.$scanner(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:null},__copy__:{$meth:function copy(){return this},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:null},__deepcopy__:{$meth:function(){return this},$flags:{OneArg:!0},$textsig:"($self, memo, /)",$doc:null}},getsets:{pattern:{$get(){return this.str},$doc:"The pattern string from which the RE object was compiled."},flags:{$get(){return this.$flags},$doc:"The regex matching flags."},groups:{$get(){if(null===this.$groups){const e=(this.str.v.match(this.group$regex)||[]).length;this.$groups=new pyInt(e)}return this.$groups},$doc:"The number of capturing groups in the pattern."},groupindex:{$get(){if(null===this.$groupindex){const e=this.str.v.matchAll(this.group$regex),t=[];let r=1;for(const n of e)n[1]&&(t.push(new pyStr(n[1])),t.push(new pyInt(r))),r++;this.$groupindex=new pyMappingProxy(new pyDict(t))}return this.$groupindex},$doc:"A dictionary mapping group names to group numbers."}},proto:{group$regex:/\\((?!\\?(?!P<).*)(?:\\?P<([^\\d\\W]\\w*)>)?(?![^\\[]*\\])/g,get$count:e=>(e=asIndexSized(e,OverflowError))||Number.POSITIVE_INFINITY,get$jsstr(e,t,r){if(!checkString(e))throw new TypeError("expected string or bytes-like object");if(t===zero&&r===maxsize||void 0===t&&void 0===r)return{jsstr:e.toString(),pos:zero.valueOf(),endpos:e.sq$length()};const{start:n,end:s}=pySlice.startEnd$wrt(e,t,r);return{jsstr:e.toString().slice(n,s),pos:n,endpos:s}},find$all(e,t,r){let{jsstr:n}=this.get$jsstr(e,t,r);const s=this.v,i=n.matchAll(s),o=[];for(let a of i)o.push(1===a.length?new pyStr(a[0]):2===a.length?new pyStr(a[1]):new pyTuple(a.slice(1).map((e=>new pyStr(e)))));return new pyList(o)},$split(e,t){t=(t=asIndexSized(t))||Number.POSITIVE_INFINITY;let{jsstr:r}=this.get$jsstr(e);const n=this.v,s=[];let i,o=0,a=0;for(;null!==(i=n.exec(r))&&o1&&s.push(...i.slice(1).map((e=>void 0===e?pyNone:new pyStr(e)))),o++,a=n.lastIndex,i.index===n.lastIndex){if(!r)break;r=r.slice(i.index),a=0,n.lastIndex=1}return n.lastIndex=0,s.push(new pyStr(r.slice(a))),new pyList(s)},match$from_repl(e,t,r,n){let s;const i=e[e.length-1];return"object"==typeof i?(s=e.slice(0,e.length-3),Object.assign(s,{groups:i}),s.index=e[e.length-3]):(s=e.slice(0,e.length-2),s.groups=void 0,s.index=e[e.length-2]),new re.Match(s,this.str,t,r,n)},do$sub(e,t,r){const{jsstr:n,pos:s,endpos:i}=this.get$jsstr(t);let o;checkCallable(e)?o=t=>{const r=pyCall(e,[t]);if(!checkString(r))throw new TypeError("expected str instance, "+typeName(r)+" found");return r.toString()}:(e=this.get$jsstr(e).jsstr,o=t=>t.template$repl(e)),r=this.get$count(r);let a=0;const l=n.replace(this.v,((...e)=>{if(a>=r)return e[0];a++;const n=this.match$from_repl(e,t,s,i);return o(n)}));return[new pyStr(l),new pyInt(a)]},$sub(e,t,r){const[n]=this.do$sub(e,t,r);return n},$subn(e,t,r){return new pyTuple(this.do$sub(e,t,r))},do$match(e,t,r,n){let s;({jsstr:s,pos:r,endpos:n}=this.get$jsstr(t,r,n));const i=s.match(e);return null===i?pyNone:new re.Match(i,this,t,r,n)},$search(e,t,r){var n=new RegExp(this.v.source,this.v.flags.replace("g",""));return this.do$match(n,e,t,r)},$match(e,t,r){let n=this.v.source,s=this.v.flags.replace("g","").replace("m","");n="^"+n;var i=new RegExp(n,s);return this.do$match(i,e,t,r)},full$match(e,t,r){let n=this.v.source,s=this.v.flags.replace("g","").replace("m","");n="^(?:"+n+")$";var i=new RegExp(n,s);return this.do$match(i,e,t,r)},find$iter(e,t,r){let n;({jsstr:n,pos:t,endpos:r}=this.get$jsstr(e,t,r));const s=n.matchAll(this.v);return new pyIterator((()=>{const n=s.next().value;if(void 0!==n)return new re.Match(n,this,e,t,r)}))}},flags:{sk$acceptable_as_base_class:!1}}),re.Match=buildNativeClass("re.Match",{constructor:function(e,t,r,n,s){this.v=e,this.$match=new pyStr(this.v[0]),this.str=r,this.$re=t,this.$pos=n,this.$endpos=s,this.$groupdict=null,this.$groups=null,this.$lastindex=null,this.$lastgroup=null,this.$regs=null},slots:{tp$doc:"The result of re.match() and re.search().\\nMatch objects always have a boolean value of True.",$r(){let e="",new pyStr(e)},tp$as_squence_or_mapping:!0,mp$subscript(e){const t=this.get$group(e);return void 0===t?pyNone:new pyStr(t)}},methods:{group:{$meth:function group(...e){let t;return e.length<=1?(t=this.get$group(e[0]),void 0===t?pyNone:new pyStr(t)):(t=[],e.forEach((e=>{e=this.get$group(e),t.push(void 0===e?pyNone:new pyStr(e))})),new pyTuple(t))},$flags:{MinArgs:0},$textsig:null,$doc:"group([group1, ...]) -> str or tuple.\\n Return subgroup(s) of the match by indices or names.\\n For 0 returns the entire match."},start:{$meth:function start(e){const t=this.get$group(e);return new pyInt(void 0===t?-1:this.str.v.indexOf(t,this.v.index+this.$pos))},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, group=0, /)",$doc:"Return index of the start of the substring matched by group."},end:{$meth:function end(e){const t=this.get$group(e);return new pyInt(void 0===t?-1:this.str.v.indexOf(t,this.v.index+this.$pos)+[...t].length)},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, group=0, /)",$doc:"Return index of the end of the substring matched by group."},span:{$meth:function span(e){return this.$span(e)},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, group=0, /)",$doc:"For match object m, return the 2-tuple (m.start(group), m.end(group))."},groups:{$meth:function groups(e){return null!==this.$groups||(this.$groups=Array.from(this.v.slice(1),(t=>void 0===t?e:new pyStr(t))),this.$groups=new pyTuple(this.$groups)),this.$groups},$flags:{NamedArgs:["default"],Defaults:[pyNone]},$textsig:"($self, /, default=None)",$doc:"Return a tuple containing all the subgroups of the match, from 1.\\n\\n default\\n Is used for groups that did not participate in the match."},groupdict:{$meth:function groupdict(e){if(null!==this.$groupdict)return this.$groupdict;if(void 0===this.v.groups)this.$groupdict=new pyDict;else{const t=[];Object.entries(this.v.groups).forEach((([r,n])=>{t.push(new pyStr(r)),t.push(void 0===n?e:new pyStr(n))})),this.$groupdict=new pyDict(t)}return this.$groupdict},$flags:{NamedArgs:["default"],Defaults:[pyNone]},$textsig:"($self, /, default=None)",$doc:"Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\\n\\n default\\n Is used for groups that did not participate in the match."},expand:{$meth:function expand(e){if(!checkString(e))throw new TypeError("expected str instance got "+typeName(e));return e=e.toString(),e=this.template$repl(e),new pyStr(e)},$flags:{OneArg:!0},$textsig:"($self, /, template)",$doc:"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method."},__copy__:{$meth:function __copy__(){return this},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:null},__deepcopy__:{$meth:function __deepcopy__(){return this},$flags:{OneArg:!0},$textsig:"($self, memo, /)",$doc:null}},getsets:{lastindex:{$get(){if(null!==this.$lastindex)return this.$lastindex;let e,t=0;return this.v.forEach(((r,n)=>{n&&void 0!==r&&e!==r&&(t=n,e=r)})),this.$lastindex=t?new pyInt(t):pyNone,this.$lastindex},$doc:"The integer index of the last matched capturing group."},lastgroup:{$get(){if(null!==this.$lastgroup)return this.$lastgroup;if(void 0===this.v.groups)this.$lastgroup=pyNone;else{let e;Object.entries(this.v.groups).forEach((([t,r])=>{void 0!==r&&(e=t)})),this.$lastgroup=void 0===e?pyNone:new pyStr(e)}return this.$lastgroup},$doc:"The name of the last matched capturing group."},regs:{$get(){if(null!==this.$regs)return this.$regs;const e=[];return this.v.forEach(((t,r)=>{e.push(this.$span(r))})),this.$regs=new pyTuple(e),this.$regs}},string:{$get(){return this.str},$doc:"The string passed to match() or search()."},re:{$get(){return this.$re},$doc:"The regular expression object."},pos:{$get(){return new pyInt(this.$pos)},$doc:"The index into the string at which the RE engine started looking for a match."},endpos:{$get(){return new pyInt(this.$endpos)},$doc:"The index into the string beyond which the RE engine will not go."}},proto:{get$group(e){if(void 0===e)return this.v[0];if(checkString(e)){if(e=e.toString(),this.v.groups&&Object.prototype.hasOwnProperty.call(this.v.groups,e))return this.v.groups[e]}else if(isIndex(e)&&(e=asIndexSized(e))>=0&&e|\\\\g<([^\\d\\W]\\w*)>|\\\\g?/g,template$repl(e){return e.replace(this.template$regex,((e,t,r,n,s,i)=>{let o;if(void 0!==(t=t||r)?o=t{delete _compiled_patterns[e]})),pyNone},$flags:{NoArgs:!0},$textsig:"($module, / )",$doc:"Clear the regular expression caches"},template:{$meth:function template(e,t){return _compile(e,numberBinOp(re.T,t,"BitOr"))},$flags:{NamedArgs:["pattern","flags"],Defaults:[zero]},$textsig:"($module, / , pattern, flags=0)",$doc:"Compile a template pattern, returning a Pattern object"},escape:{$meth:function(e){if(!checkString(e))throw new TypeError("expected a str instances, got "+typeName(e));return e=(e=e.toString()).replace(escape_chrs,"\\\\$&"),new pyStr(e)},$flags:{NamedArgs:["pattern"],Defaults:[]},$textsig:"($module, / , pattern)",$doc:"\\n Escape special characters in a string.\\n "}});const escape_chrs=/[\\&\\~\\#.*+\\-?^${}()|[\\]\\\\\\t\\r\\v\\f\\n ]/g;return re}',"src/lib/requests/__init__.js":'var $builtinmodule=function(e){var n={__name__:new Sk.builtin.str("requests")};n.Response=Sk.misceval.buildClass(n,(function(e,n){n.__init__=new Sk.builtin.func((function(e,n){e.data$=n,e.lineList=e.data$.split("\\n"),e.lineList=e.lineList.slice(0,-1);for(var t=0;t")})),n.__repr__=n.__str__,n.__iter__=new Sk.builtin.func((function(e){var n=e.lineList;return Sk.builtin.makeGenerator((function(){if(!(this.$index>=this.$lines.length))return new Sk.builtin.str(this.$lines[this.$index++])}),{$obj:e,$index:0,$lines:n})})),n.read=new Sk.builtin.func((function(e,n){if(e.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var t=e.data$.length;void 0===n&&(n=t);var i=new Sk.builtin.str(e.data$.substr(e.pos$,n));return e.pos$+=n,e.pos$>=t&&(e.pos$=t),i})),n.readline=new Sk.builtin.func((function(e,n){var t="";return e.currentLine{var t="";if(e instanceof String||e instanceof Number||e instanceof Boolean)try{var i=n.toString().replaceAll("=","@");i=i.replaceAll("&","$");var r=e.toString().replaceAll("=","@");r=r.replaceAll("&","$"),t+="&"+i+"="+encodeURIComponent(r)}catch(s){t+="&"+n+"="+encodeURIComponent(e)}else $.each(e,(function(i){t+="&"+jsonToUrl(this,null==n?i:n+(e instanceof Array?"["+i+"]":"."+i))}));return t.substr(1)},requestFunc=function(e,t){e=Sk.ffi.remapToJs(e),t=Sk.ffi.remapToJs(t);const i=["method","url","params","data","headers","cookies","files","auth","timeout","allow_redirects","proxies","hooks","stream","verify","cert","json"];let r={method:"GET",url:"",params:null,data:"",headers:{"Content-type":"application/x-www-form-urlencoded"},cookies:null,files:null,auth:null,timeout:1e3,allow_redirects:null,proxies:null,hooks:null,stream:null,verify:null,cert:null,json:null};for(let n in e)r[i[n]]=e[n];for(let n=0;n=n){r=t.decoder.decode(new Uint8Array(e));break}}else{switch(224&o){case 252:n=6;break;case 248:n=5;break;case 240:n=4;break;case 224:n=3;break;default:n=2}e.push(o)}}return r},t.startReadLine=function(){t.readLineTimer=window.setTimeout((()=>{if(!t.keepReading)return void window.clearTimeout(t.readLineTimer);let e=!1;do{const n=t.readLine();e=n.endWithLF;const{text:r}=n;if(r&&t.output.push((t.output.length?t.output.pop():"")+r),e){t.output.length&&console.log(t.output),t.output.push("")}}while(e);for(;t.output.length>500;)t.output.shift();t.keepReading&&t.startReadLine()}),100)},t.addReadEvent=async function(){for(t.output=[],t.inputBuffer=[],t.outputBuffer=[],t.refreshInputBuffer=!1,t.refreshOutputBuffer=!0,t.startReadLine();t.obj.readable&&t.keepReading;){t.reader=t.obj.readable.getReader();try{for(;;){const{value:e,done:n}=await t.reader.read();if(t.refreshOutputBuffer&&e&&(t.outputBuffer=[...t.outputBuffer,...e]),t.refreshInputBuffer&&e&&(t.inputBuffer=[...t.inputBuffer,...e]),n)break}}catch(e){console.log(e)}finally{t.reader.releaseLock()}}},t.writeString=async function(e){const n=t.encoder.encode(e);await t.writeByteArr(n)},t.writeByteArr=async function(e){const n=t.obj.writable.getWriter();await n.write(new Int8Array(e).buffer),n.releaseLock(),await t.sleep(200)},t.setBaudRate=async function(e){t.keepReading=!1;const n=t.obj;await t.close(),await n.open({baudRate:e-0}),t.obj=n,t.keepReading=!0,t.addReadEvent()},t.setDTR=async function(e){t.dtr=e,await t.obj.setSignals({dataTerminalReady:e})},t.setRTS=async function(e){t.rts=e,await t.obj.setSignals({requestToSend:e})},t.setSignals=async function(e,n){t.dtr=e,t.rts=n,await t.obj.setSignals({dataTerminalReady:e,requestToSend:n})};let n={__name__:new Sk.builtin.str("serial")},r={baudrate:115200,bytesize:8,parity:"N",stopbits:1,timeout:1e3,xonxoff:!1,rtscts:!1,dsrdtr:!1};const serialInitFunc=function(e,n){e=Sk.ffi.remapToJs(e),n=Sk.ffi.remapToJs(n);const o=["baudrate","bytesize","parity","stopbits","timeout","xonxoff","rtscts","dsrdtr"];for(let t in e)e[t]&&(r[o[t]]=e[t]);const i=new Promise(((e,n)=>{t.isConnected()?e(t.obj):navigator.serial.requestPort().then((function(t){e(t)})).catch((function(e){t.obj=null,n(e)}))}));let u,a=new Sk.misceval.Suspension;return a.resume=function(){if(a.data.error)throw a.data.error;return Sk.builtin.none.none$},a.data={type:"Sk.promise",promise:i.then((function(e){return t.obj=e,Sk.builtin.none.none$}),(function(e){return console.log("err3",e),u="",Promise.reject(e)}))},a};serialInitFunc.co_fastcall=1;const serialOpenFunc=function(e,n){const o=new Promise(((e,n)=>{t.isConnected()?t.isOpend()?e():t.obj.open({baudRate:r.baudrate}).then((async function(){t.keepReading=!0,t.addReadEvent(),e()})).catch((function(e){t.obj=null,n(e)})):n("No serial found")}));let i=new Sk.misceval.Suspension;return i.resume=function(){if(i.data.error)throw i.data.error;return Sk.builtin.none.none$},i.data={type:"Sk.promise",promise:o.then((function(e){return Sk.builtin.none.none$}),(function(e){return console.log("err3",e),Promise.reject(e)}))},i},serialReadlineFunc=function(e,n){if(!t.isConnected())return new Sk.builtin.str("");if(console.log("length:",t.output.length),!t.isOpend()||t.output.length<2)return new Sk.builtin.str("");let r=t.output.shift();return console.log(r),new Sk.builtin.str(r)};return n.Serial=Sk.misceval.buildClass(n,(function(e,t){t.__init__=new Sk.builtin.func(serialInitFunc),t.__str__=new Sk.builtin.func((function(e){return Sk.ffi.remapToPy("")})),t.open=new Sk.builtin.func(serialOpenFunc),t.readline=new Sk.builtin.func(serialReadlineFunc)}),"Serial",[]),n};',"src/lib/signal.js":'var $builtinmodule=function(n){var i={};return i.SIG_DFL=new Sk.builtin.int_(0),i.SIG_IGN=new Sk.builtin.int_(1),i.CTRL_C_EVENT=new Sk.builtin.int_(0),i.CTRL_BREAK_EVENT=new Sk.builtin.int_(0),i.NSIG=new Sk.builtin.int_(23),i.SIGHUP=new Sk.builtin.int_(1),i.SIGNINT=new Sk.builtin.int_(2),i.SIGILL=new Sk.builtin.int_(4),i.SIGFPE=new Sk.builtin.int_(8),i.SIGKILL=new Sk.builtin.int_(9),i.SIGSEGV=new Sk.builtin.int_(11),i.SIGTERM=new Sk.builtin.int_(15),i.SIGBREAK=new Sk.builtin.int_(21),i.SIGABRT=new Sk.builtin.int_(22),i.pause=new Sk.builtin.func((function(){Sk.builtin.pyCheckArgsLen("pause",arguments.length,0,0);var n=new Sk.misceval.Suspension;return n.resume=function(){return Sk.builtin.none.none$},n.data={type:"Sk.promise",promise:new Promise((function(n,i){if(null!=Sk.signals&&Sk.signals.addEventListener){Sk.signals.addEventListener((function handleSignal(i){Sk.signals.removeEventListener(handleSignal),n()}))}else console.warn("signal.pause() not supported"),Sk.misceval.print_("signal.pause() not supported"),n()}))},n})),i.signal=new Sk.builtin.func((function(){throw new Sk.builtin.NotImplementedError("signal.signal is not supported.")})),i};',"src/lib/string.js":'var $builtinmodule=function(i){var t={};return t.ascii_lowercase=new Sk.builtin.str("abcdefghijklmnopqrstuvwxyz"),t.ascii_uppercase=new Sk.builtin.str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),t.ascii_letters=new Sk.builtin.str(t.ascii_lowercase.v+t.ascii_uppercase.v),t.lowercase=new Sk.builtin.str("abcdefghijklmnopqrstuvwxyz"),t.uppercase=new Sk.builtin.str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),t.letters=new Sk.builtin.str(t.lowercase.v+t.uppercase.v),t.digits=new Sk.builtin.str("0123456789"),t.hexdigits=new Sk.builtin.str("0123456789abcdefABCDEF"),t.octdigits=new Sk.builtin.str("01234567"),t.punctuation=new Sk.builtin.str("!\\"#$%&\'()*+,-./:;<=>?@[\\\\]^_`{|}~"),t.whitespace=new Sk.builtin.str("\\t\\n\\v\\f\\r "),t.printable=new Sk.builtin.str(t.digits.v+t.letters.v+t.punctuation.v+" \\t\\n\\r\\v\\f"),t.split=new Sk.builtin.func((function(...i){return Sk.misceval.callsimArray(Sk.builtin.str.prototype.split,i)})),t.capitalize=new Sk.builtin.func((function(i){return Sk.misceval.callsimArray(Sk.builtin.str.prototype.capitalize,[i])})),t.join=new Sk.builtin.func((function(i,t){return void 0===t&&(t=new Sk.builtin.str(" ")),Sk.misceval.callsimArray(Sk.builtin.str.prototype.join,[t,i])})),t.capwords=new Sk.builtin.func((function(i,n){if(Sk.builtin.pyCheckArgsLen("capwords",arguments.length,1,2),!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("s must be a string");if(void 0===n&&(n=new Sk.builtin.str(" ")),!Sk.builtin.checkString(n))throw new Sk.builtin.TypeError("sep must be a string");for(var e=Sk.misceval.callsimArray(t.split,[i,n]).v,r=[],l=0;l1&&function isLeapYear(t){return 0==(3&t)&&(t%100!=0||t%400==0)}(e?t.getUTCFullYear():t.getFullYear())&&u++,u}function stdTimezoneOffset(){var t=new Date(2002,0,1),e=new Date(2002,6,1);return Math.max(t.getTimezoneOffset(),e.getTimezoneOffset())}function dst(t){return t.getTimezoneOffset()1)return n[1];if(void 0===e)return null;try{return(n=t.toLocaleString(e,{timeZoneName:"short"}).split(" "))[n.length-1]}catch(i){return null}}function from_seconds(t,e){var i=new Date;if(t){Sk.builtin.pyCheckType("secs","number",Sk.builtin.checkNumber(t));var u=Sk.builtin.asnum$(t);i.setTime(1e3*u)}return function date_to_struct_time(t,e){let i;if(e=e||!1)i=[new Sk.builtin.str("UTC"),new Sk.builtin.int_(0)];else{var u=-t.getTimezoneOffset()/60,r=(u<0?"-":"+")+(""+Math.abs(u)).padStart(2,"0");i=[new Sk.builtin.str(r),new Sk.builtin.int_(3600*u)]}return new n([Sk.builtin.assk$(e?t.getUTCFullYear():t.getFullYear()),Sk.builtin.assk$((e?t.getUTCMonth():t.getMonth())+1),Sk.builtin.assk$(e?t.getUTCDate():t.getDate()),Sk.builtin.assk$(e?t.getUTCHours():t.getHours()),Sk.builtin.assk$(e?t.getUTCMinutes():t.getMinutes()),Sk.builtin.assk$(e?t.getUTCSeconds():t.getSeconds()),Sk.builtin.assk$(((e?t.getUTCDay():t.getDay())+6)%7),Sk.builtin.assk$(getDayOfYear(t,e)),Sk.builtin.assk$(e?0:dst(t)?1:0)],i)}(i,e)}e.struct_time=n,e.time=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("time",arguments.length,0,0),new Sk.builtin.float_(Date.now()/1e3)})),e.sleep=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("sleep",arguments.length,1,1),Sk.builtin.pyCheckType("delay","float",Sk.builtin.checkNumber(t)),new Sk.misceval.promiseToSuspension(new Promise((function(e){Sk.setTimeout((function(){e(Sk.builtin.none.none$)}),1e3*Sk.ffi.remapToJs(t))})))})),e.localtime=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("localtime",arguments.length,0,1),from_seconds(t,!1)})),e.gmtime=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("gmtime",arguments.length,0,1),from_seconds(t,!0)}));var i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],u=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];function asctime_f(t){if(Sk.builtin.pyCheckArgsLen("asctime",arguments.length,0,1),!t||Sk.builtin.checkNone(t)?t=from_seconds():t instanceof n||(t=new n(t)),t instanceof Sk.builtin.tuple&&9==t.v.length){var e=[];return e.push(u[Sk.builtin.asnum$(t.v[6])]),e.push(i[Sk.builtin.asnum$(t.v[1])-1]),e.push(padLeft(Sk.builtin.asnum$(t.v[2]).toString(),2,"0")),e.push(padLeft(Sk.builtin.asnum$(t.v[3]).toString(),2,"0")+":"+padLeft(Sk.builtin.asnum$(t.v[4]).toString(),2,"0")+":"+padLeft(Sk.builtin.asnum$(t.v[5]).toString(),2,"0")),e.push(padLeft(Sk.builtin.asnum$(t.v[0]).toString(),4,"0")),new Sk.builtin.str(e.join(" "))}}function mktime_f(t){if(Sk.builtin.pyCheckArgsLen("mktime",arguments.length,1,1),t instanceof Sk.builtin.tuple&&9==t.v.length){var e=new Date(Sk.builtin.asnum$(t.v[0]),Sk.builtin.asnum$(t.v[1])-1,Sk.builtin.asnum$(t.v[2]),Sk.builtin.asnum$(t.v[3]),Sk.builtin.asnum$(t.v[4]),Sk.builtin.asnum$(t.v[5]));return Sk.builtin.assk$(e.getTime()/1e3,void 0)}throw new Sk.builtin.TypeError("mktime() requires a struct_time or 9-tuple")}e.asctime=new Sk.builtin.func(asctime_f),e.ctime=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("ctime",arguments.length,0,1),asctime_f(from_seconds(t))})),e.mktime=new Sk.builtin.func(mktime_f),e.timezone=new Sk.builtin.int_(60*stdTimezoneOffset()),e.altzone=new Sk.builtin.int_(60*function altTimezoneOffset(){var t=new Date(2002,0,1),e=new Date(2002,6,1);return Math.min(t.getTimezoneOffset(),e.getTimezoneOffset())}()),e.daylight=new Sk.builtin.int_(function daylight_check(){const t=new Date(2002,0,1),e=new Date(2002,6,1);return t.getTimezoneOffset()!=e.getTimezoneOffset()}()?1:0),e.tzname=new Sk.builtin.tuple(function timeZoneNames(){var t=new Date(2002,0,1),e=new Date(2002,6,1);return dst(t)?[new Sk.builtin.str(timeZoneName(e)),new Sk.builtin.str(timeZoneName(t))]:[new Sk.builtin.str(timeZoneName(t)),new Sk.builtin.str(timeZoneName(e))]}()),e.accept2dyear=Sk.builtin.assk$(1),e.clock=new Sk.builtin.func((function(){var t=0;return t=Sk.global.performance&&Sk.global.performance.now?performance.now()/1e3:(new Date).getTime()/1e3,new Sk.builtin.float_(t)})),e.strftime=new Sk.builtin.func((function strftime_f(t,e){var i;if(Sk.builtin.pyCheckArgsLen("strftime",arguments.length,1,2),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("format must be a string");return e?e instanceof n||(e=new n(e)):e=from_seconds(),function check_struct_time(t){if(!(t instanceof n))throw new Sk.builtin.TypeError("Required argument \'struct_time\' must be of type: \'struct_time\'");var e,i=t.v.length,u=t.v;for(e=0;e(r=e.tp$getattr(new Sk.builtin.str("_strptime_time")),r.tp$call(t)))):r.tp$call(t)})),e};',"src/lib/token.js":'var $builtinmodule=function(n){var e={};e.__file__=new Sk.builtin.str("/src/lib/token.py");const t=[];for(let i in Sk.token.tok_name){const n=Sk.token.tok_name[i].slice(2),k=parseInt(i,10);t.push(Sk.ffi.remapToPy(k)),t.push(Sk.ffi.remapToPy(n)),e[n]=Sk.ffi.remapToPy(k)}return e.tok_name=new Sk.builtin.dict(t),e.ISTERMINAL=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("ISTERMINAL",arguments.length,1,1),Sk.token.ISTERMINAL(Sk.ffi.remapToJs(n))})),e.ISNONTERMINAL=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("ISNONTERMINAL",arguments.length,1,1),Sk.token.ISNONTERMINAL(Sk.ffi.remapToJs(n))})),e.ISEOF=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("ISEOF",arguments.length,1,1),Sk.token.ISEOF(Sk.ffi.remapToJs(n))})),e};',"src/lib/tokenize.js":'var $builtinmodule=function(e){var i={};return i.tokenize=new Sk.builtin.func((function(e){Sk.builtin.pyCheckArgsLen("tokenize",1,1),Sk.builtin.checkFunction(e);const i=[];return Sk._tokenize("",(function jsReadline(){const i=Sk.misceval.callsimArray(e);return Sk.ffi.remapToJs(i)}),"UTF-8",(function receiveToken(e){i.push(new Sk.builtin.tuple([Sk.ffi.remapToPy(e.type),Sk.ffi.remapToPy(e.string),new Sk.builtin.tuple([Sk.ffi.remapToPy(e.start[0]),Sk.ffi.remapToPy(e.start[1])]),new Sk.builtin.tuple([Sk.ffi.remapToPy(e.end[0]),Sk.ffi.remapToPy(e.end[1])]),Sk.ffi.remapToPy(e.line)]))})),new Sk.builtin.list(i)})),i};',"src/lib/turtle.js":'var $builtinmodule=function(e){"use strict";var t=function getConfiguredTarget(){var e,t;for(t="string"==typeof(e=Sk.TurtleGraphics&&Sk.TurtleGraphics.target||"turtle")?document.getElementById(e):e;t.firstChild;)t.removeChild(t.firstChild);return t}();return t.turtleInstance?t.turtleInstance.reset():t.turtleInstance=function generateTurtleModule(e){var t,n,r,i,s,a,o,l,u={__name__:new Sk.builtin.str("turtle")},c=!0,h=1e3/30,d={},f={},_={target:"turtle",width:400,height:400,worldWidth:0,worldHeight:0,animate:!0,bufferSize:0,allowUndo:!0,assets:{}};function getAsset(e){var t=i.assets,n="function"==typeof t?t(e):t[e];return"string"==typeof n?new Promise((function(t,r){var s=new Image;s.onload=function(){i.assets[e]=this,t(s)},s.onerror=function(){r(new Error("Missing asset: "+n))},s.src=n})):new InstantPromise(void 0,n)}function InstantPromise(e,t){this.lastResult=t,this.lastError=e}function FrameManager(){this.reset()}function getFrameManager(){return o||(o=new FrameManager),o}function MouseHandler(){var e=this;for(var t in this._target=getTarget(),this._managers={},this._handlers={mousedown:function(t){e.onEvent("mousedown",t)},mouseup:function(t){e.onEvent("mouseup",t)},mousemove:function(t){e.onEvent("mousemove",t)}},this._handlers)this._target.addEventListener(t,this._handlers[t])}function EventManager(e,t){this._type=e,this._target=t,this._handlers=void 0,function getMouseHandler(){return a||(a=new MouseHandler),a}().addManager(e,this)}function Turtle(e){if(getFrameManager().addTurtle(this),this._screen=getScreen(),this._managers={},this._shape=e.v,!d.hasOwnProperty(this._shape))throw new Sk.builtin.ValueError("Shape:\'"+this._shape+"\' not in default shape, please check shape again!");this.reset()}function Screen(){var e,t;this._frames=1,this._delay=void 0,this._bgcolor="none",this._mode="standard",this._managers={},this._keyLogger={},e=(i.worldWidth||i.width||getWidth())/2,t=(i.worldHeight||i.height||getHeight())/2,this.setUpWorld(-e,-t,e,t)}function ensureAnonymous(){return s||(s=Sk.misceval.callsimArray(u.Turtle)),s.instance}function getTarget(){return e}function getScreen(){return r||(r=new Screen),r}function getWidth(){return 0|(r&&r._width||i.width||getTarget().clientWidth||_.width)}function getHeight(){return 0|(r&&r._height||i.height||getTarget().clientHeight||_.height)}function createLayer(e,t){var n,r=document.createElement("canvas"),i=getWidth(),s=getHeight(),a=getTarget().firstChild?-s+"px":"0";return r.width=i,r.height=s,r.style.position="relative",r.style.display="block",r.style.setProperty("margin-top",a),r.style.setProperty("z-index",e),t&&(r.style.display="none"),getTarget().appendChild(r),(n=r.getContext("2d")).lineCap="round",n.lineJoin="round",applyWorld(getScreen(),n),n}function cancelAnimationFrame(){t&&((window.cancelAnimationFrame||window.mozCancelAnimationFrame)(t),t=void 0),n&&(window.clearTimeout(n),n=void 0)}function applyWorld(e,t){var n=e.llx,r=(e.lly,e.urx,e.ury),i=e.xScale,s=e.yScale;t&&(clearLayer(t),t.restore(),t.save(),t.scale(1/i,1/s),t.translate(-n,-r))}function pushUndo(e){var t,n,r;if(i.allowUndo&&e._bufferSize){for(e._undoBuffer||(e._undoBuffer=[]);e._undoBuffer.length>e._bufferSize;)e._undoBuffer.shift();for(n={},t="x y angle radians color fill down filling shown shape size".split(" "),r=0;r=0;)this._turtles[e].reset();this._turtles=[],this._frames=[],this._frameCount=0,this._buffer=1,this._rate=0,this._animationFrame=animationFrame()},e.addFrame=function(e,t){return t&&(this._frameCount+=1),this.frames().push(e),!i.animate||this._buffer&&this._frameCount===this.frameBuffer()?this.update():new InstantPromise},e.frames=function(){return this._frames},e.frameBuffer=function(e){return"number"==typeof e&&(this._buffer=0|e,e&&e<=this._frameCount)?this.update():this._buffer},e.refreshInterval=function(e){return"number"==typeof e&&(this._rate=0|e,this._animationFrame=animationFrame(e)),this._rate},e.update=function(){return this._frames&&this._frames.length?this.requestAnimationFrame():new InstantPromise},e.requestAnimationFrame=function(){var e,t,n=this._frames,r=this._animationFrame,i=this._turtles,s=getScreen().spriteLayer();return this._frames=[],this._frameCount=0,new Promise((function(a){r((function paint(){for(t=0;t=0;)l[a].test(n,r,i,s)&&l[a].canMove("mousedown"===e);if(o&&o.length)for(computeCoordinates(),a=o.length;--a>=0;)("mousemove"===e&&o[a].canMove()&&o[a].test(n,r,i,s)||"mousedown"===e&&o[a].test(n,r,i,s))&&o[a].trigger([i,s])},l.reset=function(){this._managers={}},l.addManager=function(e,t){this._managers[e]||(this._managers[e]=[]),this._managers[e].push(t)},function(e){e.reset=function(){this._handlers=void 0},e.canMove=function(e){return!(!this._target||!this._target.hitTest)&&(void 0!==e&&(this._target.hitTest.hit=e),this._target.hitTest.hit)},e.test=function(e,t,n,r){return this._target&&this._target.hitTest?this._target.hitTest(e,t,n,r):!!this._target},e.trigger=function(e){var t,n=this._handlers;if(n&&n.length)for(t=0;t.5&&e<10.5?Sk.builtin.asnum$(Sk.builtin.round(Sk.builtin.assk$(e))):0,this._speed=e,this._computed_speed=2*e,this.addUpdate(void 0,!1,{speed:this._computed_speed})},e.$speed.minArgs=0,e.$speed.co_varnames=["speed"],e.$pencolor=function(e,t,n,r){return void 0!==e?(this._color=createColor(this._colorMode,e,t,n,r),this.addUpdate(void 0,this._shown,{color:this._color})):hexToRGB(this._color)},e.$pencolor.co_varnames=["r","g","b","a"],e.$pencolor.minArgs=0,e.$pencolor.returnType=f.COLOR,e.$fillcolor=function(e,t,n,r){return void 0!==e?(this._fill=createColor(this._colorMode,e,t,n,r),this.addUpdate(void 0,this._shown,{fill:this._fill})):hexToRGB(this._fill)},e.$fillcolor.co_varnames=["r","g","b","a"],e.$fillcolor.minArgs=0,e.$fillcolor.returnType=f.COLOR,e.$color=function(e,t,n,r){return void 0!==e?(void 0===t||void 0!==n?(this._color=createColor(this._colorMode,e,t,n,r),this._fill=this._color):(this._color=createColor(this._colorMode,e),this._fill=createColor(this._colorMode,t)),this.addUpdate(void 0,this._shown,{color:this._color,fill:this._fill})):[this.$pencolor(),this.$fillcolor()]},e.$color.minArgs=0,e.$color.co_varnames=["color","fill","b","a"],e.$color.returnType=function(e){return new Sk.builtin.tuple([f.COLOR(e[0]),f.COLOR(e[1])])},e.$fill=function(e){if(void 0!==e){if((e=!!e)===this._filling)return;return this._filling=e,e?(pushUndo(this),this.addUpdate(void 0,!1,{filling:!0,fillBuffer:[{x:this._x,y:this._y}]})):(pushUndo(this),this.addUpdate((function(){this.fillBuffer.push(this),drawFill.call(this)}),!0,{filling:!1,fillBuffer:void 0}))}return this._filling},e.$fill.co_varnames=["flag"],e.$fill.minArgs=0,e.$begin_fill=function(){return this.$fill(!0)},e.$end_fill=function(){return this.$fill(!1)},e.$stamp=function(){return pushUndo(this),this.addUpdate((function(){drawTurtle(this,this.context())}),!0)},e.$dot=function(e,t,n,r,i){return pushUndo(this),e="number"==typeof(e=Sk.builtin.asnum$(e))?Math.max(1,0|Math.abs(e)):Math.max(this._size+4,2*this._size),t=void 0!==t?createColor(this._colorMode,t,n,r,i):this._color,this.addUpdate(drawDot,!0,void 0,e,t)},e.$dot.co_varnames=["size","color","g","b","a"],e.$write=function(e,t,n,r){var i,s,a,o,l,u=this;return pushUndo(this),e=String(e),r&&r.constructor===Array&&(s="string"==typeof r[0]?r[0]:"Arial",a=String(r[1]||"12pt"),o="string"==typeof r[2]?r[2]:"normal",/^\\d+$/.test(a)&&(a+="pt"),r=[o,a,s].join(" ")),n||(n="left"),i=this.addUpdate(drawText,!0,void 0,e,n,r),!t||"left"!==n&&"center"!==n||(l=function measureText(e,t){return t&&(p.font=t),p.measureText(e).width}(e,r),"center"===n&&(l/=2),i=i.then((function(){var e=u.getState();return u.translate(e.x,e.y,l,0,!0)}))),i},e.$write.co_varnames=["message","move","align","font"],e.$write.minArgs=1,e.$pensize=e.$width=function(e){return void 0!==e?(this._size=e,this.addUpdate(void 0,this._shown,{size:e})):this._size},e.$pensize.minArgs=e.$width.minArgs=0,e.$pensize.co_varnames=e.$width.co_varnames=["width"],e.$showturtle=e.$st=function(){return this._shown=!0,this.addUpdate(void 0,!0,{shown:!0})},e.$hideturtle=e.$ht=function(){return this._shown=!1,this.addUpdate(void 0,!0,{shown:!1})},e.$isvisible=function(){return this._shown},e.$shape=function(e){return e&&d[e]?(this._shape=e,this.addUpdate(void 0,this._shown,{shape:e})):this._shape},e.$shape.minArgs=0,e.$shape.co_varnames=["name"],e.$window_width=function(){return this._screen.$window_width()},e.$window_height=function(){return this._screen.$window_height()},e.$tracer=function(e,t){return this._screen.$tracer(e,t)},e.$tracer.minArgs=0,e.$tracer.co_varnames=["n","delay"],e.$update=function(){return this._screen.$update()},e.$delay=function(e){return this._screen.$delay(e)},e.$delay.minArgs=0,e.$delay.co_varnames=["delay"],e.$reset=function(){return this.reset(),this.$clear()},e.$mainloop=e.$done=function(){return this._screen.$mainloop()},e.$clear=function(){return this.addUpdate((function(){clearLayer(this.context())}),!0)},e.$dot.minArgs=0,e.$onclick=function(e,t,n){this.getManager("mousedown").addHandler(e,n)},e.$onclick.minArgs=1,e.$onclick.co_varnames=["method","btn","add"],e.$onrelease=function(e,t,n){this.getManager("mouseup").addHandler(e,n)},e.$onrelease.minArgs=1,e.$onrelease.co_varnames=["method","btn","add"],e.$ondrag=function(e,t,n){this.getManager("mousemove").addHandler(e,n)},e.$ondrag.minArgs=1,e.$ondrag.co_varnames=["method","btn","add"],e.$getscreen=function(){return Sk.misceval.callsimArray(u.Screen)},e.$getscreen.isSk=!0,e.$clone=function(){var e=Sk.misceval.callsimOrSuspendArray(u.Turtle);return e.instance._x=this._x,e.instance._y=this._y,e.instance._angle=this._angle,e.instance._radians=this._radians,e.instance._shape=this._shape,e.instance._color=this._color,e.instance._fill=this._fill,e.instance._filling=this._filling,e.instance._size=this._size,e.instance._computed_speed=this._computed_speed,e.instance._down=this._down,e.instance._shown=this._shown,e.instance._colorMode=this._colorMode,e.instance._isRadians=this._isRadians,e.instance._fullCircle=this._fullCircle,e.instance._bufferSize=this._bufferSize,e.instance._undoBuffer=this._undoBuffer,e._clonedFrom=this,e},e.$clone.returnType=function(e){return e},e.$getturtle=e.$getpen=function(){return this.skInstance},e.$getturtle.isSk=!0}(Turtle.prototype),function(e){e.spriteLayer=function(){return this._sprites||(this._sprites=createLayer(3))},e.bgLayer=function(){return this._background||(this._background=createLayer(1))},e.hitTestLayer=function(){return this._hitTest||(this._hitTest=createLayer(0,!0))},e.getManager=function(e){return this._managers[e]||(this._managers[e]=new EventManager(e,this)),this._managers[e]},e.reset=function(){var e;for(e in this._keyListeners=void 0,this._keyLogger)window.clearInterval(this._keyLogger[e]),window.clearTimeout(this._keyLogger[e]),delete this._keyLogger[e];for(e in this._keyDownListener&&(getTarget().removeEventListener("keydown",this._keyDownListener),this._keyDownListener=void 0),this._keyUpListener&&(getTarget().removeEventListener("keyup",this._keyUpListener),this._keyUpListener=void 0),this._timer&&(window.clearTimeout(this._timer),this._timer=void 0),this._managers)this._managers[e].reset();this._mode="standard",removeLayer(this._sprites),this._sprites=void 0,removeLayer(this._background),this._background=void 0},e.setUpWorld=function(e,t,n,r){var i=this;i.llx=e,i.lly=t,i.urx=n,i.ury=r,i.xScale=(n-e)/getWidth(),i.yScale=-1*(r-t)/getHeight(),i.lineScale=Math.min(Math.abs(i.xScale),Math.abs(i.yScale))},e.$setup=function(e,t,n,r){return isNaN(parseFloat(e))&&(e=getWidth()),isNaN(parseFloat(t))&&(t=getHeight()),e<=1&&(e=getWidth()*e),t<=1&&(t=getHeight()*t),this._width=e,this._height=t,this._xOffset=void 0===n||isNaN(parseInt(n))?0:parseInt(n),this._yOffset=void 0===r||isNaN(parseInt(r))?0:parseInt(r),"world"===this._mode?this._setworldcoordinates(this.llx,this.lly,this.urx,this.ury):this._setworldcoordinates(-e/2,-t/2,e/2,t/2)},e.$setup.minArgs=0,e.$setup.co_varnames=["width","height","startx","starty"],e.$register_shape=e.$addshape=function(e,t){if(!t)return getAsset(e).then((function(t){d[e]=t}));d[e]=t},e.$register_shape.minArgs=1,e.$register_shape.co_varnames=["name","shape"],e.$getshapes=function(){return Object.keys(d)},e.$tracer=function(e,t){return void 0!==e||void 0!==t?("number"==typeof t&&(this._delay=t,getFrameManager().refreshInterval(t)),"number"==typeof e?(this._frames=e,getFrameManager().frameBuffer(e)):void 0):this._frames},e.$tracer.co_varnames=["frames","delay"],e.$tracer.minArgs=0,e.$delay=function(e){return void 0!==e?this.$tracer(void 0,e):void 0===this._delay?h:this._delay},e.$delay.co_varnames=["delay"],e._setworldcoordinates=function(e,t,n,r){return getFrameManager().turtles(),this.setUpWorld(e,t,n,r),this._sprites&&applyWorld(this,this._sprites),this._background&&applyWorld(this,this._background),this.$clear()},e.$setworldcoordinates=function(e,t,n,r){return this._mode="world",this._setworldcoordinates(e,t,n,r)},e.$setworldcoordinates.co_varnames=["llx","lly","urx","ury"],e.minArgs=4,e.$clear=e.$clearscreen=function(){return this.reset(),this.$reset()},e.$update=function(){return getFrameManager().update()},e.$reset=e.$resetscreen=function(){var e=this,t=getFrameManager().turtles();return getFrameManager().addFrame((function(){applyWorld(e,e._sprites),applyWorld(e,e._background);for(var n=0;n1&&t[s]&&t[s].test(r),r===a||i){e._keyListeners[r](),e._createKeyRepeater(r,s),n.preventDefault();break}}},getTarget().addEventListener("keydown",this._keyDownListener))},e._createKeyUpListener=function(){var e=this;this._keyUpListener||(this._keyUpListener=function(t){var n=e._keyLogger[t.charCode||t.keyCode];void 0!==n&&(t.preventDefault(),window.clearInterval(n),window.clearTimeout(n),delete e._keyLogger[t.charCode||t.keyCode])},getTarget().addEventListener("keyup",this._keyUpListener))},e.$title=function(e){document.title=e},e.$title.minArgs=1,e.$title.co_varnames=["title"],e.$listen=function(){this._createKeyUpListener(),this._createKeyDownListener()},e.$onkey=function(e,t){if("function"==typeof t){var n=e;e=t,t=n}t=String(t).toLowerCase(),e&&"function"==typeof e?(this._keyListeners||(this._keyListeners={}),this._keyListeners[t]=e):delete this._keyListeners[t]},e.$onkey.minArgs=2,e.$onkey.co_varnames=["method","keyValue"],e.$onscreenclick=function(e,t,n){this.getManager("mousedown").addHandler(e,n)},e.$onscreenclick.minArgs=1,e.$onscreenclick.co_varnames=["method","btn","add"],e.$ontimer=function(e,t){this._timer&&(window.clearTimeout(this._timer),this._timer=void 0),e&&"number"==typeof t&&(this._timer=window.setTimeout(e,Math.max(0,0|t)))},e.$ontimer.minArgs=0,e.$ontimer.co_varnames=["method","interval"]}(Screen.prototype);var g=new Image;function removeLayer(e){e&&e.canvas&&e.canvas.parentNode&&e.canvas.parentNode.removeChild(e.canvas)}function clearLayer(e,t,n){e&&(e.save(),e.setTransform(1,0,0,1,0,0),t?(e.fillStyle=t,e.fillRect(0,0,e.canvas.width,e.canvas.height)):e.clearRect(0,0,e.canvas.width,e.canvas.height),n&&e.drawImage(n,0,0),e.restore())}function drawTurtle(e,t){var n,r,i,s=d[e.shape],a=getScreen(),o=(getWidth(),getHeight(),a.xScale),l=a.yScale;if(t){if(n=Math.cos(e.radians)/o,r=Math.sin(e.radians)/l,i=Math.atan2(r,n)-Math.PI/2,t.save(),t.translate(e.x,e.y),t.scale(o,l),s.nodeName){var u=s.naturalWidth,c=s.naturalHeight;t.drawImage(s,0,0,u,c,-u/2,-c/2,u,c)}else{t.rotate(i),t.beginPath(),t.lineWidth=1,t.strokeStyle=e.color,t.fillStyle=e.fill,t.moveTo(-s[0][0],s[0][1]);for(var h=1;ho)throw u=l===o?"exactly "+o:"between "+l+" and "+o,new Sk.builtin.TypeError(a+"() takes "+u+" positional argument(s) ("+d.length+" given)");for(e=d.length;--e>=0;)void 0!==d[e]&&(d[e]instanceof Sk.builtin.func?d[e]=pythonToJavascriptFunction(d[e]):d[e]instanceof Sk.builtin.method?d[e]=pythonToJavascriptFunction(d[e].im_func,d[e].im_self):d[e]&&d[e].$d instanceof Sk.builtin.dict&&d[e].instance?d[e]=d[e].instance:d[e]=Sk.ffi.remapToJs(d[e]));var _=d.slice(0);for(d=[],e=_.length;e>=0;--e)null!==_[e]&&(d[e]=_[e]);try{t=f[n].apply(f,d)}catch(g){throw window&&window.console&&(window.console.log("wrapped method failed"),window.console.log(g.stack)),g}return t instanceof InstantPromise&&(t=t.lastResult),t instanceof Promise?(t=t.catch((function(e){throw window&&window.console&&(window.console.log("promise failed"),window.console.log(e.stack)),e})),(i=new Sk.misceval.Suspension).resume=function(){return void 0===s?Sk.builtin.none.none$:Sk.ffi.remapToPy(s)},i.data={type:"Sk.promise",promise:t.then((function(e){return s=e,e}))},i):void 0===t?Sk.builtin.none.none$:h?t:"function"==typeof c?c(t):Sk.ffi.remapToPy(t)},i.co_name=new Sk.builtin.str(a),i.co_varnames=u.slice(),i.$defaults=[];for(var d=l;d")})),e.__iter__=new Sk.builtin.func((function(n){var e=n.lineList;return Sk.builtin.makeGenerator((function(){if(!(this.$index>=this.$lines.length))return new Sk.builtin.str(this.$lines[this.$index++])}),{$obj:n,$index:0,$lines:e})})),e.read=new Sk.builtin.func((function(n,e){if(n.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var i=n.data$.length;void 0===e&&(e=i);var t=new Sk.builtin.str(n.data$.substr(n.pos$,e));return n.pos$+=e,n.pos$>=i&&(n.pos$=i),t})),e.readline=new Sk.builtin.func((function(n,e){var i="";return n.currentLinee===o)).length)throw new i("one of the hex, bytes, bytes_le, fields, or int arguments must be given");if(u!==o){u=u.toString().replace("urn:","").replace("uuid:","");let e=0,i=u.length-1;for(;"{}".indexOf(u[e])>=0;)e++;for(;"{}".indexOf(u[i])>=0;)i--;if(u=u.slice(e,i+1),u=u.replace(S,""),32!==u.length)throw new s("badly formed hexadecimal UUID string");f=d(n,[new t(u),U])}if(c!==o){if(!(c instanceof e))throw new i("bytes_le should be a bytes instance");if(c=c.valueOf(),16!==c.length)throw new s("bytes_le is not a 16-char string");h=switchBytesBytesLe(c),h=new e(h)}if(h!==o){if(!(h instanceof e))throw new i("bytes_le should be a bytes instance");if(16!==h.valueOf().length)throw new s("bytes is not a 16-char string");f=d(w,[h],["byteorder",v])}if(p!==o)throw new r("fields argument is not yet supported");if(f!==o&&(g(f,_,"Lt")||((e,t)=>g(e,t,"GtE"))(f,y)))throw new s("int is out of range (need a 128-bit value)");this.$int=f,this.$isSafe=I},tp$str(){const e=E.nb$remainder(this.$int).toString();return new t(`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`)},$r(){const e=u(this.ob$type,t.$name),n=c(this.tp$str());return new t(`${e}(${n})`)},tp$hash(){return this.$int.tp$hash()},tp$richcompare(e,t){return e instanceof R?this.$int.tp$richcompare(e.$int,t):l},tp$as_number:!0,nb$int(){return this.$int}},getsets:{int:{$get(){return this.$int}},is_safe:{$get(){return this.$isSafe}},bytes:{$get(){return d(b,[this.$int,U,v])}},bytes_le:{$get(){const n=this.tp$getattr(new t("bytes")).valueOf();return new e(switchBytesBytesLe(n))}},fields:{$get:()=>notImplemented()},time_low:{$get:()=>notImplemented()},time_mid:{$get:()=>notImplemented()},time_hi_version:{$get:()=>notImplemented()},clock_seq_hi_variant:{$get:()=>notImplemented()},clock_seq_low:{$get:()=>notImplemented()},time:{$get:()=>notImplemented()},clock_seq:{$get:()=>notImplemented()},node:{$get:()=>notImplemented()},hex:{$get(){return E.nb$remainder(this.$int)}},urn:{$get(){return new t(`urn:uuid:${this}`)}},variant:{$get:()=>notImplemented()},version:{$get:()=>notImplemented()}}});return h("uuid",p,{uuid1:{$meth(){notImplemented()},$flags:{FastCall:!0}},uuid2:{$meth(){notImplemented()},$flags:{FastCall:!0}},uuid3:{$meth(){notImplemented()},$flags:{FastCall:!0}},uuid4:{$meth(){const t=new e(f.getRandomValues(new Uint8Array(16)));return d(R,[],["bytes",t,"version",I])},$flags:{NoArgs:!0}},uuid5:{$meth(){notImplemented()},$flags:{FastCall:!0}}}),p}',"src/lib/webbrowser.js":'var $builtinmodule=function(n){var e={},t="undefined"!=typeof window&&"undefined"!=typeof window.navigator;function open_tab(n){return Sk.builtin.pyCheckType("url","string",Sk.builtin.checkString(n)),t?(n=n.$jsstr(),window.open(n,"_blank"),Sk.builtin.bool.true$):Sk.builtin.bool.false$}return e.__name__=new Sk.builtin.str("webbrowser"),e.open=new Sk.builtin.func((function open(n){return Sk.builtin.pyCheckArgsLen("open",arguments.length+1,1,3),open_tab(n)})),e.open_new=new Sk.builtin.func((function open_new(n){return Sk.builtin.pyCheckArgsLen("open_new",arguments.length,1,1),open_tab(n)})),e.open_new_tab=new Sk.builtin.func((function open_new_tab(n){return Sk.builtin.pyCheckArgsLen("open_new_tab",arguments.length,1,1),open_tab(n)})),e.DefaultBrowser=Sk.misceval.buildClass(e,(function dflbrowser(n,e){e.__init__=new Sk.builtin.func((function __init__(n){return Sk.builtin.none.none$})),e.open=new Sk.builtin.func((function open(n,e){return Sk.builtin.pyCheckArgsLen("open",arguments.length,2,4),open_tab(e)})),e.open_new=new Sk.builtin.func((function open_new(n,e){return Sk.builtin.pyCheckArgsLen("open_new",arguments.length,2,2),open_tab(e)})),e.open_new_tab=new Sk.builtin.func((function open_new_tab(n,e){return Sk.builtin.pyCheckArgsLen("open_new_tab",arguments.length,2,2),open_tab(e)}))}),"DefaultBrowser",[]),e.get=new Sk.builtin.func((function get(){return Sk.builtin.pyCheckArgsLen("get",arguments.length,0,1),Sk.misceval.callsimArray(e.DefaultBrowser,[])})),e};',"src/lib/webgl/math.js":'var $builtinmodule=function(e){var n={};return n.Mat44=Sk.misceval.buildClass(n,(function(e,t){t.__init__=new Sk.builtin.func((function(e){Sk.misceval.callsimArray(t.loadIdentity,[e]),e.stack=[]})),t.push=new Sk.builtin.func((function(e){e.stack.push(e.elements.slice(0))})),t.pop=new Sk.builtin.func((function(e){e.elements=e.stack.pop()})),t.loadIdentity=new Sk.builtin.func((function(e){e.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]})),t.transform3=new Sk.builtin.func((function(e,t){var l=e.elements;return Sk.misceval.callsimArray(n.Vec3,[l[0]*t.x+l[4]*t.y+l[8]*t.z,l[1]*t.x+l[5]*t.y+l[9]*t.z,l[2]*t.x+l[6]*t.y+l[10]*t.z])})),t.scale=new Sk.builtin.func((function(e,n,t,l){return e.elements[0]*=n,e.elements[1]*=n,e.elements[2]*=n,e.elements[3]*=n,e.elements[4]*=t,e.elements[5]*=t,e.elements[6]*=t,e.elements[7]*=t,e.elements[8]*=l,e.elements[9]*=l,e.elements[10]*=l,e.elements[11]*=l,e})),t.translate=new Sk.builtin.func((function(e,n,t,l){return e.elements[12]+=e.elements[0]*n+e.elements[4]*t+e.elements[8]*l,e.elements[13]+=e.elements[1]*n+e.elements[5]*t+e.elements[9]*l,e.elements[14]+=e.elements[2]*n+e.elements[6]*t+e.elements[10]*l,e.elements[15]+=e.elements[3]*n+e.elements[7]*t+e.elements[11]*l,e})),t.rotate=new Sk.builtin.func((function(e,t,l,s,m){var i,a,c,u,r,f,o,k,S,y,b,v=Math.sqrt(l*l+s*s+m*m),_=Math.sin(t*Math.PI/180),w=Math.cos(t*Math.PI/180);v>0&&(i=(l/=v)*l,a=(s/=v)*s,c=(m/=v)*m,u=l*s,r=s*m,f=m*l,o=l*_,k=s*_,S=m*_,y=1-w,(b=Sk.misceval.callsimArray(n.Mat44)).elements[0]=y*i+w,b.elements[1]=y*u-S,b.elements[2]=y*f+k,b.elements[3]=0,b.elements[4]=y*u+S,b.elements[5]=y*a+w,b.elements[6]=y*r-o,b.elements[7]=0,b.elements[8]=y*f-k,b.elements[9]=y*r+o,b.elements[10]=y*c+w,b.elements[11]=0,b.elements[12]=0,b.elements[13]=0,b.elements[14]=0,b.elements[15]=1,b=b.multiply(e),e.elements=b.elements);return e})),t.multiply=new Sk.builtin.func((function(e,t){for(var l=Sk.misceval.callsimArray(n.Mat44),s=0;s<4;s++)l.elements[4*s+0]=e.elements[4*s+0]*t.elements[0]+e.elements[4*s+1]*t.elements[4]+e.elements[4*s+2]*t.elements[8]+e.elements[4*s+3]*t.elements[12],l.elements[4*s+1]=e.elements[4*s+0]*t.elements[1]+e.elements[4*s+1]*t.elements[5]+e.elements[4*s+2]*t.elements[9]+e.elements[4*s+3]*t.elements[13],l.elements[4*s+2]=e.elements[4*s+0]*t.elements[2]+e.elements[4*s+1]*t.elements[6]+e.elements[4*s+2]*t.elements[10]+e.elements[4*s+3]*t.elements[14],l.elements[4*s+3]=e.elements[4*s+0]*t.elements[3]+e.elements[4*s+1]*t.elements[7]+e.elements[4*s+2]*t.elements[11]+e.elements[4*s+3]*t.elements[15];return e.elements=l.elements,e})),t.lookAt=new Sk.builtin.func((function(e,t,l,s,m,i,a,c,u,r){var f=[t-m,l-i,s-a],o=Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2]);o&&(f[0]/=o,f[1]/=o,f[2]/=o);var k=[c,u,r],S=[];S[0]=k[1]*f[2]-k[2]*f[1],S[1]=-k[0]*f[2]+k[2]*f[0],S[2]=k[0]*f[1]-k[1]*f[0],k[0]=f[1]*S[2]-f[2]*S[1],k[1]=-f[0]*S[2]+f[2]*S[0],k[2]=f[0]*S[1]-f[1]*S[0],(o=Math.sqrt(S[0]*S[0]+S[1]*S[1]+S[2]*S[2]))&&(S[0]/=o,S[1]/=o,S[2]/=o),(o=Math.sqrt(k[0]*k[0]+k[1]*k[1]+k[2]*k[2]))&&(k[0]/=o,k[1]/=o,k[2]/=o);var y=Sk.misceval.callsimArray(n.Mat44);return y.elements[0]=S[0],y.elements[4]=S[1],y.elements[8]=S[2],y.elements[12]=0,y.elements[1]=k[0],y.elements[5]=k[1],y.elements[9]=k[2],y.elements[13]=0,y.elements[2]=f[0],y.elements[6]=f[1],y.elements[10]=f[2],y.elements[14]=0,y.elements[3]=0,y.elements[7]=0,y.elements[11]=0,y.elements[15]=1,y=y.multiply(e),e.elements=y.elements,e.translate(-t,-l,-s),e}))}),"Mat44",[]),n.Mat33=Sk.misceval.buildClass(n,(function(e,n){n.__init__=new Sk.builtin.func((function(e){Sk.misceval.callsimArray(n.loadIdentity,[e])})),n.loadIdentity=new Sk.builtin.func((function(e){e.elements=[1,0,0,0,1,0,0,0,1]}))}),"Mat33",[]),n.Vec3=Sk.misceval.buildClass(n,(function(e,t){t.__init__=new Sk.builtin.func((function(e,n,t,l){e.x=n,e.y=t,e.z=l})),t.__sub__=new Sk.builtin.func((function(e,t){return Sk.misceval.callsimArray(n.Vec3,[e.x-t.x,e.y-t.y,e.z-t.z])}))}),"Vec3",[]),n.cross=new Sk.builtin.func((function(e,t){return Sk.asserts.assert(e instanceof n.Vec3&&t instanceof n.Vec3),Sk.misceval.callsimArray(n.Vec3,[e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x])})),n};',"src/lib/webgl/matrix4.js":"var $builtinmodule=function(n){var r={},t=new Float32Array(3),a=new Float32Array(3),u=new Float32Array(3),e=(new Float32Array(4),new Float32Array(4),new Float32Array(4),new Float32Array(16),new Float32Array(16),new Float32Array(16),function(n,r){for(var t=0,a=r.length,u=0;u1e-5)for(u=0;u{const n=e.$d;var r={},Buffer=function(t,e){var r=e||n.ARRAY_BUFFER,i=n.createBuffer();if(this.target=r,this.buf=i,this.set(t),this.numComponents_=t.numComponents,this.numElements_=t.numElements,this.totalComponents_=this.numComponents_*this.numElements_,t.buffer instanceof Float32Array)this.type_=n.FLOAT;else if(t.buffer instanceof Uint8Array)this.type_=n.UNSIGNED_BYTE;else if(t.buffer instanceof Int8Array)this.type_=n._BYTE;else if(t.buffer instanceof Uint16Array)this.type_=n.UNSIGNED_SHORT;else{if(!(t.buffer instanceof Int16Array))throw"unhandled type:"+typeof t.buffer;this.type_=n.SHORT}};return Buffer.prototype.set=function(t){n.bindBuffer(this.target,this.buf),n.bufferData(this.target,t.buffer,n.STATIC_DRAW)},Buffer.prototype.type=function(){return this.type_},Buffer.prototype.numComponents=function(){return this.numComponents_},Buffer.prototype.numElements=function(){return this.numElements_},Buffer.prototype.totalComponents=function(){return this.totalComponents_},Buffer.prototype.buffer=function(){return this.buf},Buffer.prototype.stride=function(){return 0},Buffer.prototype.offset=function(){return 0},r.Model=Sk.misceval.buildClass(r,(function(e,r){r.__init__=new Sk.builtin.func((function(e,r,i,f){e.buffers={};var setBuffer=function(t,r){var i="indices"==t?n.ELEMENT_ARRAY_BUFFER:n.ARRAY_BUFFER;let f=e.buffers[t];f?f.set(r):f=new Buffer(r,i),e.buffers[t]=f};for(t in i)setBuffer(t,i[t]);var o={},s=0;for(var u in f)o[u]=s++;e.mode=n.TRIANGLES,e.textures=f.v,e.textureUnits=o,e.shader=r})),r.drawPrep=new Sk.builtin.func((function(t,e){var r=t.shader,i=t.buffers,f=t.textures;for(var o in e=Sk.ffi.remapToJs(e),Sk.misceval.callsimArray(r.use,[r]),i){var s=i[o];if("indices"==o)n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,s.buffer());else{var u=r.attrib[o];u&&u(s)}}for(var a in f){var m=t.textureUnits[a];r.setUniform$impl(r,f,m),f[a].bindToUnit(m)}for(var p in e)r.setUniform$impl(r,p,e[p])})),r.draw=new Sk.builtin.func((function(t,e,r){var i=t.shader;e=Sk.ffi.remapToJs(e);for(let n in e)i.setUniform$impl(i,n,e[n]);if(r)for(var f in r){var o=t.textureUnits[f];i.setUniform$impl(i,f,o),r[f].bindToUnit(o)}var s=t.buffers;n.drawElements(t.mode,s.indices.totalComponents(),n.UNSIGNED_SHORT,0)}))}),"Model",[]),r}))};',"src/lib/webgl/primitives.js":'var $builtinmodule=function(t){var n={},AttribBuffer=function(t,n,e){e=e||"Float32Array";var r=window[e];n.length?(this.buffer=new r(n),n=this.buffer.length/t,this.cursor=n):(this.buffer=new r(t*n),this.cursor=0),this.numComponents=t,this.numElements=n,this.type=e};return AttribBuffer.prototype.stride=function(){return 0},AttribBuffer.prototype.offset=function(){return 0},AttribBuffer.prototype.getElement=function(t){for(var n=t*this.numComponents,e=[],r=0;r
\'+n+"
"},e=\'This page requires a browser that supports WebGL.
Click here to upgrade your browser.\';return t.Context=Sk.misceval.buildClass(t,(function(n,t){t.__init__=new Sk.builtin.func((function(n,t){var i=document.getElementById(t.v),r=function(n,t){var i=document.getElementById(n);if(t||(t=i.getElementsByTagName("canvas")[0]),t){var r=function(n){for(var t=["webgl","experimental-webgl","webkit-3d","moz-webgl"],e=null,i=0;i7||7==a.Chrome[0]&&a.Chrome[1]>0||7==a.Chrome[0]&&0==a.Chrome[1]&&a.Chrome[2]>=521)?i.innerHTML=makeFailHTML(\'It doesn\\\'t appear your computer can support WebGL.
Click here for more information.\'):i.innerHTML=makeFailHTML(e)}return r}i.innerHTML=makeFailHTML(e)}(t.v,i);if(!r)throw new Error("Your browser does not appear to support WebGL.");for(var u in n.gl=r,r.__proto__)if("number"==typeof r.__proto__[u])Sk.abstr.objectSetItem(n.$d,new Sk.builtin.str(u),r.__proto__[u]);else if("function"==typeof r.__proto__[u])switch(u){case"bufferData":case"clearColor":case"drawArrays":case"getAttribLocation":case"getUniformLocation":case"shaderSource":case"uniformMatrix4fv":case"vertexAttribPointer":case"viewport":break;default:!function(t){Sk.abstr.objectSetItem(n.$d,new Sk.builtin.str(u),new Sk.builtin.func((function(){return r.__proto__[t].apply(r,arguments)})))}(u)}r.clearColor(100/255,149/255,237/255,1),r.clear(r.COLOR_BUFFER_BIT)})),t.tp$getattr=Sk.generic.getAttr,t.bufferData=new Sk.builtin.func((function(n,t,e,i){n.gl.bufferData(t,e.v,i)})),t.clearColor=new Sk.builtin.func((function(n,t,e,i,r){n.gl.clearColor(Sk.builtin.asnum$(t),Sk.builtin.asnum$(e),Sk.builtin.asnum$(i),Sk.builtin.asnum$(r))})),t.getAttribLocation=new Sk.builtin.func((function(n,t,e){return n.gl.getAttribLocation(t,e.v)})),t.getUniformLocation=new Sk.builtin.func((function(n,t,e){return n.gl.getUniformLocation(t,e.v)})),t.shaderSource=new Sk.builtin.func((function(n,t,e){n.gl.shaderSource(t,e.v)})),t.drawArrays=new Sk.builtin.func((function(n,t,e,i){n.gl.drawArrays(Sk.builtin.asnum$(t),Sk.builtin.asnum$(e),Sk.builtin.asnum$(i))})),t.vertexAttribPointer=new Sk.builtin.func((function(n,t,e,i,r,u,a){n.gl.vertexAttribPointer(t,Sk.builtin.asnum$(e),Sk.builtin.asnum$(i),r,Sk.builtin.asnum$(u),Sk.builtin.asnum$(a))})),t.viewport=new Sk.builtin.func((function(n,t,e,i,r){n.gl.viewport(Sk.builtin.asnum$(t),Sk.builtin.asnum$(e),Sk.builtin.asnum$(i),Sk.builtin.asnum$(r))})),t.uniformMatrix4fv=new Sk.builtin.func((function(n,t,e,i){n.gl.uniformMatrix4fv(Sk.builtin.asnum$(t),e,i.v)})),t.setDrawFunc=new Sk.builtin.func((function(n,t){var e=(new Date).getTime();setInterval((function(){Sk.misceval.callsimArray(t,[n,(new Date).getTime()-e])}),1e3/60)}))}),"Context",[]),t.Float32Array=Sk.misceval.buildClass(t,(function(n,t){t.__init__=new Sk.builtin.func((function(n,t){n.v="number"==typeof t?new Float32Array(t):new Float32Array(Sk.ffi.remapToJs(t))})),t.__repr__=new Sk.builtin.func((function(n){for(var t=[],e=0;e(z=e.$d,O)),(e=>{O=e.$d}));return S(L,(()=>{function _strftime(e){return t=>e.$strftime(t).toString().toLowerCase()}function _strftime_timetuple(e,t){return O.strftime.tp$call([new i(e),t]).toString().toLowerCase()}const l=new i("fromordinal");function _struct_time(t){return O.struct_time.tp$call([new s(t.map((t=>new e(t))))])}function _localized_month(){const e=[()=>""];for(let t=0;t<12;t++){const i=new k(2001,t+1,1);e.push(_strftime(i))}return e}function _localized_day(){const e=[];for(let t=0;t<7;t++){const i=new k(2001,1,t+1);e.push(_strftime(i))}return e}const S={__name__:new i("_strptime")},k=z.date,L=z.timedelta,E=z.timezone;function _getlang(){return[t,t]}class LocaleTime{constructor(){this.lang=_getlang(),this.__calc_weekday(),this.__calc_month(),this.__calc_am_pm(),this.__calc_timezone(),this.__calc_date_time()}__calc_weekday(){this.a_weekday=_localized_day().map((e=>e("%a"))),this.f_weekday=_localized_day().map((e=>e("%A")))}__calc_month(){this.a_month=_localized_month().map((e=>e("%b"))),this.f_month=_localized_month().map((e=>e("%B")))}__calc_am_pm(){const e=[];[1,22].forEach((t=>{const i=_strftime_timetuple("%p",_struct_time([1999,3,17,t,44,55,2,76,0]));e.push(i)})),this.am_pm=e}__calc_date_time(){const e=_struct_time([1999,3,17,22,44,55,2,76,0]),i=[t,t,t];i[0]=_strftime_timetuple("%c",e),i[1]=_strftime_timetuple("%x",e),i[2]=_strftime_timetuple("%X",e);const s=[["%","%%"],[this.f_weekday[2],"%A"],[this.f_month[3],"%B"],[this.a_weekday[2],"%a"],[this.a_month[3],"%b"],[this.am_pm[1],"%p"],["1999","%Y"],["99","%y"],["22","%H"],["44","%M"],["55","%S"],["76","%j"],["17","%d"],["03","%m"],["3","%m"],["2","%w"],["10","%I"]];s.push(...this.timezone.flat().map((e=>[e,"%Z"]))),[[0,"%c"],[1,"%x"],[2,"%X"]].forEach((([e,t])=>{let n=i[e];s.forEach((([e,t])=>{e&&(n=n.replace(e,t))}));let a;a=_strftime_timetuple(t,_struct_time([1999,1,3,1,1,1,6,3,0])).includes("00")?"%W":"%U",i[e]=n.replace("11",a)})),this.LC_date_time=i[0],this.LC_date=i[1],this.LC_time=i[2]}__calc_timezone(){try{O.tzset.tp$call([])}catch{}this.tzname=O.tzname.v.map((e=>e.toString())),this.daylight=w(O.daylight);const e=[this.tzname[0].toLowerCase(),"utc","gmt"];let t;t=this.daylight?[this.tzname[1].toLowerCase()]:[],this.timezone=[e,t]}}class TimeRE{constructor(e=null){this.locale_time=e||new LocaleTime,Object.assign(this,{d:"(?3[0-1]|[1-2]\\\\d|0[1-9]|[1-9]| [1-9])",f:"(?[0-9]{1,6})",H:"(?2[0-3]|[0-1]\\\\d|\\\\d)",I:"(?1[0-2]|0[1-9]|[1-9])",G:"(?\\\\d\\\\d\\\\d\\\\d)",j:"(?36[0-6]|3[0-5]\\\\d|[1-2]\\\\d\\\\d|0[1-9]\\\\d|00[1-9]|[1-9]\\\\d|0[1-9]|[1-9])",m:"(?1[0-2]|0[1-9]|[1-9])",M:"(?[0-5]\\\\d|\\\\d)",S:"(?6[0-1]|[0-5]\\\\d|\\\\d)",U:"(?5[0-3]|[0-4]\\\\d|\\\\d)",w:"(?[0-6])",u:"(?[1-7])",V:"(?5[0-3]|0[1-9]|[1-4]\\\\d|\\\\d)",y:"(?\\\\d\\\\d)",Y:"(?\\\\d\\\\d\\\\d\\\\d)",z:"(?[+-]\\\\d\\\\d:?[0-5]\\\\d(:?[0-5]\\\\d(\\\\.\\\\d{1,6})?)?|Z)",A:this.__seqToRE(this.locale_time.f_weekday,"A"),a:this.__seqToRE(this.locale_time.a_weekday,"a"),B:this.__seqToRE(this.locale_time.f_month.slice(1),"B"),b:this.__seqToRE(this.locale_time.a_month.slice(1),"b"),p:this.__seqToRE(this.locale_time.am_pm,"p"),Z:this.__seqToRE(this.locale_time.timezone.flat(),"Z"),"%":"%"}),this.W=this.U.replace("U","W"),this.x=this.pattern(this.locale_time.LC_date),this.X=this.pattern(this.locale_time.LC_time),this.c=this.pattern(this.locale_time.LC_date_time)}__seqToRE(e,t){if((e=e.slice(0).sort(((e,t)=>t.length-e.length))).every((e=>""===e)))return"";return`(?<${t}>${e.map((e=>e)).join("|")})`}pattern(e){let t="";for(e=(e=e.replace(b,"\\\\$1")).replace(v,"\\\\s+");e.includes("%");){const i=e.indexOf("%")+1,s=this[e[i]];if(void 0===s)throw new h(e[i]);t=`${t}${e.slice(0,i-1)}${s}`,e=e.slice(i+1)}return t+e}compile(e){return new RegExp("^"+this.pattern(e),"i")}}let C=new TimeRE;const T=5;let A={};function _strptime(i,s="%a %b %d %H:%M:%S %Y"){function _checkString(e,t){if("string"!=typeof e&&!u(e))throw new m(`strptime() argument ${t} must be a str, not \'${o(e)}\'`)}_checkString(i,0),_checkString(s,1),i=i.toString(),s=s.toString();let n,_=C.locale_time;if(Object.keys(A).length>T&&(A={}),n=A[s],void 0===n)try{n=C.compile(s)}catch(V){if(V instanceof h){let e=V.args.v[0];throw"\\\\"==e&&(e="%"),new d(`\'${e}\' is a bad directive in format \'${s}\'`)}if(V instanceof f)throw new d("stray %% in format \'"+s+"\'");throw V}const c=i.match(n);if(null===c)throw new d(`time data \'${i}\' does not match format \'${s}\'`);if(i.length!==c[0].length)throw new d(`unconverted data remains: ${i.slice(c[0].length)}`);let w=t,p=t,g=1,$=1,y=0,S=0,b=0,v=0,z=-1,L=t,E=0,I=t,M=t,H=t,Y=t,j=t,U=c.groups||{};if(Object.keys(U).forEach((e=>{if(void 0!==U[e])if("y"===e)p=_as_integer(U.y),p+=p<=68?2e3:1900;else if("Y"===e)p=_as_integer(U.Y);else if("G"===e)w=_as_integer(U.G);else if("m"===e)g=_as_integer(U.m);else if("B"===e)g=_.f_month.indexOf(U.B.toLowerCase());else if("b"===e)g=_.a_month.indexOf(U.b.toLowerCase());else if("d"===e)$=_as_integer(U.d);else if("H"===e)y=_as_integer(U.H);else if("H"===e)y=_as_integer(U.H);else if("I"===e){y=_as_integer(U.I);const e=(U.p||"").toLowerCase();["",_.am_pm[0]].includes(e)?12===y&&(y=0):e===_.am_pm[1]&&12!==y&&(y+=12)}else if("M"===e)S=_as_integer(U.M);else if("S"===e)b=_as_integer(U.S);else if("f"===e){let e=U.f;e+="0".repeat(6-e.length),v=_as_integer(e)}else if("A"===e)Y=_.f_weekday.indexOf(U.A.toLowerCase());else if("a"===e)Y=_.a_weekday.indexOf(U.a.toLowerCase());else if("w"===e)Y=_as_integer(U.w),0===Y?Y=6:Y-=1;else if("u"===e)Y=_as_integer(U.u),Y-=1;else if("j"===e)j=_as_integer(U.j);else if(["U","W"].includes(e))M=_as_integer(U[e]),H="U"===e?6:0;else if("V"===e)I=_as_integer(U.V);else if("z"===e){let e=U.z;if("Z"===e)L=0;else{if(":"===e[3]&&(e=e.slice(0,3)+e.slice(4),e.length>5)){if(":"!==e[5]){const e=`Inconsistent use of : in ${U.z}`;throw new d(e)}e=e.slice(0,5)+e.slice(6)}const t=_as_integer(e.slice(1,3)),i=_as_integer(e.slice(3,5)),s=_as_integer(e.slice(5,7)||0);L=3600*t+60*i+s;const n=e.slice(8),a="0".repeat(6-n.length);E=_as_integer(n+a),e.startsWith("-")&&(L=-L,E=-E)}}else if("Z"===e){let e=U.Z.toLowerCase(),t=0;for(let i of _.timezone){if(i.includes(e)){const i=O.tzname.v;if(r(i[0],i[1],"Eq")&&a(O.daylight)&&!["utc","gmt"].includes(e))break;z=t}t++}}})),p===t&&w!==t){if(I===t||Y===t)throw new d("ISO year directive \'%G\' must be used with the ISO week directive \'%V\' and a weekday directive (\'%A\',\'%a\', \'%w\', or \'%u\').");if(j!==t)throw new d("Day of the year directive \'%j\' is not compatible with ISO year directive \'%G\'.Use \'%Y\' instead.")}else if(M===t&&I!==t)throw new d(Y===t?"ISO week directive \'%V\' must be used with the ISO year directive \'%G\' and a weekday directive (\'%A\', \'%a\', \'%w\', or \'%u\').":"ISO week directive \'%V\' is incompatible with the year directive \'%Y\'. Use the ISO year \'%G\' instead.");let x=!1;if(p===t&&2===g&&29===$?(p=1904,x=!0):p===t&&(p=1900),j===t&&Y!==t){if(M!==t){j=function _calc_julian_from_U_or_W(e,t,i,s){let n=(new k(e,1,1).$toOrdinal()+6)%7;return s||(n=(n+1)%7,i=(i+1)%7),0===t?1+i-n:(7-n)%7+7*(t-1)+1+i}(p,M,Y,0===H)}else w!==t&&I!==t&&([p,j]=function _calc_julian_from_V(e,t,i){let s=7*t+i-((new k(e,1,4).$toOrdinal()%7||7)+3);return s<1&&(s+=new k(e,1,1).$toOrdinal(),s-=new k(e-=1,1,1).$toOrdinal()),[e,s]}(w,I,Y+1));if(j!==t&&j<=0){p-=1;const e=function _is_leap(e){return e%4==0&&(e%100!=0||e%400==0)}(p)?366:365;j+=e}}if(j===t)j=new k(p,g,$).$toOrdinal()-new k(p,1,1).$toOrdinal()+1;else{const t=function _fromordinal(t){return k.tp$getattr(l).tp$call([new e(t)])}(j-1+new k(p,1,1).$toOrdinal());p=t.$year,g=t.$month,$=t.$day}Y===t&&(Y=(new k(p,g,$).$toOrdinal()+6)%7);const R=U.Z||t;return x&&(p=1900),[[p,g,$,y,S,b,Y,j,z,R,L],v,E]}return _("_strptime",S,{_strptime_time:{$meth:function _strptime_time(t,i="%a %b %d %H:%M:%S %Y"){let n=_strptime(t,i)[0].slice(0,11);return n=n.map(((t,i)=>i<9?new e(t):p(t))),O.struct_time.tp$call([new s(n)])},$flags:{NamedArgs:["data_string","format"],Defaults:["%a %b %d %H:%M:%S %Y"]}},_strptime_datetime:{$meth:function _strptime_datetime(s,r,l="%a %b %d %H:%M:%S %Y"){const[o,_,c]=_strptime(r,l),[m,d]=o.slice(-2),h=o.slice(0,6);let f,u;return h.push(_),h.map((t=>new e(t))),d!==t&&(f=new L(0,d,c),u=a(m)?new E(f,new i(m)):new E(f),h.push(u)),n(s,h)},$flags:{NamedArgs:["cls","data_string","format"],Defaults:["%a %b %d %H:%M:%S %Y"]}},_strptime:{$meth(i,n){const a=_strptime(i,n);return a[0]=new s(a[0].map((i=>i===t?i:new e(i)))),a[1]=new e(a[1]),a[2]=new e(a[2]),new s(a)},$flags:{NamedArgs:["data_string","format"],Defaults:["%a %b %d %H:%M:%S %Y"]}},_getlang:{$meth:()=>p(_getlang()),$flags:{NoArgs:!0}}}),S.LocaleTime=c("_strptime.LocaleTime",{constructor:function(){this.v=new LocaleTime},slots:{tp$getattr(e,t){return this.v.hasOwnProperty(e.toString())?p(this.v[e.toString()]):$.call(this,e,t)},tp$setattr(e,t){if(!this.v.hasOwnProperty(e.toString()))return y.call(this,e,t);this.v[e.toString()]=g(t)}}}),S}))}'}}},312:function(t,e,n){(function(){"use strict";var t=t||{};t.scope={},t.ASSUME_ES5=!1,t.ASSUME_NO_NATIVE_MAP=!1,t.ASSUME_NO_NATIVE_SET=!1,t.SIMPLE_FROUND_POLYFILL=!1,t.ISOLATE_POLYFILLS=!1,t.FORCE_POLYFILL_PROMISE=!1,t.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1,t.defineProperty=t.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(t,e,n){return t==Array.prototype||t==Object.prototype||(t[e]=n.value),t},t.getGlobal=function(t){t=["object"==typeof globalThis&&globalThis,t,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof n.g&&n.g];for(var e=0;e(e=e||0)&&(e=Math.max(e+i,0));e{Sk.abstr.setUpSlots(t),Sk.abstr.setUpMethods(t),Sk.abstr.setUpGetSets(t),Sk.abstr.setUpClassMethods(t)})),n(19),n(20),n(21),[Sk.builtin.str,Sk.builtin.none,Sk.builtin.NotImplemented,Sk.builtin.object].forEach((t=>{(t=t.prototype).__doc__=t.hasOwnProperty("tp$doc")?new Sk.builtin.str(t.tp$doc):Sk.builtin.none.none$})),n(22),n(23),n(24),n(25),n(26),n(27),n(28),n(29),n(31),n(32),n(33),n(34),n(35),n(36),n(37),n(38),n(39),n(40),n(41),n(42),n(43),n(44),n(45),n(46),n(47),n(48),n(49),n(50),n(51),n(52),n(53),n(66),n(54),n(55),n(56),n(57),n(58),n(59),n(60),n(61),n(62),n(63),n(64),n(65)},function(t,e,n){(function(t){var e={build:{githash:"1d6da87991edd93117a53858367c32f27d77b396",date:"2023-09-01T06:58:47.589Z"}};e.global=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e.exportSymbol=function(t,n){t=t.split(".");var i,s=e.global;for(i=0;i=t||0===e||4<=e)return"th";switch(e){case 1:return"st";case 2:return"nd";case 3:return"rd"}}function o(t){"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(t)}var a={de_DE:{identifier:"de-DE",days:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),shortDays:"So Mo Di Mi Do Fr Sa".split(" "),months:"Januar Februar März April Mai Juni Juli August September Oktober November Dezember".split(" "),shortMonths:"Jan Feb Mär Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d.%m.%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},en_CA:{identifier:"en-CA",days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),ordinalSuffixes:"st nd rd th th th th th th th th th th th th th th th th th st nd rd th th th th th th th st".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},en_US:{identifier:"en-US",days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),ordinalSuffixes:"st nd rd th th th th th th th th th th th th th th th th th st nd rd th th th th th th th st".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%m/%d/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},es_MX:{identifier:"es-MX",days:"domingo lunes martes miércoles jueves viernes sábado".split(" "),shortDays:"dom lun mar mié jue vie sáb".split(" "),months:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),shortMonths:"ene feb mar abr may jun jul ago sep oct nov dic".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},fr_FR:{identifier:"fr-FR",days:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),shortDays:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),months:"janvier février mars avril mai juin juillet août septembre octobre novembre décembre".split(" "),shortMonths:"janv. févr. mars avril mai juin juil. août sept. oct. nov. déc.".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},it_IT:{identifier:"it-IT",days:"domenica lunedì martedì mercoledì giovedì venerdì sabato".split(" "),shortDays:"dom lun mar mer gio ven sab".split(" "),months:"gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre".split(" "),shortMonths:"gen feb mar apr mag giu lug ago set ott nov dic".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},nl_NL:{identifier:"nl-NL",days:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),shortDays:"zo ma di wo do vr za".split(" "),months:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),shortMonths:"jan feb mrt apr mei jun jul aug sep okt nov dec".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},pt_BR:{identifier:"pt-BR",days:"domingo segunda terça quarta quinta sexta sábado".split(" "),shortDays:"Dom Seg Ter Qua Qui Sex Sáb".split(" "),months:"janeiro fevereiro março abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),shortMonths:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},ru_RU:{identifier:"ru-RU",days:"Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "),shortDays:"Вс Пн Вт Ср Чт Пт Сб".split(" "),months:"Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь".split(" "),shortMonths:"янв фев мар апр май июн июл авг сен окт ноя дек".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X",D:"%d.%m.%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},tr_TR:{identifier:"tr-TR",days:"Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi".split(" "),shortDays:"Paz Pzt Sal Çrş Prş Cum Cts".split(" "),months:"Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık".split(" "),shortMonths:"Oca Şub Mar Nis May Haz Tem Ağu Eyl Eki Kas Ara".split(" "),AM:"ÖÖ",PM:"ÖS",am:"ÖÖ",pm:"ÖS",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},zh_CN:{identifier:"zh-CN",days:"星期日 星期一 星期二 星期三 星期四 星期五 星期六".split(" "),shortDays:"日一二三四五六".split(""),months:"一月份 二月份 三月份 四月份 五月份 六月份 七月份 八月份 九月份 十月份 十一月份 十二月份".split(" "),shortMonths:"一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月".split(" "),AM:"上午",PM:"下午",am:"上午",pm:"下午",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}}},l=a.en_US,u=new function t(u,c,p){function h(t,a,l,u){for(var c="",p=null,_=!1,d=t.length,g=!1,b=0;ba.getHours()?l.am:l.pm;break;case 82:c+=h(l.formats.R,a,l,u);break;case 83:c+=e(a.getSeconds(),p);break;case 84:c+=h(l.formats.T,a,l,u);break;case 85:c+=e(s(a,"sunday"),p);break;case 87:c+=e(s(a,"monday"),p);break;case 88:c+=h(l.formats.X,a,l,u);break;case 89:c+=a.getFullYear();break;case 90:m&&0===f?c+="GMT":c+=(p=(p=(p=a).toString().match(/\(([\w\s]+)\)/))&&p[1])||"";break;case 97:c+=l.shortDays[a.getDay()];break;case 98:case 104:c+=l.shortMonths[a.getMonth()];break;case 99:c+=h(l.formats.c,a,l,u);break;case 100:c+=e(a.getDate(),p);break;case 101:c+=e(a.getDate(),null==p?" ":p);break;case 106:p=new Date(a.getFullYear(),0,1),c+=n(p=Math.ceil((a.getTime()-p.getTime())/864e5));break;case 107:c+=e(a.getHours(),null==p?" ":p);break;case 108:c+=e(i(a.getHours()),null==p?" ":p);break;case 109:c+=e(a.getMonth()+1,p);break;case 110:c+="\n";break;case 111:p=a.getDate(),c=l.ordinalSuffixes?c+(String(p)+(l.ordinalSuffixes[p-1]||r(p))):c+(String(p)+r(p));break;case 112:c+=12>a.getHours()?l.AM:l.PM;break;case 114:c+=h(l.formats.r,a,l,u);break;case 115:c+=Math.floor(u/1e3);break;case 116:c+="\t";break;case 117:c+=0===(p=a.getDay())?7:p;break;case 118:c+=h(l.formats.v,a,l,u);break;case 119:c+=a.getDay();break;case 120:c+=h(l.formats.x,a,l,u);break;case 121:c+=e(_=a.getFullYear()%100,p);break;case 122:m&&0===f?c+=g?"+00:00":"+0000":(p=0!==f?f/6e4:-a.getTimezoneOffset(),_=g?":":"",S=Math.abs(p%60),c+=(0>p?"-":"+")+e(Math.floor(Math.abs(p/60)))+_+e(S));break;default:_&&(c+="%"),c+=t[b]}p=null,_=!1}else 37===S?_=!0:c+=t[b]}return c}var _,d=u||l,f=c||0,m=p||!1,g=0,b=function(t,e){if(e){var n=e.getTime();if(m){var i=6e4*(e.getTimezoneOffset()||0);6e4*((e=new Date(n+i+f)).getTimezoneOffset()||0)!==i&&(e=6e4*(e.getTimezoneOffset()||0),e=new Date(n+e+f))}}else(n=Date.now())>g?(g=n,_=new Date(g),n=g,m&&(_=new Date(g+6e4*(_.getTimezoneOffset()||0)+f))):n=g,e=_;return h(t,e,d,n)};return b.localize=function(e){return new t(e||d,f,m)},b.localizeByIdentifier=function(t){var e=a[t];return e?b.localize(e):(o('[WARNING] No locale found with identifier "'+t+'".'),b)},b.timezone=function(e){var n=f,i=m,s=typeof e;return"number"!==s&&"string"!==s||(i=!0,"string"===s?n=(n="-"===e[0]?-1:1)*(60*(s=parseInt(e.slice(1,3),10))+(e=parseInt(e.slice(3,5),10)))*6e4:"number"===s&&(n=6e4*e)),new t(d,n,i)},b.utc=function(){return new t(d,f,!0)},b}(l,0,!1);if(void 0!==t)t.exports=u;else(function(){return this||(0,eval)("this")}()).strftime=u;"function"!=typeof Date.now&&(Date.now=function(){return+new Date})}()},function(t,e,n){t=n(5);const i=Sk.global.JSBI=void 0!==Sk.global.BigInt?{}:t;void 0===Sk.global.BigInt?(i.__isBigInt||(i.__isBigInt=t=>t instanceof i),i.powermod=(t,e,n)=>{const s=i.BigInt(1);let r=s;for(e=i.greaterThan(e,i.__ZERO)?e:i.unaryMinus(e);i.greaterThan(e,i.__ZERO);)i.bitwiseAnd(e,s)&&(r=i.remainder(i.multiply(r,t),n)),e=i.signedRightShift(e,s),t=i.remainder(i.multiply(t,t),n);return r}):Object.assign(i,{BigInt:Sk.global.BigInt,toNumber:t=>Number(t),toString:t=>t.toString(),__isBigInt:t=>"bigint"==typeof t,unaryMinus:t=>-t,bitwiseNot:t=>~t,bitwiseAnd:(t,e)=>t&e,bitwiseOr:(t,e)=>t|e,bitwiseXor:(t,e)=>t^e,exponentiate:(t,e)=>{const n=i.BigInt(1);let s=n;for(e=e>i.__ZERO?e:-e;e>i.__ZERO;)e&n&&(s*=t),e>>=n,t*=t;return s},powermod:(t,e,n)=>{const s=i.BigInt(1);let r=s;for(e=e>i.__ZERO?e:-e;e>i.__ZERO;)e&s&&(r=r*t%n),e>>=s,t=t*t%n;return r},multiply:(t,e)=>t*e,divide:(t,e)=>t/e,remainder:(t,e)=>t%e,add:(t,e)=>t+e,subtract:(t,e)=>t-e,leftShift:(t,e)=>t<t>>e,unsignedRightShift:(t,e)=>t>>>e,lessThan:(t,e)=>tt<=e,greaterThan:(t,e)=>t>e,greaterThanOrEqual:(t,e)=>t>=e,equal:(t,e)=>t===e,notEqual:(t,e)=>t!==e}),i.__ZERO=i.BigInt(0),i.__MAX_SAFE=i.BigInt(Number.MAX_SAFE_INTEGER),i.__MIN_SAFE=i.BigInt(-Number.MAX_SAFE_INTEGER),i.numberIfSafe=t=>i.lessThan(t,i.__MAX_SAFE)&&i.greaterThan(t,i.__MIN_SAFE)?i.toNumber(t):t,i.BigUp=t=>i.__isBigInt(t)?t:i.BigInt(t)},function(t,e,n){t.exports=function(){var t=Math.imul,e=Math.clz32,n=Math.abs,i=Math.max,s=Math.floor;class r extends Array{constructor(t,e){if(super(t),this.sign=e,t>r.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded")}static BigInt(t){var e=Number.isFinite;if("number"==typeof t){if(0===t)return r.__zero();if(r.__isOneDigitInt(t))return 0>t?r.__oneDigit(-t,!0):r.__oneDigit(t,!1);if(!e(t)||s(t)!==t)throw new RangeError("The number "+t+" cannot be converted to BigInt because it is not an integer");return r.__fromDouble(t)}if("string"==typeof t){if(null===(e=r.__fromString(t)))throw new SyntaxError("Cannot convert "+t+" to a BigInt");return e}if("boolean"==typeof t)return!0===t?r.__oneDigit(1,!1):r.__zero();if("object"==typeof t)return t.constructor===r?t:(t=r.__toPrimitive(t),r.BigInt(t));throw new TypeError("Cannot convert "+t+" to a BigInt")}toDebugString(){const t=["BigInt["];for(const e of this)t.push((e?(e>>>0).toString(16):e)+", ");return t.push("]"),t.join("")}toString(t){if(2>(t=void 0===t?10:t)||36>>12;const l=a-12;for(e=12<=a?0:i<<20+a,a=20+a,0>>30-l,e=i<>>30-a,a-=30;return 1!==(i=r.__decideRounding(t,a,o,i))&&(0!==i||1&~e)||0!=(e=e+1>>>0)||!(0!=++s>>>20&&(s=0,1023<++n))?(t=t.sign?-2147483648:0,n=n+1023<<20,r.__kBitConversionInts[1]=t|n|s,r.__kBitConversionInts[0]=e,r.__kBitConversionDouble[0]):t.sign?-1/0:1/0}static unaryMinus(t){if(0===t.length)return t;const e=t.__copy();return e.sign=!t.sign,e}static bitwiseNot(t){return t.sign?r.__absoluteSubOne(t).__trim():r.__absoluteAddOne(t,!0)}static exponentiate(t,e){if(e.sign)throw new RangeError("Exponent must be positive");if(0===e.length)return r.__oneDigit(1,!1);if(0===t.length)return t;if(1===t.length&&1===t.__digit(0))return!t.sign||1&e.__digit(0)?t:r.unaryMinus(t);if(1=r.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===t.length&&2===t.__digit(0)){var n=1+(0|e/30);return(t=new r(n,t.sign&&!!(1&e))).__initializeDigits(),t.__setDigit(n-1,1<>=1;0!==e;e>>=1)i=r.multiply(i,i),1&e&&(n=null===n?i:r.multiply(n,i));return n}static multiply(t,e){if(0===t.length)return t;if(0===e.length)return e;var n=t.length+e.length;30<=t.__clzmsd()+e.__clzmsd()&&n--,(n=new r(n,t.sign!==e.sign)).__initializeDigits();for(let i=0;ir.__absoluteCompare(t,e))return r.__zero();const n=t.sign!==e.sign,i=e.__unsignedDigit(0);if(1===e.length&&32767>=i){if(1===i)return n===t.sign?t:r.unaryMinus(t);t=r.__absoluteDivSmall(t,i,null)}else t=r.__absoluteDivLarge(t,e,!0,!1);return t.sign=n,t.__trim()}static remainder(t,e){if(0===e.length)throw new RangeError("Division by zero");if(0>r.__absoluteCompare(t,e))return t;const n=e.__unsignedDigit(0);return 1===e.length&&32767>=n?1===n||0===(e=r.__absoluteModSmall(t,n))?r.__zero():r.__oneDigit(e,t.sign):((e=r.__absoluteDivLarge(t,e,!1,!0)).sign=t.sign,e.__trim())}static add(t,e){const n=t.sign;return n===e.sign?r.__absoluteAdd(t,e,n):0<=r.__absoluteCompare(t,e)?r.__absoluteSub(t,e,n):r.__absoluteSub(e,t,!n)}static subtract(t,e){const n=t.sign;return n===e.sign?0<=r.__absoluteCompare(t,e)?r.__absoluteSub(t,e,n):r.__absoluteSub(e,t,!n):r.__absoluteAdd(t,e,n)}static leftShift(t,e){return 0===e.length||0===t.length?t:e.sign?r.__rightShiftByAbsolute(t,e):r.__leftShiftByAbsolute(t,e)}static signedRightShift(t,e){return 0===e.length||0===t.length?t:e.sign?r.__leftShiftByAbsolute(t,e):r.__rightShiftByAbsolute(t,e)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(t,e){return 0>r.__compareToBigInt(t,e)}static lessThanOrEqual(t,e){return 0>=r.__compareToBigInt(t,e)}static greaterThan(t,e){return 0(t=s(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return r.__zero();if(t>=r.__kMaxLengthBits)return e;const n=0|(t+29)/30;if(e.length(t=s(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return r.__zero();if(e.sign){if(t>r.__kMaxLengthBits)throw new RangeError("BigInt too big");return r.__truncateAndSubFromPowerOfTwo(t,e,!1)}if(t>=r.__kMaxLengthBits)return e;const n=0|(t+29)/30;if(e.length>>i?r.__truncateToNBits(t,e):e}static ADD(t,e){if(t=r.__toPrimitive(t),e=r.__toPrimitive(e),"string"==typeof t)return"string"!=typeof e&&(e=e.toString()),t+e;if("string"==typeof e)return t.toString()+e;if(t=r.__toNumeric(t),e=r.__toNumeric(e),r.__isBigInt(t)&&r.__isBigInt(e))return r.add(t,e);if("number"==typeof t&&"number"==typeof e)return t+e;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(t,e){return r.__compare(t,e,0)}static LE(t,e){return r.__compare(t,e,1)}static GT(t,e){return r.__compare(t,e,2)}static GE(t,e){return r.__compare(t,e,3)}static EQ(t,e){for(;;){if(r.__isBigInt(t))return r.__isBigInt(e)?r.equal(t,e):r.EQ(e,t);if("number"==typeof t){if(r.__isBigInt(e))return r.__equalToNumber(e,t);if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else if("string"==typeof t){if(r.__isBigInt(e))return null!==(t=r.__fromString(t))&&r.equal(t,e);if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else if("boolean"==typeof t){if(r.__isBigInt(e))return r.__equalToNumber(e,+t);if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else if("symbol"==typeof t){if(r.__isBigInt(e))return!1;if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else{if("object"!=typeof t)return t==e;if("object"==typeof e&&e.constructor!==r)return t==e;t=r.__toPrimitive(t)}}}static NE(t,e){return!r.EQ(t,e)}static __zero(){return new r(0,!1)}static __oneDigit(t,e){return(e=new r(1,e)).__setDigit(0,t),e}__copy(){const t=new r(this.length,this.sign);for(let e=0;ee)e=-e-1;else{if(0===n)return-1;n--,i=t.__digit(n),e=29}if(!(i&(e=1<>>20)-1023,n=1+(0|e/30);t=new r(n,0>t);let i,s=1048575&r.__kBitConversionInts[1]|1048576,o=r.__kBitConversionInts[0];if(20>(e%=30)){var a=20-e;i=a+32,e=s>>>a,s=s<<32-a|o>>>a,o<<=32-a}else 20===e?(i=32,e=s,s=o):(i=32-(a=e-20),e=s<>>32-a,s=o<>>2,s=s<<30|o>>>2,o<<=30):e=0,t.__setDigit(n,e);return t.__trim()}static __isWhitespace(t){return!!(13>=t&&9<=t)||(159>=t?32==t:131071>=t?160==t||5760==t:196607>=t?10>=(t&=131071)||40==t||41==t||47==t||95==t||4096==t:65279==t)}static __fromString(t,e){e=void 0===e?0:e;let n=0;const i=t.length;let s=0;if(s===i)return r.__zero();let o=t.charCodeAt(s);for(;r.__isWhitespace(o);){if(++s===i)return r.__zero();o=t.charCodeAt(s)}if(43===o){if(++s===i)return null;o=t.charCodeAt(s),n=1}else if(45===o){if(++s===i)return null;o=t.charCodeAt(s),n=-1}if(0===e){if(e=10,48===o){if(++s===i)return r.__zero();if(o=t.charCodeAt(s),88===o||120===o){if(e=16,++s===i)return null;o=t.charCodeAt(s)}else if(79===o||111===o){if(e=8,++s===i)return null;o=t.charCodeAt(s)}else if(66===o||98===o){if(e=2,++s===i)return null;o=t.charCodeAt(s)}}}else if(16===e&&48===o){if(++s===i)return r.__zero();if(o=t.charCodeAt(s),88===o||120===o){if(++s===i)return null;o=t.charCodeAt(s)}}if(0!=n&&10!==e)return null;for(;48===o;){if(++s===i)return r.__zero();o=t.charCodeAt(s)}var a=i-s;let l=r.__kMaxBitsPerChar[e];var u=r.__kBitsPerCharTableMultiplier-1;if(a>1073741824/l)return null;a=new r(0|(29+(l*a+u>>>r.__kBitsPerCharTableShift))/30,!1);const c=10>e?e:10,p=10>>0>>0>>r.__kBitsPerCharTableShift)/30)}while(!h)}else{l>>=r.__kBitsPerCharTableShift,e=[];var h=[],_=!1;do{for(var d=0,f=0;;){if(o-48>>>0>>0>>l-r)}if(0!==s){if(i>=t.length)throw Error("implementation bug");t.__setDigit(i++,s)}for(;i>>1)+(85&i))>>>2)+(51&i))>>>4)+(15&i),--e;const s=t.__digit(n-1);var o=r.__clz30(s),a=0|(30*n-o+i-1)/i;if(t.sign&&a++,268435456>>(u=i-u),u=30-u;u>=i;)o[a--]=r.__kConversionChars[l&e],l>>>=i,u-=i}for(o[a--]=r.__kConversionChars[(l|s<>>i-u;0!==l;)o[a--]=r.__kConversionChars[l&e],l>>>=i;if(t.sign&&(o[a--]="-"),-1!=a)throw Error("implementation bug");return o.join("")}static __toStringGeneric(t,e,n){var i=t.length;if(0===i)return"";if(1===i)return e=t.__unsignedDigit(0).toString(e),!1===n&&t.sign&&(e="-"+e),e;var s=30*i-r.__clz30(t.__digit(i-1));i=r.__kMaxBitsPerChar[e]-1,i=1+(0|((s*=r.__kBitsPerCharTableMultiplier)+(i-1))/i)>>1;var o=(s=r.exponentiate(r.__oneDigit(e,!1),r.__oneDigit(i,!1))).__unsignedDigit(0);if(1===s.length&&32767>=o){(s=new r(t.length,!1)).__initializeDigits();var a=0;for(let e=2*t.length-1;0<=e;e--)a=a<<15|t.__halfDigit(e),s.__setHalfDigit(e,0|a/o),a=0|a%o;o=a.toString(e)}else s=(o=r.__absoluteDivLarge(t,s,!0,!0)).quotient,o=o.remainder.__trim(),o=r.__toStringGeneric(o,e,!0);for(s.__trim(),e=r.__toStringGeneric(s,e,!0);o.lengtht?r.__absoluteLess(n):0}static __compareToNumber(t,e){if(r.__isOneDigitInt(e)){const i=t.sign,s=0>e;if(i!==s)return r.__unequalSign(i);if(0===t.length){if(s)throw Error("implementation bug");return 0===e?0:-1}return 1e?r.__absoluteGreater(i):te)return r.__unequalSign(n);if(0===e)throw Error("implementation bug: should be handled elsewhere");if(0===t.length)return-1;if(r.__kBitConversionDouble[0]=e,2047==(e=2047&r.__kBitConversionInts[1]>>>20))throw Error("implementation bug: handled elsewhere");var i=e-1023;if(0>i)return r.__absoluteGreater(n);e=t.length;var s=t.__digit(e-1),o=r.__clz30(s),a=30*e-o;if(a<(i+=1))return r.__absoluteLess(n);if(a>i)return r.__absoluteGreater(n);i=1048576|1048575&r.__kBitConversionInts[1];let l=r.__kBitConversionInts[0];if((o=29-o)!=(0|(a-1)%30))throw Error("implementation bug");if(20>o){var u=20-o;o=u+32,a=i>>>u,i=i<<32-u|l>>>u,l<<=32-u}else 20===o?(o=32,a=i,i=l):(o=32-(u=o-20),a=i<>>32-u,i=l<>>=0)>(a>>>=0))return r.__absoluteGreater(n);if(s>>2,i=i<<30|l>>>2,l<<=30):a=0,(s=t.__unsignedDigit(e))>a)return r.__absoluteGreater(n);if(se&&t.__unsignedDigit(0)===n(e):0===r.__compareToDouble(t,e)}static __comparisonResultToBool(t,e){return 0===e?0>t:1===e?0>=t:2===e?0e;case 3:return t>=e}if(r.__isBigInt(t)&&"string"==typeof e)return null!==(e=r.__fromString(e))&&r.__comparisonResultToBool(r.__compareToBigInt(t,e),n);if("string"==typeof t&&r.__isBigInt(e))return null!==(t=r.__fromString(t))&&r.__comparisonResultToBool(r.__compareToBigInt(t,e),n);if(t=r.__toNumeric(t),e=r.__toNumeric(e),r.__isBigInt(t)){if(r.__isBigInt(e))return r.__comparisonResultToBool(r.__compareToBigInt(t,e),n);if("number"!=typeof e)throw Error("implementation bug");return r.__comparisonResultToBool(r.__compareToNumber(t,e),n)}if("number"!=typeof t)throw Error("implementation bug");if(r.__isBigInt(e))return r.__comparisonResultToBool(r.__compareToNumber(e,t),2^n);if("number"!=typeof e)throw Error("implementation bug");return 0===n?te:3===n?t>=e:void 0}__clzmsd(){return r.__clz30(this.__digit(this.length-1))}static __absoluteAdd(t,e,n){if(t.length>>30,n.__setDigit(s,1073741823&r)}for(;s>>30,n.__setDigit(s,1073741823&e);return s>>30,n.__setDigit(s,1073741823&r)}for(;s>>30,n.__setDigit(s,1073741823&e);return n.__trim()}static __absoluteAddOne(t,e,n){n=void 0===n?null:n;const i=t.length;null===n?n=new r(i,e):n.sign=e,e=1;for(let s=0;s>>30,n.__setDigit(s,1073741823&i)}return 0!=e&&n.__setDigitGrow(i,1),n}static __absoluteSubOne(t,e){const n=t.length,i=new r(e=e||n,!1);let s=1;for(let e=0;e>>30,i.__setDigit(e,1073741823&n)}if(0!=s)throw Error("implementation bug");for(t=n;tn?0:t.__unsignedDigit(n)>e.__unsignedDigit(n)?1:-1}static __multiplyAccumulate(t,e,n,i){if(0!==e){var s=32767&e,o=e>>>15,a=e=0;for(let p,h=0;h>>15;l=r.__imul(u,s),u=r.__imul(u,o);const _=r.__imul(c,s);p+=a+l+e,e=p>>>30,p&=1073741823,p+=((32767&u)<<15)+((32767&_)<<15),e+=p>>>30,a=(c=r.__imul(c,o))+(u>>>15)+(_>>>15),n.__setDigit(i,1073741823&p)}for(;0!=e||0!==a;i++)t=n.__digit(i),t+=e+a,a=0,e=t>>>30,n.__setDigit(i,1073741823&t)}}static __internalMultiplyAdd(t,e,n,i,s){let o=0;for(let u=0;u>>15,e)))<<15)+o+n)>>>30,o=a>>>15,s.__setDigit(u,1073741823&l)}if(s.length>i)for(s.__setDigit(i++,n+o);ithis.length&&(n=this.length);const i=32767&t;t>>>=15;let s=0;for(let u=0;u>>15;o=r.__imul(a,i),a=r.__imul(a,t);const n=r.__imul(l,i);s=(o=e+o+s)>>>30,o&=1073741823,s+=(o+=((32767&a)<<15)+((32767&n)<<15))>>>30,e=(l=r.__imul(l,t))+(a>>>15)+(n>>>15),this.__setDigit(u,1073741823&o)}if(0!=s||0!==e)throw Error("implementation bug")}static __absoluteDivSmall(t,e,n){null===(n=void 0===n?null:n)&&(n=new r(t.length,!1));let i=0;for(let s,r=2*t.length-1;0<=r;r-=2){s=(i<<15|t.__halfDigit(r))>>>0;const o=0|s/e;i=0|s%e,s=(i<<15|t.__halfDigit(r-1))>>>0;const a=0|s/e;i=0|s%e,n.__setDigit(r>>>1,o<<15|a)}return n}static __absoluteModSmall(t,e){let n=0;for(let i=2*t.length-1;0<=i;i--)n=0|((n<<15|t.__halfDigit(i))>>>0)%e;return n}static __absoluteDivLarge(t,e,n,i){const s=e.__halfDigitLength(),o=e.length;var a=t.__halfDigitLength()-s;let l=null;n&&(l=new r(a+2>>>1,!1),l.__initializeDigits());const u=new r(s+2>>>1,!1);u.__initializeDigits();const c=r.__clz15(e.__halfDigit(s-1));0>>0)/p,a=0|a%p;const n=e.__halfDigit(s-2),o=t.__halfDigit(c+s-2);for(;r.__imul(i,n)>>>0>(a<<16|o)>>>0&&(i--,!(32767<(a+=p))););}r.__internalMultiplyAdd(e,i,0,o,u),0!==(a=t.__inplaceSub(u,c,s+1))&&(a=t.__inplaceAdd(e,c,s),t.__setHalfDigit(c+s,32767&t.__halfDigit(c+s)+a),i--),n&&(1&c?h=i<<15:l.__setDigit(c>>>1,h|i))}if(i)return t.__inplaceRightShift(c),n?{quotient:l,remainder:t}:t;if(n)return l;throw Error("unreachable")}static __clz15(t){return r.__clz30(t)-15}__inplaceAdd(t,e,n){let i=0;for(let s=0;s>>15,this.__setHalfDigit(e+s,32767&n)}return i}__inplaceSub(t,e,n){let i=0;if(1&e){e>>=1;for(var s=this.__digit(e),r=32767&s,o=0;o>>1;o++){var a=t.__digit(o);i=1&(s=(s>>>15)-(32767&a)-i)>>>15,this.__setDigit(e+o,(32767&s)<<15|32767&r),i=1&(r=(32767&(s=this.__digit(e+o+1)))-(a>>>15)-i)>>>15}const l=(s>>>15)-(32767&(a=t.__digit(o)))-i;if(i=1&l>>>15,this.__setDigit(e+o,(32767&l)<<15|32767&r),e+o+1>=this.length)throw new RangeError("out of bounds");!(1&n)&&(i=1&(r=(32767&(s=this.__digit(e+o+1)))-(a>>>15)-i)>>>15,this.__setDigit(e+t.length,1073709056&s|32767&r))}else{for(e>>=1,r=0;r>>15,i=1&(s=(s>>>15)-(a>>>15)-i)>>>15,this.__setDigit(e+r,(32767&s)<<15|32767&o);i=1&(s=(32767&(o=this.__digit(e+r)))-(32767&(t=t.__digit(r)))-i)>>>15,a=0,!(1&n)&&(i=1&(a=(o>>>15)-(t>>>15)-i)>>>15),this.__setDigit(e+r,(32767&a)<<15|32767&s)}return i}__inplaceRightShift(t){if(0!==t){var e=this.__digit(0)>>>t,n=this.length-1;for(let i=0;i>>t}this.__setDigit(n,e)}}static __specialLeftShift(t,e,n){const i=t.length,s=new r(i+n,!1);if(0===e){for(e=0;e>>30-e}return 0n)throw new RangeError("BigInt too big");e=0|n/30;var i=n%30;const s=t.length,o=0!==i&&0!=t.__digit(s-1)>>>30-i;var a=s+e+(o?1:0);if(n=new r(a,t.sign),0===i){for(i=0;i>>30-i}if(o)n.__setDigit(s+e,a);else if(0!==a)throw Error("implementation bug")}return n.__trim()}static __rightShiftByAbsolute(t,e){var n=t.length,i=t.sign,s=r.__toShiftAmount(e);if(0>s)return r.__rightShiftByMaximum(i);var o=s%30,a=n-(e=0|s/30);if(0>=a)return r.__rightShiftByMaximum(i);if(s=!1,i)if(t.__digit(e)&(1<>>o,n=n-e-1,l=0;l>>o}i.__setDigit(n,a)}return s&&(i=r.__absoluteAddOne(i,!0,i)),i.__trim()}static __rightShiftByMaximum(t){return t?r.__oneDigit(1,!0):r.__zero()}static __toShiftAmount(t){return 1r.__kMaxLengthBits?-1:t}static __toPrimitive(t,e){if(e=void 0===e?"default":e,"object"!=typeof t||t.constructor===r)return t;if("undefined"!=typeof Symbol&&"symbol"==typeof Symbol.toPrimitive){const n=t[Symbol.toPrimitive];if(n){if("object"!=typeof(t=n(e)))return t;throw new TypeError("Cannot convert object to primitive value")}}if((e=t.valueOf)&&"object"!=typeof(e=e.call(t)))return e;if((e=t.toString)&&"object"!=typeof(t=e.call(t)))return t;throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(t){return r.__isBigInt(t)?t:+t}static __isBigInt(t){return"object"==typeof t&&null!==t&&t.constructor===r}static __truncateToNBits(t,e){var n=0|(t+29)/30;const i=new r(n,e.sign);--n;for(let t=0;t>>t),i.__setDigit(n,e),i.__trim()}static __truncateAndSubFromPowerOfTwo(t,e,n){var i=Math.min,s=0|(t+29)/30;n=new r(s,n);let o=0;var a=0;for(i=i(--s,e.length);o>>30,n.__setDigit(o,1073741823&t)}for(;o>>t,a=(t=1<<32-t)-e-a,a&=t-1),n.__setDigit(s,a),n.__trim()}__digit(t){return this[t]}__unsignedDigit(t){return this[t]>>>0}__setDigit(t,e){this[t]=0|e}__setDigitGrow(t,e){this[t]=0|e}__halfDigitLength(){const t=this.length;return 32767>=this.__unsignedDigit(t-1)?2*t-1:2*t}__halfDigit(t){return 32767&this[t>>>1]>>>15*(1&t)}__setHalfDigit(t,e){const n=t>>>1,i=this.__digit(n);this.__setDigit(n,1&t?32767&i|e<<15:1073709056&i|32767&e)}static __digitPow(t,e){let n=1;for(;0>>=1,t*=t;return n}static __isOneDigitInt(t){return(1073741823&t)===t}}return r.__kMaxLength=33554432,r.__kMaxLengthBits=r.__kMaxLength<<5,r.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],r.__kBitsPerCharTableShift=5,r.__kBitsPerCharTableMultiplier=1<>>0)/e)},r.__imul=t||function(t,e){return 0|t*e},r}()},function(t,e){[..."abc"].flat(),"a".matchAll(/a/g)},function(t,e,n){(function(t,e){!function(t){function n(t){delete o[t]}function i(t){if(a)setTimeout(i,0,t);else{var e=o[t];if(e){a=!0;try{var s=e.callback,r=e.args;switch(r.length){case 0:s();break;case 1:s(r[0]);break;case 2:s(r[0],r[1]);break;case 3:s(r[0],r[1],r[2]);break;default:s.apply(undefined,r)}}finally{n(t),a=!1}}}}if(!t.setImmediate){var s,r=1,o={},a=!1,l=t.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(t);u=u&&u.setTimeout?u:t,"[object process]"==={}.toString.call(t.process)?s=function(t){e.nextTick((function(){i(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?(c="setImmediate$"+Math.random()+"$",p=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(c)&&i(+e.data.slice(c.length))},t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),s=function(e){t.postMessage(c+e,"*")}):t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){i(t.data)},s=function(e){t.port2.postMessage(e)}}():l&&"onreadystatechange"in l.createElement("script")?function(){var t=l.documentElement;s=function(e){var n=l.createElement("script");n.onreadystatechange=function(){i(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():s=function(t){setTimeout(i,0,t)},u.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=Array(arguments.length-1),n=0;n the object's type\ntype(name, bases, dict) -> a new type",tp$call:function(t,e){if(this===Sk.builtin.type){if(1===t.length&&(void 0===e||!e.length))return t[0].ob$type;if(3!==t.length)throw new Sk.builtin.TypeError("type() takes 1 or 3 arguments")}let n=this.prototype.tp$new(t,e);if(n.$isSuspension)return Sk.misceval.chain(n,(i=>{if(n=i,n.ob$type.$isSubType(this))return n.tp$init(t,e)}),(()=>n));if(n.ob$type.$isSubType(this)){const i=n.tp$init(t,e);return void 0!==i&&i.$isSuspension?Sk.misceval.chain(i,(()=>n)):n}return n},tp$new:function(t,e){if(3!==t.length){if(1===t.length&&(void 0===e||!e.length))return t[0].ob$type;throw new Sk.builtin.TypeError("type() takes 1 or 3 arguments")}const i=t[0];var s=t[1];const o=t[2];if("dict"!==o.tp$name)throw new Sk.builtin.TypeError("type() argument 3 must be dict, not "+Sk.abstr.typeName(o));if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("type() argument 1 must be str, not "+Sk.abstr.typeName(i));const a=i.$jsstr();if("tuple"!==s.tp$name)throw new Sk.builtin.TypeError("type() argument 2 must be tuple, not "+Sk.abstr.typeName(s));r(a,t=function(){this.sk$hasDict&&(this.$d=new Sk.builtin.dict),this.$s=[]},s=s.sk$asarray(),this.constructor);const u=t.prototype;Sk.globals&&(u.__module__=Sk.globals.__name__),u.__doc__=Sk.builtin.none.none$;let c,p=void 0===(s=o.quick$lookup(Sk.builtin.str.$slots)),h=void 0!==t.$typeLookup(Sk.builtin.str.$dict);if(void 0!==s&&(c=new Set,(s=Sk.builtin.checkString(s)?[s]:Sk.misceval.arrayFromIterable(s)).forEach((t=>{if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__slots__ items must be strings, not '"+Sk.abstr.typeName(t)+"'");if(!t.$isIdentifier())throw new Sk.builtin.TypeError("__slots__ must be identifiers");if(t===Sk.builtin.str.$dict){if(h)throw new Sk.builtin.TypeError("__dict__ slot disallowed: we already got one");p=!0}else c.add(Sk.mangleName(i,t))})),function(t,e){const n=e.prototype,i=n.sk$nslots||0;Object.defineProperty(n,"sk$nslots",{value:i+t.length,writable:!0}),t.length&&Object.defineProperty(e,"sk$solidSlotBase",{value:!0,writable:!0}),t.forEach(((t,s)=>{s+=i,n[t.$mangled]=new Sk.builtin.getset_descriptor(e,{$get(){const e=this.$s[s];if(void 0===e)throw new Sk.builtin.AttributeError(t);return e},$set(t){this.$s[s]=t}})}))}(s=[...c].sort(((t,e)=>t.toString().localeCompare(e.toString()))),t)),p&&!h&&(u.__dict__=new Sk.builtin.getset_descriptor(t,l),h=!0),Object.defineProperties(u,{ht$slots:{value:s||null,writable:!0},sk$hasDict:{value:h,writable:!0}}),o.$items().forEach((t=>{var[e,n]=t;if(c&&c.has(e))throw new Sk.builtin.ValueError("'"+e.toString()+"' in __slots__ conflicts with class variable");u[e.$mangled]=n})),u.hasOwnProperty("__qualname__")){if(s=u.__qualname__,!Sk.builtin.checkString(s))throw new Sk.builtin.TypeError("type __qualname__ must be a str, not '"+Sk.abstr.typeName(s)+"'");u.ht$qualname=s}return n(s=t.prototype,"__init_subclass__","classmethod"),n(s,"__new__","staticmethod"),n(s,"__class_getitem__","classmethod"),t.$allocateSlots(),function(t){const e=t.prototype;Object.keys(e).forEach((n=>{const i=Sk.abstr.lookupSpecial(e[n],Sk.builtin.str.$setname);if(void 0!==i)try{Sk.misceval.callsimArray(i,[t,new Sk.builtin.str(n)])}catch(i){throw(n=new Sk.builtin.RuntimeError("Error calling __set_name__ on '"+Sk.abstr.typeName(e[n])+"' instance '"+n+"' in '"+t.prototype.tp$name+"'")).$cause=i,n}}))}(t),function(t,e){t=new Sk.builtin.super_(t,t).tp$getattr(Sk.builtin.str.$initsubclass),Sk.misceval.callsimArray(t,[],e)}(t,e),t},tp$init:function(t,e){if(t&&1==t.length&&e&&e.length)throw new Sk.builtin.TypeError("type.__init__() takes no keyword arguments");if(3!=t.length&&1!=t.length)throw new Sk.builtin.TypeError("type.__init__() takes 1 or 3 arguments");return Sk.builtin.object.prototype.tp$init.call(this,[])},tp$getattr:function(t,e){var n=this.ob$type;const i=n.$typeLookup(t);let s;return void 0!==i&&(s=i.tp$descr_get,void 0!==s&&void 0!==i.tp$descr_set)?s.call(i,this,n,e):void 0!==(t=this.$typeLookup(t))?void 0!==(n=t.tp$descr_get)?e=n.call(t,null,this,e):t:void 0!==s?s.call(i,this,n,e):void 0!==i?i:void 0},tp$setattr:function(t,e,n){if(!this.sk$klass){if(void 0!==e)throw new Sk.builtin.TypeError("can't set attributes of built-in/extension type '"+this.prototype.tp$name+"'");throw new Sk.builtin.TypeError("can't delete attributes on type object '"+this.prototype.tp$name+"'")}const i=this.ob$type.$typeLookup(t);if(void 0!==i){const t=i.tp$descr_set;if(t)return t.call(i,this,e,n)}if(n=t.$mangled,void 0===e){if(!(e=this.prototype).hasOwnProperty(n))throw new Sk.builtin.AttributeError("type object '"+this.prototype.tp$name+"' has no attribute '"+t.$jsstr()+"'");delete e[n],void 0!==(t=Sk.dunderToSkulpt[n])&&(delete this.prototype[t],e.sk$prototypical||this.$allocateGetterSlot(n))}else this.prototype[n]=e,n in Sk.dunderToSkulpt&&this.$allocateSlot(n,e)},$r:function(){let t=this.prototype.__module__,e="",n="class";return t&&Sk.builtin.checkString(t)?e=t.v+".":t=null,t||this.sk$klass||Sk.__future__.class_repr||(n="type"),new Sk.builtin.str("<"+n+" '"+e+this.prototype.tp$name+"'>")}},writable:!0},tp$methods:{value:null,writable:!0},tp$classmethods:{value:null,writable:!0},tp$getsets:{value:null,writable:!0},sk$type:{value:!0},$isSubType:{value:function(t){return this===t||this.prototype instanceof t||!this.prototype.sk$prototypical&&this.prototype.tp$mro.includes(t)}},$allocateSlot:{value:function(t,e){const n=(t=Sk.slots[t]).$slot_name,i=this.prototype;i.hasOwnProperty(n)&&delete i[n],Object.defineProperty(i,n,{value:t.$slot_func(e),writable:!0,configurable:!0})}},$allocateSlots:{value:function(){const t=this.prototype;this.prototype.sk$prototypical?Object.keys(t).forEach((e=>{e in Sk.slots&&this.$allocateSlot(e,t[e])})):Object.keys(Sk.slots).forEach((e=>{t.hasOwnProperty(e)?this.$allocateSlot(e,t[e]):this.$allocateGetterSlot(e)})),t.hasOwnProperty("__eq__")&&!t.hasOwnProperty("__hash__")&&(t.tp$hash=t.__hash__=Sk.builtin.none.none$)}},$allocateGetterSlot:{value:function(t){const e=Sk.slots[t].$slot_name,n=this.prototype;n.hasOwnProperty(e)||Object.defineProperty(n,e,{configurable:!0,get(){const t=n.tp$mro;for(let n=1;nnew Sk.builtin.dict([]),$flags:{FastCall:!0}}};const l={$get(){const t=o(this.ob$type);return void 0!==t?t.tp$descr_get(this,this.ob$type):Sk.generic.getSetDict.$get.call(this)},$set(t){const e=o(this.ob$type);return void 0!==e?e.tp$descr_set(this,t):void 0!==t?Sk.generic.getSetDict.$set.call(this,t):void(this.$d=new Sk.builtin.dict([]))},$doc:"dictionary for instance variables (if defined)",$name:"__dict__"}},function(t,e){Sk.generic={},Sk.generic.getAttr=function(t,e){let n;const i=this.ob$type,s=i.$typeLookup(t);if(void 0!==s&&(n=s.tp$descr_get,void 0!==n&&void 0!==s.tp$descr_set))return n.call(s,this,i,e);const r=this.$d;return void 0!==r&&void 0!==(t=r.quick$lookup(t))?t:void 0!==n?n.call(s,this,i,e):void 0!==s?s:void 0},Sk.exportSymbol("Sk.generic.getAttr",Sk.generic.getAttr),Sk.generic.setAttr=function(t,e,n){var i=this.ob$type.$typeLookup(t);if(null!=i){const t=i.tp$descr_set;if(t)return t.call(i,this,e,n)}if(void 0!==(n=this.$d))if(n.mp$ass_subscript){if(void 0!==e)return n.mp$ass_subscript(t,e);try{return n.mp$ass_subscript(t)}catch(e){if(e instanceof Sk.builtin.KeyError)throw new Sk.builtin.AttributeError("'"+Sk.abstr.typeName(this)+"' object has no attribute '"+t.$jsstr()+"'");throw e}}else if("object"==typeof n){if(i=t.$mangled,void 0!==e)return void(n[i]=e);if(void 0!==n[i])return void delete n[i]}throw new Sk.builtin.AttributeError(this.sk$attrError()+" has no attribute '"+t.$jsstr()+"'")},Sk.exportSymbol("Sk.generic.setAttr",Sk.generic.setAttr),Sk.generic.new=function(t){return function(e,n){return this.constructor===t?new this.constructor:(e=new this.constructor,t.call(e),e)}},Sk.generic.newMethodDef={$meth(t,e){const n=this.prototype;if(1>t.length)throw t=n.tp$name,new Sk.builtin.TypeError(t+".__new__(): not enough arguments");var i=t.shift();if(void 0===i.sk$type)throw t=n.tp$name,new Sk.builtin.TypeError(t+"__new__(X): X is not a type object ("+Sk.abstr.typeName(i)+")");if(!i.$isSubType(this))throw t=n.tp$name,i=i.prototype.tp$name,new Sk.builtin.TypeError(t+".__new__("+i+"): "+i+" is not a subtype of "+t);const s=i.prototype.sk$staticNew.prototype;if(s.tp$new!==n.tp$new)throw t=n.tp$name,i=i.prototype.tp$name,new Sk.builtin.TypeError(t+".__new__("+i+") is not safe, use "+s.tp$name+".__new__()");return n.tp$new.call(i.prototype,t,e)},$flags:{FastCall:!0},$textsig:"($type, *args, **kwargs)",$name:"__new__"},Sk.generic.selfIter=function(){return this},Sk.generic.iterNextWithArrayCheckSize=function(){if(this.$seq.length!==this.$orig.get$size()){const t=this.tp$name.split("_")[0];throw new Sk.builtin.RuntimeError(t+" changed size during iteration")}if(!(this.$index>=this.$seq.length))return this.$seq[this.$index++]},Sk.generic.iterNextWithArray=function(){const t=this.$seq[this.$index++];return void 0===t&&(this.tp$iternext=()=>{}),t},Sk.generic.iterLengthHintWithArrayMethodDef={$meth:function(){return new Sk.builtin.int_(this.$seq.length-this.$index)},$flags:{NoArgs:!0}},Sk.generic.iterReverseLengthHintMethodDef={$meth:function(){return new Sk.builtin.int_(this.$index)},$flags:{NoArgs:!0}},Sk.generic.getSetDict={$get(){return this.$d},$set(t){if(void 0===t)throw new Sk.builtin.TypeError("cannot delete __dict__");if(!(t instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError("__dict__ must be set to a dictionary, not a '"+Sk.abstr.typeName(t)+"'");this.$d=t},$doc:"dictionary for instance variables (if defined)",$name:"__dict__"},Sk.generic.seqCompare=function(t,e){if(this===t&&Sk.misceval.opAllowsEquality(e))return!0;if(!(t instanceof this.sk$builtinBase))return Sk.builtin.NotImplemented.NotImplemented$;const n=this.v;let i;if(t=t.v,n.length!==t.length&&("Eq"===e||"NotEq"===e))return"Eq"!==e;for(i=0;i=s||i>=r)switch(e){case"Lt":return sr;case"GtE":return s>=r;default:Sk.asserts.fail()}return"Eq"!==e&&("NotEq"===e||Sk.misceval.richCompareBool(n[i],t[i],e))},Sk.generic.classGetItem={__class_getitem__:{$meth(t){return new Sk.builtin.GenericAlias(this,t)},$flags:{OneArg:!0}}}},function(t,e){Sk.builtin.pyCheckArgs=function(t,e,n,i,s,r){if(e=e.length,void 0===i&&(i=1/0),s&&--e,r&&--e,ei)throw new Sk.builtin.TypeError((n===i?t+"() takes exactly "+n+" arguments":ei)throw new Sk.builtin.TypeError((n===i?t+"() takes exactly "+n+" arguments":e"};const r={Add:"+",Sub:"-",Mult:"*",MatMult:"@",Div:"/",FloorDiv:"//",Mod:"%",DivMod:"divmod()",Pow:"** or pow()",LShift:"<<",RShift:">>",BitAnd:"&",BitXor:"^",BitOr:"|"},o={UAdd:"+",USub:"-",Invert:"~"};Sk.abstr.numberBinOp=function(t,e,n){var s;if(!(s=i(t,e,n)))throw t=Sk.abstr.typeName(t),e=Sk.abstr.typeName(e),new Sk.builtin.TypeError("unsupported operand type(s) for "+r[n]+": '"+t+"' and '"+e+"'");return s},Sk.exportSymbol("Sk.abstr.numberBinOp",Sk.abstr.numberBinOp),Sk.abstr.numberInplaceBinOp=function(t,e,n){var i;if(!(i=s(t,e,n)))throw t=Sk.abstr.typeName(t),e=Sk.abstr.typeName(e),new Sk.builtin.TypeError("unsupported operand type(s) for "+r[n]+"=: '"+t+"' and '"+e+"'");return i},Sk.exportSymbol("Sk.abstr.numberInplaceBinOp",Sk.abstr.numberInplaceBinOp),Sk.abstr.numberUnaryOp=function(t,e){if("Not"===e)return Sk.misceval.isTrue(t)?Sk.builtin.bool.false$:Sk.builtin.bool.true$;t:{switch(e){case"USub":var n=t.nb$negative;break t;case"UAdd":n=t.nb$positive;break t;case"Invert":n=t.nb$invert;break t}n=void 0}if(!(n=void 0!==n?n.call(t):void 0))throw t=Sk.abstr.typeName(t),new Sk.builtin.TypeError("bad operand type for unary "+o[e]+": '"+t+"'");return n},Sk.exportSymbol("Sk.abstr.numberUnaryOp",Sk.abstr.numberUnaryOp),Sk.abstr.fixSeqIndex_=function(t,e){return 0>(e=Sk.builtin.asnum$(e))&&t.sq$length&&(e+=t.sq$length()),e},Sk.abstr.sequenceContains=function(t,e,n){return t.sq$contains?t.sq$contains(e,n):(t=Sk.misceval.iterFor(Sk.abstr.iter(t),(function(t){return!(t!==e&&!Sk.misceval.richCompareBool(t,e,"Eq"))&&new Sk.misceval.Break(!0)}),!1),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t))},Sk.abstr.sequenceConcat=function(t,e){if(t.sq$concat)return t.sq$concat(e);if(Sk.builtin.checkSequence(t)&&Sk.builtin.checkSequence(e)&&void 0!==(e=i(t,e,"Add")))return e;throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object can't be concatenated")},Sk.abstr.sequenceInPlaceConcat=function(t,e){if(t.sq$inplace_concat)return t.sq$inplace_concat(e);if(t.sq$concat)return t.sq$concat(e);if(Sk.builtin.checkSequence(t)&&Sk.builtin.checkSequence(e)&&void 0!==(e=s(t,e,"Add")))return e;throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object can't be concatenated")},Sk.abstr.sequenceGetIndexOf=function(t,e){if(t.index)return Sk.misceval.callsimArray(t.index,[t,e]);let n=0;for(let i=Sk.abstr.iter(t),s=i.tp$iternext();void 0!==s;s=i.tp$iternext()){if(Sk.misceval.richCompareBool(e,s,"Eq"))return new Sk.builtin.int_(n);n+=1}throw new Sk.builtin.ValueError("sequence.index(x): x not in sequence")},Sk.abstr.sequenceGetCountOf=function(t,e){if(t.count)return Sk.misceval.callsimArray(t.count,[t,e]);let n=0;for(let i=Sk.abstr.iter(t),s=i.tp$iternext();void 0!==s;s=i.tp$iternext())Sk.misceval.richCompareBool(e,s,"Eq")&&(n+=1);return new Sk.builtin.int_(n)},Sk.abstr.sequenceGetItem=function(t,e,n){return"number"==typeof e&&(e=new Sk.builtin.int_(e)),Sk.abstr.objectGetItem(t,e,n)},Sk.abstr.sequenceSetItem=function(t,e,n,i){return"number"==typeof e&&(e=new Sk.builtin.int_(e)),Sk.abstr.objectSetItem(t,e,n,i)},Sk.abstr.sequenceDelItem=function(t,e,n){return Sk.abstr.objectDelItem(t,e,n)},Sk.abstr.sequenceGetSlice=function(t,e,n){return Sk.abstr.objectGetItem(t,new Sk.builtin.slice(e,n))},Sk.abstr.sequenceDelSlice=function(t,e,n){return Sk.abstr.objectDelItem(t,new Sk.builtin.slice(e,n))},Sk.abstr.sequenceSetSlice=function(t,e,n,i){return Sk.abstr.objectSetItem(t,new Sk.builtin.slice(e,n))},Sk.abstr.sequenceUnpack=function(t,e,n,i){if(!Sk.builtin.checkIterable(t))throw new Sk.builtin.TypeError("cannot unpack non-iterable "+Sk.abstr.typeName(t)+" object");const s=Sk.abstr.iter(t),r=[];let o,a=0;return 0{if(r.push(t),++a===e)return new Sk.misceval.Break}))),Sk.misceval.chain(o,(()=>{if(r.length{if(void 0!==t)throw new Sk.builtin.ValueError("too many values to unpack (expected "+e+")");return r}));const t=[];return Sk.misceval.chain(Sk.misceval.iterFor(s,(e=>{t.push(e)})),(()=>{const i=t.length+e-n;if(0>i)throw new Sk.builtin.ValueError("not enough values to unpack (expected at least "+n+", got "+(n+i)+")");return r.push(new Sk.builtin.list(t.slice(0,i))),r.push(...t.slice(i)),r}))}))},Sk.abstr.mappingUnpackIntoKeywordArray=function(t,e,n){if(!(e instanceof Sk.builtin.dict)){var i=Sk.abstr.lookupSpecial(e,Sk.builtin.str.$keys);if(void 0===i)throw new Sk.builtin.TypeError("Object is not a mapping");return Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(i),(i=>Sk.misceval.iterFor(Sk.abstr.iter(i),(i=>{if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError((n.$qualname?n.$qualname+"() ":"")+"keywords must be strings");return Sk.misceval.chain(e.mp$subscript(i,!0),(e=>{t.push(i.v),t.push(e)}))}))))}e.$items().forEach((e=>{var[i,s]=e;if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError((n.$qualname?n.$qualname+"() ":"")+"keywords must be strings");t.push(i.v),t.push(s)}))},Sk.abstr.keywordArrayFromPyDict=function(t){const e=[];return t.$items().forEach((t=>{var[n,i]=t;if(!Sk.builtin.checkString(n))throw new Sk.builtin.TypeError("keywords must be strings");e.push(n.toString()),e.push(i)})),e},Sk.abstr.keywordArrayToPyDict=function(t){const e=new Sk.builtin.dict;for(let n=0;ne.length)throw new Sk.builtin.TypeError(t+"() expected at most "+e.length+" arguments ("+r+" given)");if(!i.length&&void 0===s)return n;if(r===e.length&&!i.length)return n;if(0===r&&e.length===(s&&s.length))return s;for(n=n.slice(0),r=0;rvoid 0===n[e]))).length)throw new Sk.builtin.TypeError(t+"() missing "+e.length+" required positional arguments: "+e.join(", "))}return n},Sk.exportSymbol("Sk.abstr.copyKeywordsToNamedArgs",Sk.abstr.copyKeywordsToNamedArgs),Sk.abstr.checkNoKwargs=function(t,e){if(e&&e.length)throw new Sk.builtin.TypeError(t+"() takes no keyword arguments")},Sk.exportSymbol("Sk.abstr.checkNoKwargs",Sk.abstr.checkNoKwargs),Sk.abstr.checkNoArgs=function(t,e,n){if(e=e.length+(n?n.length:0))throw new Sk.builtin.TypeError(t+"() takes no arguments ("+e+" given)")},Sk.exportSymbol("Sk.abstr.checkNoArgs",Sk.abstr.checkNoArgs),Sk.abstr.checkOneArg=function(t,e,n){if(Sk.abstr.checkNoKwargs(t,n),1!==e.length)throw new Sk.builtin.TypeError(t+"() takes exactly one argument ("+e.length+" given)")},Sk.exportSymbol("Sk.abstr.checkOneArg",Sk.abstr.checkOneArg),Sk.abstr.checkArgsLen=function(t,e,n,i){if(void 0===i&&(i=1/0),(e=e.length)i)throw new Sk.builtin.TypeError((n===i?t+"() takes exactly "+n+" arguments":eSk.builtin.str&&Sk.builtin.str.$fixReserved?(a=Sk.builtin.str.$fixReserved,Sk.builtin.str.$fixReserved(t)):t;Sk.abstr.setUpGetSets=function(t,e){if(void 0!==Sk.builtin.getset_descriptor){var n=t.prototype;e=e||n.tp$getsets||{},Object.entries(e).forEach((e=>{var[i,s]=e;s.$name=i,n[a(i)]=new Sk.builtin.getset_descriptor(t,s)})),Object.defineProperty(n,"tp$getsets",{value:null,writable:!0})}},Sk.abstr.setUpMethods=function(t,e){if(void 0!==Sk.builtin.method_descriptor){var n=t.prototype;e=e||n.tp$methods||{},Object.entries(e).forEach((e=>{var[i,s]=e;s.$name=i,n[a(i)]=new Sk.builtin.method_descriptor(t,s)})),Object.defineProperty(n,"tp$methods",{value:null,writable:!0})}},Sk.abstr.setUpClassMethods=function(t,e){if(void 0!==Sk.builtin.classmethod_descriptor){var n=t.prototype;e=e||n.tp$classmethods||{},Object.entries(e).forEach((e=>{var[i,s]=e;s.$name=i,n[a(i)]=new Sk.builtin.classmethod_descriptor(t,s)})),Object.defineProperty(n,"tp$classmethods",{value:null,writable:!0})}};const l={Eq:"ob$eq",NotEq:"ob$ne",Gt:"ob$gt",GtE:"ob$ge",Lt:"ob$lt",LtE:"ob$le"},u=Object.entries(l);Sk.abstr.setUpSlots=function(t,e){function n(e,n){s[e]=new Sk.builtin.wrapper_descriptor(t,Sk.slots[e],n)}function i(t,e){"string"==typeof t?n(t,e):t.forEach((t=>{n(t,e)}))}if(void 0!==Sk.builtin.wrapper_descriptor){var s=t.prototype;(e=e||s.tp$slots||{}).tp$new===Sk.generic.new&&(e.tp$new=Sk.generic.new(t)),e.tp$richcompare?function(t){u.forEach((e=>{var[n,i]=e;t[i]=function(t){return this.tp$richcompare(t,n)}}))}(e):e.ob$eq&&(e.tp$richcompare=function(t,e){return this[l[e]].call(this,t)}),e.tp$as_number&&function(t){const e=Sk.reflectedNumberSlots;Object.keys(e).forEach((n=>{if(void 0!==t[n]){const i=e[n],s=i.reflected,r=t[s];void 0!==r?null===r&&delete t[s]:t[s]=i.slot||t[n]}}))}(e),e.tp$as_sequence_or_mapping&&function(t){const e=Sk.sequenceAndMappingSlots;Object.keys(e).forEach((n=>{void 0!==t[n]&&e[n].forEach((e=>{t[e]=t[n]}))}))}(e),Object.entries(e).forEach((t=>{var[e,n]=t;Object.defineProperty(s,e,{value:n,writable:!0})})),e.tp$new&&(s.__new__=new Sk.builtin.sk_method(Sk.generic.newMethodDef,t),Object.defineProperty(s,"sk$staticNew",{value:t,writable:!0})),Sk.subSlots.main_slots.forEach((t=>{var[n,s]=t;void 0!==(t=e[n])&&i(s,t)}));var r=e.tp$hash;void 0!==r&&("function"==typeof r?n("__hash__",r):r===Sk.builtin.none.none$?s.__hash__=r:Sk.asserts.fail("invalid tp$hash")),e.tp$as_number&&Sk.subSlots.number_slots.forEach((t=>{var[n,s]=t;void 0!==(t=e[n])&&i(s,t)})),e.tp$as_sequence_or_mapping&&Sk.subSlots.sequence_and_mapping_slots.forEach((t=>{var[n,s]=t;void 0!==(t=e[n])&&i(s,t)})),Object.defineProperty(s,"tp$slots",{value:null,writable:!0})}},Sk.abstr.buildNativeClass=function(t,e){e=e||{},Sk.asserts.assert(e.hasOwnProperty("constructor"),"A constructor is required to build a native class");let n=e.constructor;Sk.abstr.setUpInheritance(t,n,e.base,e.meta),Sk.abstr.setUpBuiltinMro(n);const i=n.prototype;return Object.defineProperties(i,{tp$slots:{value:e.slots,writable:!0},tp$getsets:{value:e.getsets,writable:!0},tp$methods:{value:e.methods,writable:!0},tp$classmethods:{value:e.classmethods,writable:!0}}),Sk.abstr.setUpSlots(n,e.slots||{}),Sk.abstr.setUpMethods(n,e.methods),Sk.abstr.setUpGetSets(n,e.getsets),Sk.abstr.setUpClassMethods(n,e.classmethods),Object.entries(e.proto||{}).forEach((t=>{var[e,n]=t;Object.defineProperty(i,e,{value:n,writable:!0,enumerable:!(e.includes("$")||e in Object.prototype)})})),Object.entries(e.flags||{}).forEach((t=>{var[e,i]=t;Object.defineProperty(n,e,{value:i,writable:!0})})),i.hasOwnProperty("tp$iter")&&(i[Symbol.iterator]=function(){return this.tp$iter()[Symbol.iterator]()}),void 0!==Sk.builtin.str&&i.hasOwnProperty("tp$doc")&&!i.hasOwnProperty("__doc__")&&(t=i.tp$doc||null,i.__doc__="string"==typeof t?new Sk.builtin.str(t):Sk.builtin.none.none$),n},Sk.abstr.buildIteratorClass=function(t,e){return Sk.asserts.assert(e.hasOwnProperty("constructor"),"must provide a constructor"),e.slots=e.slots||{},e.slots.tp$iter=Sk.generic.selfIter,e.slots.tp$iternext=e.slots.tp$iternext||e.iternext,e.slots.tp$getattr=e.slots.tp$getattr||Sk.generic.getAttr,t=Sk.abstr.buildNativeClass(t,e),Sk.abstr.built$iterators.push(t),t.prototype[Symbol.iterator]=function(){return{next:()=>{const t=this.tp$iternext();return{value:t,done:void 0===t}}}},t},Sk.abstr.built$iterators=[],Sk.abstr.setUpModuleMethods=function(t,e,n){return Object.entries(n).forEach((n=>{var[i,s]=n;s.$name=s.$name||i,e[i]=new Sk.builtin.sk_method(s,null,t)})),e},Sk.abstr.superConstructor=function(t,e,n){var i=Array.prototype.slice.call(arguments,2);t.prototype.tp$base.apply(e,i)}},function(t,e){function n(t){const e=t.prototype,n=e.tp$base;if(null==n)return!1;const i=n.prototype;return!(n.sk$solidSlotBase||t.sk$solidSlotBase||i.sk$hasDict!==e.sk$hasDict||n.sk$solidBase&&n!==Sk.builtin.module)}const i=new WeakMap;Sk.builtin.object=Sk.abstr.buildNativeClass("object",{constructor:function(){Sk.asserts.assert(this instanceof Sk.builtin.object,"bad call to object, use 'new'")},base:null,slots:{tp$new(t,e){if(t.length||e&&e.length){if(this.tp$new!==Sk.builtin.object.prototype.tp$new)throw new Sk.builtin.TypeError("object.__new__() takes exactly one argument (the type to instantiate)");if(this.tp$init===Sk.builtin.object.prototype.tp$init)throw new Sk.builtin.TypeError(Sk.abstr.typeName(this)+"() takes no arguments")}return new this.constructor},tp$init(t,e){if(t.length||e&&e.length){if(this.tp$init!==Sk.builtin.object.prototype.tp$init)throw new Sk.builtin.TypeError("object.__init__() takes exactly one argument (the instance to initialize)");if(this.tp$new===Sk.builtin.object.prototype.tp$new)throw new Sk.builtin.TypeError(Sk.abstr.typeName(this)+".__init__() takes exactly one argument (the instance to initialize)")}},tp$getattr:Sk.generic.getAttr,tp$setattr:Sk.generic.setAttr,$r(){const t=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$module);let e="";return t&&Sk.builtin.checkString(t)&&(e=t.v+"."),new Sk.builtin.str("<"+e+Sk.abstr.typeName(this)+" object>")},tp$str(){return this.$r()},tp$hash(){let t=i.get(this);return void 0!==t||(t=Math.floor(Math.random()*Number.MAX_SAFE_INTEGER-Number.MAX_SAFE_INTEGER/2),i.set(this,t)),t},tp$richcompare(t,e){switch(e){case"Eq":t=this===t||Sk.builtin.NotImplemented.NotImplemented$;break;case"NotEq":(t=this.ob$eq(t,"Eq"))!==Sk.builtin.NotImplemented.NotImplemented$&&(t=!Sk.misceval.isTrue(t));break;default:t=Sk.builtin.NotImplemented.NotImplemented$}return t},tp$doc:"The most base type"},getsets:{__class__:{$get(){return this.ob$type},$set(t){if(void 0===t)throw new Sk.builtin.TypeError("can't delete __class__ attribute");if(!Sk.builtin.checkClass(t))throw new Sk.builtin.TypeError("__class__ must be set to a class, not '"+Sk.abstr.typeName(t)+"' object");const e=this.ob$type;if(!(e.$isSubType(Sk.builtin.module)&&t.$isSubType(Sk.builtin.module)||void 0!==e.prototype.ht$type&&void 0!==t.prototype.ht$type))throw new Sk.builtin.TypeError(" __class__ assignment only supported for heap types or ModuleType subclasses");{let i=e,s=t;for(;n(i);)i=i.prototype.tp$base;for(;n(s);)s=s.prototype.tp$base;if(i!==s&&(i.prototype.tp$base!==s.prototype.tp$base||!function(t,e){t=t.prototype,e=e.prototype;const n=t.ht$slots,i=e.ht$slots;return t.sk$hasDict===e.sk$hasDict&&(n===i||(n&&i?n.length===i.length&&n.every(((t,e)=>t===i[e])):(n&&(n.length||null))===(i&&(i.length||null))))}(i,s)))throw new Sk.builtin.TypeError("__class__ assignment: '"+t.prototype.tp$name+"' object layout differs from '"+e.prototype.tp$name+"'")}Object.setPrototypeOf(this,t.prototype)},$doc:"the object's class"}},methods:{__dir__:{$meth:function(){let t=Sk.abstr.lookupAttr(this,Sk.builtin.str.$dict);t=void 0===t?new Sk.builtin.dict([]):t instanceof Sk.builtin.dict?t.dict$copy():new Sk.builtin.dict([]);const e=Sk.abstr.lookupAttr(this,Sk.builtin.str.$class);return void 0!==e&&e.$mergeClassDict(t),new Sk.builtin.list(t.sk$asarray())},$flags:{NoArgs:!0},$doc:"Default dir() implementation."},__format__:{$meth(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__format__() argument must be str, not "+Sk.abstr.typeName(t));if(t!==Sk.builtin.str.$empty)throw new Sk.builtin.TypeError(`unsupported format string passed to ${Sk.abstr.typeName(this)}.__format__`);return this.tp$str()},$flags:{OneArg:!0},$doc:"Default object formatter."}},classmethods:{__init_subclass__:{$meth:t=>Sk.builtin.none.none$,$flags:{FastCall:!0,NoKwargs:!0}}},proto:{valueOf:Object.prototype.valueOf,toString(){return this.tp$str().v},hasOwnProperty:Object.prototype.hasOwnProperty,ht$type:void 0,sk$attrError(){return"'"+this.tp$name+"' object"},$mergeClassDict(t){var e=Sk.abstr.lookupAttr(this,Sk.builtin.str.$dict);if(void 0!==e&&t.dict$merge(e),void 0!==(e=Sk.abstr.lookupAttr(this,Sk.builtin.str.$bases))){var n=Sk.builtin.len(e).valueOf();for(let i=0;ivoid 0===t?Sk.builtin.none.none$:t))}function r(t,e,n){return Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,1,2),void 0===(t=this.call(t,...e))?Sk.builtin.none.none$:t}function o(t,e,n){return Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,2,2),Sk.misceval.chain(this.call(t,e[0],e[1],!0),(()=>Sk.builtin.none.none$))}function a(t,e,n){return Sk.abstr.checkOneArg(this.$name,e,n),t=this.call(t,e[0],void 0,!0),Sk.misceval.chain(t,(t=>void 0===t?Sk.builtin.none.none$:t))}function l(t,e,n){return(t=i.call(this,t,e,n))===Sk.builtin.NotImplemented.NotImplemented$?t:new Sk.builtin.bool(t)}function u(t,e,n){return function(i,s,r){return i=t.call(this,i,s,r),n?Sk.misceval.chain(i,e):e(Sk.misceval.retryOptionalSuspensionOrThrow(i))}}function c(t){return function(){const e=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return Sk.misceval.callsimArray(e,[])}}function p(t,e,n,i){return function(s){return function(){var r=s.tp$descr_get?s.tp$descr_get(this,this.ob$type):s;if(r=Sk.misceval.callsimArray(r,[]),!e(r))throw new Sk.builtin.TypeError(t+" should return "+n+" (returned "+Sk.abstr.typeName(r)+")");return void 0!==i?i(r):r}}}function h(t){return function(e){const n=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return Sk.misceval.callsimArray(n,[e])}}function _(t,e){let n=this.ob$type.$typeLookup(Sk.builtin.str.$getattribute);if(n instanceof Sk.builtin.wrapper_descriptor)return n.d$wrapped.call(this,t,e);n.tp$descr_get&&(n=n.tp$descr_get(this,this.ob$type));const i=Sk.misceval.tryCatch((()=>Sk.misceval.callsimOrSuspendArray(n,[t])),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t}));return e?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}function d(t,e,n){return function(i){return function(i,s,r){let o;void 0===s?(o=e,n=null):o=t;let a=this.ob$type.$typeLookup(new Sk.builtin.str(o));if(a instanceof Sk.builtin.wrapper_descriptor)return a.d$wrapped.call(this,i,s);if(a.tp$descr_get&&(a=a.tp$descr_get(this,this.ob$type,r)),void 0===a){if(n)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this)+"' object "+n);throw new Sk.builtin.AttributeError(o)}return i=Sk.misceval.callsimOrSuspendArray(a,void 0===s?[i]:[i,s]),r?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}}}function f(t,e){let n=t.ob$type;for(;n&&void 0!==n.sk$klass;)n=n.prototype.tp$base;if(n&&n.prototype.tp$setattr!==e)throw new Sk.builtin.TypeError("can't apply this "+e.$name+" to "+Sk.abstr.typeName(t)+" object")}Sk.slots=Object.create(null),t=Sk.slots,Sk.slots.__init__={$name:"__init__",$slot_name:"tp$init",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(i,e,n),Sk.misceval.chain(e,(t=>{if(!Sk.builtin.checkNone(t)&&void 0!==t)throw new Sk.builtin.TypeError("__init__() should return None, not "+Sk.abstr.typeName(t))}))}},$wrapper:function(t,e,n){return this.call(t,e,n),Sk.builtin.none.none$},$textsig:"($self, /, *args, **kwargs)",$flags:{FastCall:!0},$doc:"Initialize self. See help(type(self)) for accurate signature."},t.__new__={$name:"__new__",$slot_name:"tp$new",$slot_func:function(t){const e=function(e,n){let i=t;return t.tp$descr_get&&(i=t.tp$descr_get(null,this.constructor)),Sk.misceval.callsimOrSuspendArray(i,[this.constructor,...e],n)};return e.sk$static_new=!1,e},$wrapper:null,$textsig:"($self, /, *args, **kwargs)",$flags:{FastCall:!0},$doc:"Create and return a new object."},t.__call__={$name:"__call__",$slot_name:"tp$call",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return Sk.misceval.callsimOrSuspendArray(i,e,n)}},$wrapper:function(t,e,n){return void 0===(t=t.tp$call(e,n))?Sk.builtin.none.none$:t},$textsig:"($self, /, *args, **kwargs)",$flags:{FastCall:!0},$doc:"Call self as a function."},t.__repr__={$name:"__repr__",$slot_name:"$r",$slot_func:p("__repr__",Sk.builtin.checkString,"str"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return repr(self)."},t.__str__={$name:"__str__",$slot_name:"tp$str",$slot_func:p("__str__",Sk.builtin.checkString,"str"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return str(self)."};var m=p("__hash__",Sk.builtin.checkInt,"int",(t=>"number"==typeof t.v?t.v:t.tp$hash()));t.__hash__={$name:"__hash__",$slot_name:"tp$hash",$slot_func:function(t){return t===Sk.builtin.none.none$?Sk.builtin.none.none$:m(t)},$wrapper:u(n,(t=>new Sk.builtin.int_(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return hash(self)."},t.__getattribute__={$name:"__getattribute__",$slot_name:"tp$getattr",$slot_func:function(t){return function(t,e){let n=this.ob$type.$typeLookup(Sk.builtin.str.$getattr);if(void 0===n)return _.call(this,t,e);const i=Sk.misceval.chain(_.call(this,t,e),(e=>Sk.misceval.tryCatch((()=>void 0!==e?e:(n.tp$descr_get&&(n=n.tp$descr_get(this,this.ob$type)),Sk.misceval.callsimOrSuspendArray(n,[t]))),(function(t){if(!(t instanceof Sk.builtin.AttributeError))throw t}))));return e?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}},$wrapper:function(t,e,n){Sk.abstr.checkOneArg(this.$name,e,n);const i=e[0];if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("attribute name must be string, not '"+Sk.abstr.typeName(i)+"'");return e=this.call(t,i,!0),Sk.misceval.chain(e,(e=>{if(void 0===e)throw new Sk.builtin.AttributeError(Sk.abstr.typeName(t)+" has no attribute "+i.$jsstr());return e}))},$textsig:"($self, name, /)",$flags:{OneArg:!0},$doc:"Return getattr(self, name)."},t.__getattr__={$name:"__getattr__",$slot_name:"tp$getattr",$slot_func:t.__getattribute__.$slot_func,$wrapper:null,$textsig:"($self, name, /)",$flags:{OneArg:!0},$doc:"Return getattr(self, name)."},t.__setattr__={$name:"__setattr__",$slot_name:"tp$setattr",$slot_func:d("__setattr__","__delattr__"),$wrapper:function(t,e,n){return Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,2,2),f(t,this),Sk.misceval.chain(this.call(t,e[0],e[1],!0),(()=>Sk.builtin.none.none$))},$textsig:"($self, name, value, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Implement setattr(self, name, value)."},t.__delattr__={$name:"__delattr__",$slot_name:"tp$setattr",$slot_func:t.__setattr__.$slot_func,$wrapper:function(t,e,n){return Sk.abstr.checkOneArg(this.$name,e,n),f(t,this),this.call(t,e[0]),Sk.builtin.none.none$},$textsig:"($self, name, /)",$flags:{OneArg:!0},$doc:"Implement delattr(self, name)."},t.__get__={$name:"__get__",$slot_name:"tp$descr_get",$slot_func:function(t){return function(e,n,i){null===e&&(e=Sk.builtin.none.none$),null==n&&(n=Sk.builtin.none.none$);const s=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(s,[e,n]),i?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)}},$wrapper:function(t,e,n){if(Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,1,2),n=e[0],e=e[1],n===Sk.builtin.none.none$&&(n=null),e===Sk.builtin.none.none$&&(e=null),null===e&&null===n)throw new Sk.builtin.TypeError("__get__(None, None) is invalid");return this.call(t,n,e,!0)},$textsig:"($self, instance, owner, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Return an attribute of instance, which is of type owner."},t.__set__={$name:"__set__",$slot_name:"tp$descr_set",$slot_func:d("__set__","__delete__"),$wrapper:o,$textsig:"($self, instance, value, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Set an attribute of instance to value."},t.__delete__={$name:"__delete__",$slot_name:"tp$descr_set",$slot_func:t.__set__.$slot_func,$wrapper:a,$textsig:"($self, instance, /)",$flags:{OneArg:!0},$doc:"Delete an attribute of instance."},t.__eq__={$name:"__eq__",$slot_name:"ob$eq",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self==value."},t.__ge__={$name:"__ge__",$slot_name:"ob$ge",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self>=value."},t.__gt__={$name:"__gt__",$slot_name:"ob$gt",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self>value."},t.__le__={$name:"__le__",$slot_name:"ob$le",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self<=value."},t.__lt__={$name:"__lt__",$slot_name:"ob$lt",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return selfSk.misceval.callsimOrSuspendArray(n,[])),(t=>{if(!(t instanceof Sk.builtin.StopIteration))throw t;this.gi$ret=t.$value}));return e?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}},$wrapper:function(t,e,n){return Sk.abstr.checkNoArgs(this.$name,e,n),Sk.misceval.chain(t.tp$iternext(!0),(t=>{if(void 0===t)throw new Sk.builtin.StopIteration;return t}))},$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Implement next(self)."},t.__len__={$name:"__len__",$slot_name:"sq$length",$slot_func:function(t){return function(e){const n=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e?(e=Sk.misceval.callsimOrSuspendArray(n,[]),Sk.misceval.chain(e,(t=>Sk.misceval.asIndexOrThrow(t)))):(e=Sk.misceval.callsimArray(n,[]),Sk.misceval.asIndexOrThrow(e))}},$wrapper:u((function(t,e,n){return Sk.abstr.checkNoArgs(this.$name,e,n),t=this.call(t,!0),Sk.misceval.chain(t,(t=>void 0===t?Sk.builtin.none.none$:t))}),(t=>new Sk.builtin.int_(t)),!0),$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return len(self)."},t.__contains__={$name:"__contains__",$slot_name:"sq$contains",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(i,[e]),(e=Sk.misceval.chain(e,(t=>Sk.misceval.isTrue(t)))).$isSuspension?n?e:Sk.misceval.retryOptionalSuspensionOrThrow(e):e}},$wrapper:u(s,(t=>new Sk.builtin.bool(t)),!0),$textsig:"($self, key, /)",$flags:{OneArg:!0},$doc:"Return key in self."},t.__getitem__={$name:"__getitem__",$slot_name:"mp$subscript",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(i,[e]),n?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)}},$wrapper:s,$textsig:"($self, key, /)",$flags:{OneArg:!0},$doc:"Return self[key]."},t.__setitem__={$name:"__setitem__",$slot_name:"mp$ass_subscript",$slot_func:d("__setitem__","__delitem__","does not support item assignment"),$wrapper:o,$textsig:"($self, key, value, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Set self[key] to value."},t.__delitem__={$name:"__delitem__",$slot_name:"mp$ass_subscript",$slot_func:t.__setitem__.$slot_func,$wrapper:a,$textsig:"($self, key, /)",$flags:{OneArg:!0},$doc:"Delete self[key]."},t.__add__={$name:"__add__",$slot_name:"nb$add",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self+value."},t.__radd__={$name:"__radd__",$slot_name:"nb$reflected_add",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value+self."},t.__iadd__={$name:"__iadd__",$slot_name:"nb$inplace_add",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self+=value."},t.__sub__={$name:"__sub__",$slot_name:"nb$subtract",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self-value."},t.__rsub__={$name:"__rsub__",$slot_name:"nb$reflected_subtract",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value-self."},t.__imul__={$name:"__imul__",$slot_name:"nb$inplace_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self*=value."},t.__mul__={$name:"__mul__",$slot_name:"nb$multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self*value."},t.__rmul__={$name:"__rmul__",$slot_name:"nb$reflected_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value*self."},t.__isub__={$name:"__isub__",$slot_name:"nb$inplace_subtract",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self-=value."},t.__mod__={$name:"__mod__",$slot_name:"nb$remainder",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self%value."},t.__rmod__={$name:"__rmod__",$slot_name:"nb$reflected_remainder",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value%self."},t.__imod__={$name:"__imod__",$slot_name:"nb$inplace_remainder",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement value%=self."},t.__divmod__={$name:"__divmod__",$slot_name:"nb$divmod",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return divmod(self, value)."},t.__rdivmod__={$name:"__rdivmod__",$slot_name:"nb$reflected_divmod",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return divmod(value, self)"},t.__pos__={$name:"__pos__",$slot_name:"nb$positive",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"+self"},t.__neg__={$name:"__neg__",$slot_name:"nb$negative",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"-self"},t.__abs__={$name:"__abs__",$slot_name:"nb$abs",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"abs(self)"},t.__bool__={$name:"__bool__",$slot_name:"nb$bool",$slot_func:p("__bool__",Sk.builtin.checkBool,"bool",(t=>0!==t.v)),$wrapper:u(n,(t=>new Sk.builtin.bool(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"self != 0"},t.__invert__={$name:"__invert__",$slot_name:"nb$invert",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"~self"},t.__lshift__={$name:"__lshift__",$slot_name:"nb$lshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self<>value."},t.__rrshift__={$name:"__rrshift__",$slot_name:"nb$reflected_rshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value>>self."},t.__ilshift__={$name:"__ilshift__",$slot_name:"nb$inplace_lshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self<<=value."},t.__irshift__={$name:"__irshift__",$slot_name:"nb$inplace_rshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self=>>value."},t.__and__={$name:"__and__",$slot_name:"nb$and",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self&value."},t.__rand__={$name:"__rand__",$slot_name:"nb$refelcted_and",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value&self."},t.__iand__={$name:"__iand__",$slot_name:"nb$and",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self&=value."},t.__xor__={$name:"__xor__",$slot_name:"nb$xor",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self^value."},t.__rxor__={$name:"__rxor__",$slot_name:"nb$reflected_xor",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value^self."},t.__ixor__={$name:"__ixor__",$slot_name:"nb$inplace_xor",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self^=value."},t.__or__={$name:"__or__",$slot_name:"nb$or",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self|value."},t.__ror__={$name:"__ror__",$slot_name:"nb$reflected_or",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value|self."},t.__ior__={$name:"__ior__",$slot_name:"nb$inplace_or",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self|=value."},t.__int__={$name:"__int__",$slot_name:"nb$int",$slot_func:p("__int__",Sk.builtin.checkInt,"int"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"int(self)"},t.__float__={$name:"__float__",$slot_name:"nb$float",$slot_func:p("__float__",Sk.builtin.checkFloat,"float"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"float(self)"},t.__floordiv__={$name:"__floordiv__",$slot_name:"nb$floor_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self//value."},t.__rfloordiv__={$name:"__rfloordiv__",$slot_name:"nb$reflected_floor_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value//self."},t.__ifloordiv__={$name:"__ifloordiv__",$slot_name:"nb$inplace_floor_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self//=value."},t.__truediv__={$name:"__truediv__",$slot_name:"nb$divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self/value."},t.__rtruediv__={$name:"__rtruediv__",$slot_name:"nb$reflected_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value/self."},t.__itruediv__={$name:"__itruediv__",$slot_name:"nb$inplace_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self/=value."},t.__index__={$name:"__index__",$slot_name:"nb$index",$slot_func:p("__index__",Sk.builtin.checkInt,"int",(t=>t.v)),$wrapper:u(n,(t=>new Sk.builtin.int_(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return self converted to an integer, if self is suitable for use as an index into a list."},t.__pow__={$name:"__pow__",$slot_name:"nb$power",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return null==n?Sk.misceval.callsimArray(i,[e]):Sk.misceval.callsimArray(i,[e,n])}},$wrapper:r,$textsig:"($self, value, mod=None, /)",$flags:{MinArgs:1,MaxArgs:2},$doc:"Return pow(self, value, mod)."},t.__rpow__={$name:"__rpow__",$slot_name:"nb$reflected_power",$slot_func:t.__pow__.$slot_func,$wrapper:r,$textsig:"($self, value, mod=None, /)",$flags:{MinArgs:1,MaxArgs:2},$doc:"Return pow(value, self, mod)."},t.__ipow__={$name:"__ipow__",$slot_name:"nb$inplace_power",$slot_func:t.__pow__.$slot_func,$wrapper:r,$textsig:"($self, value, mod=None, /)",$flags:{MinArgs:1,MaxArgs:2},$doc:"Implement **="},t.__matmul__={$name:"__matmul__",$slot_name:"nb$matrix_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self@value."},t.__rmatmul__={$name:"__rmatmul__",$slot_name:"nb$reflected_matrix_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value@self."},t.__imatmul__={$name:"__imatmul__",$slot_name:"nb$inplace_matrix_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self@=value."},t.__long__={$name:"__long__",$slot_name:"nb$long",$slot_func:p("__long__",Sk.builtin.checkInt,"int"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"int(self)"};var g,b={next:{$name:"next",$slot_name:"tp$iternext",$slot_func:t.__next__.$slot_func,$wrapper:t.__next__.$wrapper,$textsig:t.__next__.$textsig,$flags:t.__next__.$flags},__nonzero__:{$name:"__nonzero__",$slot_name:"nb$bool",$slot_func:p("__nonzero__",Sk.builtin.checkInt,"int",(t=>0!==t.v)),$wrapper:u(n,(t=>new Sk.builtin.bool(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"x.__nonzero__() <==> x != 0"},__div__:{$name:"__div__",$slot_name:"nb$divide",$slot_func:h,$wrapper:i,$textsig:"($self, other/)",$flags:{OneArg:!0},$doc:"x.__div__(y) <==> x/y"},__rdiv__:{$name:"__rdiv__",$slot_name:"nb$reflected_divide",$slot_func:h,$wrapper:i,$textsig:"($self, other/)",$flags:{OneArg:!0},$doc:"x.__rdiv__(y) <==> x/y"},__idiv__:{$name:"__idiv__",$slot_name:"nb$inplace_divide",$slot_func:h,$wrapper:i,$textsig:"($self, other/)",$flags:{OneArg:!0},$doc:"implement self /= other"}};Sk.subSlots={main_slots:Object.entries({tp$init:"__init__",tp$call:"__call__",$r:"__repr__",tp$str:"__str__",tp$getattr:"__getattribute__",tp$setattr:["__setattr__","__delattr__"],ob$eq:"__eq__",ob$ne:"__ne__",ob$lt:"__lt__",ob$le:"__le__",ob$gt:"__gt__",ob$ge:"__ge__",tp$descr_get:"__get__",tp$descr_set:["__set__","__delete__"],tp$iter:"__iter__",tp$iternext:"__next__"}),number_slots:Object.entries({nb$abs:"__abs__",nb$negative:"__neg__",nb$positive:"__pos__",nb$int:"__int__",nb$long:"__long__",nb$float:"__float__",nb$index:"__index__",nb$add:"__add__",nb$reflected_add:"__radd__",nb$inplace_add:"__iadd__",nb$subtract:"__sub__",nb$reflected_subtract:"__rsub__",nb$inplace_subtract:"__isub__",nb$multiply:"__mul__",nb$reflected_multiply:"__rmul__",nb$inplace_multiply:"__imul__",nb$floor_divide:"__floordiv__",nb$reflected_floor_divide:"__rfloordiv__",nb$inplace_floor_divide:"__ifloordiv__",nb$invert:"__invert__",nb$remainder:"__mod__",nb$reflected_remainder:"__rmod__",nb$inplace_remainder:"__imod__",nb$divmod:"__divmod__",nb$reflected_divmod:"__rdivmod__",nb$power:"__pow__",nb$reflected_power:"__rpow__",nb$inplace_power:"__ipow__",nb$divide:"__truediv__",nb$reflected_divide:"__rtruediv__",nb$inplace_divide:"__itruediv__",nb$bool:"__bool__",nb$and:"__and__",nb$reflected_and:"__rand__",nb$inplace_and:"__iand__",nb$or:"__or__",nb$reflected_or:"__ror__",nb$inplace_or:"__ior__",nb$xor:"__xor__",nb$reflected_xor:"__rxor__",nb$inplace_xor:"__ixor__",nb$lshift:"__lshift__",nb$reflected_lshift:"__rlshift__",nb$rshift:"__rshift__",nb$reflected_rshift:"__rrshift__",nb$inplace_lshift:"__ilshift__",nb$inplace_rshift:"__irshift__",nb$matrix_multiply:"__matmul__",nb$reflected_matrix_multiply:"__rmatmul__",nb$inplace_matrix_multiply:"__imatmul__"}),sequence_and_mapping_slots:Object.entries({sq$length:"__len__",sq$contains:"__contains__",mp$subscript:"__getitem__",mp$ass_subscript:["__setitem__","__delitem__"],nb$add:"__add__",nb$multiply:"__mul__",nb$reflected_multiply:"__rmul__",nb$inplace_add:"__iadd__",nb$inplace_multiply:"__imul__"})},Sk.reflectedNumberSlots={nb$add:{reflected:"nb$reflected_add"},nb$subtract:{reflected:"nb$reflected_subtract",slot:function(t){return t instanceof this.constructor?t.nb$subtract(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$multiply:{reflected:"nb$reflected_multiply"},nb$divide:{reflected:"nb$reflected_divide",slot:function(t){return t instanceof this.constructor?t.nb$divide(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$floor_divide:{reflected:"nb$reflected_floor_divide",slot:function(t){return t instanceof this.constructor?t.nb$floor_divide(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$remainder:{reflected:"nb$reflected_remainder",slot:function(t){return t instanceof this.constructor?t.nb$remainder(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$divmod:{reflected:"nb$reflected_divmod",slot:function(t){return t instanceof this.constructor?t.nb$divmod(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$power:{reflected:"nb$reflected_power",slot:function(t,e){return t instanceof this.constructor?t.nb$power(this,e):Sk.builtin.NotImplemented.NotImplemented$}},nb$and:{reflected:"nb$reflected_and"},nb$or:{reflected:"nb$reflected_or"},nb$xor:{reflected:"nb$reflected_xor"},nb$lshift:{reflected:"nb$reflected_lshift",slot:function(t){return t instanceof this.constructor?t.nb$lshift(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$rshift:{reflected:"nb$reflected_rshift",slot:function(t){return t instanceof this.constructor?t.nb$rshift(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$matrix_multiply:{reflected:"nb$reflexted_matrix_multiply",slot:function(t){return t instanceof this.constructor?t.nb$matrix_multiply(this):Sk.builtin.NotImplemented.NotImplemented$}}},Sk.sequenceAndMappingSlots={sq$concat:["nb$add"],sq$repeat:["nb$multiply","nb$reflected_multiply"],mp$length:["sq$length"],sq$inplace_repeat:["nb$inplace_multiply"],sq$inplace_concat:["nb$inplace_add"]},Sk.dunderToSkulpt={__repr__:"$r",__str__:"tp$str",__init__:"tp$init",__new__:"tp$new",__hash__:"tp$hash",__call__:"tp$call",__iter__:"tp$iter",__next__:"tp$iternext",__eq__:"ob$eq",__ne__:"ob$ne",__lt__:"ob$lt",__le__:"ob$le",__gt__:"ob$gt",__ge__:"ob$ge",__abs__:"nb$abs",__neg__:"nb$negative",__pos__:"nb$positive",__int__:"nb$int",__float__:"nb$float",__index__:"nb$index",__add__:"nb$add",__radd__:"nb$reflected_add",__iadd__:"nb$inplace_add",__sub__:"nb$subtract",__rsub__:"nb$reflected_subtract",__isub__:"nb$inplace_subtract",__mul__:"nb$multiply",__rmul__:"nb$reflected_multiply",__imul__:"nb$inplace_multiply",__truediv__:"nb$divide",__rtruediv__:"nb$reflected_divide",__itruediv__:"nb$inplace_divide",__floordiv__:"nb$floor_divide",__rfloordiv__:"nb$reflected_floor_divide",__ifloordiv__:"nb$inplace_floor_divide",__invert__:"nb$invert",__mod__:"nb$remainder",__rmod__:"nb$reflected_remainder",__imod__:"nb$inplace_remainder",__divmod__:"nb$divmod",__rdivmod__:"nb$reflected_divmod",__pow__:"nb$power",__rpow__:"nb$reflected_power",__ipow__:"nb$inplace_power",__bool__:"nb$bool",__long__:"nb$long",__lshift__:"nb$lshift",__rlshift__:"nb$reflected_lshift",__ilshift__:"nb$inplace_lshift",__rshift__:"nb$rshift",__rrshift__:"nb$reflected_rshift",__irshift__:"nb$inplace_rshift",__and__:"nb$and",__rand__:"nb$reflected_and",__iand__:"nb$inplace_and",__or__:"nb$or",__ror__:"nb$reflected_or",__ior__:"nb$inplace_or",__xor__:"nb$xor",__rxor__:"nb$reflected_xor",__ixor__:"nb$inplace_xor",__matmul__:"nb$matrix_multiply",__rmatmul__:"nb$reflected_matrix_multiply",__imatmul__:"nb$inplace_matrix_multiply",__get__:"tp$descr_get",__set__:"tp$descr_set",__delete__:"tp$descr_set",__getattribute__:"tp$getattr",__getattr__:"tp$getattr",__setattr__:"tp$setattr",__delattr__:"tp$setattr",__len__:"sq$length",__contains__:"sq$contains",__getitem__:"mp$subscript",__setitem__:"mp$ass_subscript",__delitem__:"mp$ass_subscript"},Sk.exportSymbol("Sk.setupDunderMethods",Sk.setupDunderMethods),Sk.setupDunderMethods=function(t){function e(t,e,n){for(let i=0;i"tp$iternext"===t[0])),l=r.findIndex((t=>"nb$bool"===t[0])),u=Sk.dunderToSkulpt;if(t){u.__bool__="nb$bool",u.__next__="tp$iternext",delete u.__nonzero__,delete u.__div__,delete u.__rdiv__,delete u.__idiv__,delete u.next;for(let t in g)n[t]=g[t];for(let t in b)delete n[t];for(t=0;t")}const o={__doc__:{$get(){return this.d$def.$doc?new Sk.builtin.str(this.d$def.$doc):Sk.builtin.none.none$}},__objclass__:{$get(){return this.d$type}},__name__:{$get(){return new Sk.builtin.str(this.d$name)}}};t={__text_signature__:{$get(){return this.d$def.$textsig?new Sk.builtin.str(this.d$def.$textsig):Sk.builtin.none.none$}}},Sk.builtin.getset_descriptor=n("getset_descriptor",void 0,{constructor:function(t,e){this.d$def=e,this.$get=e.$get,this.$set=e.$set,this.d$type=t,this.d$name=e.$name},slots:{tp$descr_get(t,e,n){if(e=this.d$check(t))return e;if(void 0!==this.$get)return t=this.$get.call(t),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t);throw new Sk.builtin.AttributeError("getset_descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' objects is not readable")},tp$descr_set(t,e,n){if(this.d$set_check(t),void 0!==this.$set)return t=this.$set.call(t,e),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t);throw new Sk.builtin.AttributeError("attribute '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' objects is readonly")}}}),Sk.builtin.method_descriptor=n("method_descriptor","method",{constructor:function(t,e){this.d$def=e,this.$meth=e.$meth,this.d$type=t,this.d$name=e.$name||"",this.$flags=t=e.$flags||{},t.FastCall&&t.NoKwargs?this.tp$call=this.$methodFastCallNoKwargs:t.FastCall?this.tp$call=this.$methodFastCall:t.NoArgs?this.tp$call=this.$methodCallNoArgs:t.OneArg?this.tp$call=this.$methodCallOneArg:t.NamedArgs?this.tp$call=this.$methodCallNamedArgs:void 0!==t.MinArgs?this.tp$call=this.$methodCallMinArgs:(this.func_code=e.$meth,this.tp$call=this.$defaultCall,this.$memoiseFlags=Sk.builtin.func.prototype.$memoiseFlags,this.$resolveArgs=Sk.builtin.func.prototype.$resolveArgs)},slots:{tp$call(t,e){return this.tp$call(t,e)},tp$descr_get(t,e){let n;return(n=this.d$check(t))?n:new Sk.builtin.sk_method(this.d$def,t)}},getsets:t,proto:{$methodFastCall(t,e){const n=t.shift();return this.m$checkself(n),this.$meth.call(n,t,e)},$methodFastCallNoKwargs(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkNoKwargs(this.d$name,e),this.$meth.call(n,t)},$methodCallNoArgs(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkNoArgs(this.d$name,t,e),this.$meth.call(n)},$methodCallOneArg(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkOneArg(this.d$name,t,e),this.$meth.call(n,t[0])},$methodCallNamedArgs(t,e){const n=t.shift();return this.m$checkself(n),t=Sk.abstr.copyKeywordsToNamedArgs(this.d$name,this.$flags.NamedArgs,t,e,this.$flags.Defaults),this.$meth.call(n,...t)},$methodCallMinArgs(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkNoKwargs(this.d$name,e),Sk.abstr.checkArgsLen(this.d$name,t,this.$flags.MinArgs,this.$flags.MaxArgs),this.$meth.call(n,...t)},$defaultCall(t,e){return this.m$checkself(t[0]),Sk.builtin.func.prototype.tp$call.call(this,t,e)},m$checkself(t){if(void 0===t)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' object needs an argument");this.d$check(t)}}}),Sk.builtin.wrapper_descriptor=n("wrapper_descriptor","slot wrapper",{constructor:function(t,e,n){this.d$def=e,this.d$type=t,this.d$name=n.$name=e.$name,this.d$wrapped=n},slots:{tp$descr_get(t,e){let n;return(n=this.d$check(t))?n:new Sk.builtin.method_wrapper(this,t)},tp$call(t,e){if(1>t.length)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' object needs an argument");const n=t.shift();if(!n.ob$type.$isSubType(this.d$type))throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' requires a '"+this.d$type.prototype.tp$name+"' object but received a '"+Sk.abstr.typeName(n)+"'");return this.raw$call(n,t,e)}},proto:{raw$call(t,e,n){return this.d$wrapped.$name=this.d$name,this.d$def.$wrapper.call(this.d$wrapped,t,e,n)}}}),Sk.builtin.method_wrapper=n("method_wrapper",void 0,{constructor:function(t,e){this.m$descr=t,this.m$self=e,this.d$def=t.d$def,this.d$name=t.d$name,this.d$type=t.d$type},slots:{tp$call(t,e){return this.m$descr.raw$call(this.m$self,t,e)},tp$richcompare(t,e){return("Eq"===e||"NotEq"===e)&&t instanceof Sk.builtin.method_wrapper?(t=this.m$self===t.m$self&&this.m$descr===t.m$descr,"Eq"===e?t:!t):Sk.builtin.NotImplemented.NotImplemented$},$r(){return new Sk.builtin.str("")}},getsets:{__self__:{$get(){return this.m$self}}}}),Sk.builtin.classmethod_descriptor=n("classmethod_descriptor","method",{constructor:function(t,e){this.d$def=e,this.$meth=e.$meth,this.d$type=t,this.d$name=e.$name||""},slots:{tp$call(t,e){if(1>t.length)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' object needs an argument");const n=t.shift();return this.tp$descr_get(null,n).tp$call(t,e)},tp$descr_get(t,e,n){if(void 0===e){if(null===t)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' for type '"+this.d$type.prototype.tp$name+"' needs an object or a type");e=e||t.ob$type}if(!e.ob$type.$isSubType(Sk.builtin.type))throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' for type '"+this.d$type.prototype.tp$name+"' needs a type not a '"+Sk.abstr.typeName(e)+"' as arg 2");if(!e.$isSubType(this.d$type))throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' requires a '"+this.d$type.prototype.tp$name+"' object but received a '"+Sk.abstr.typeName(e)+"' object");return new Sk.builtin.sk_method(this.d$def,e)}},getsets:t}),[Sk.builtin.method_descriptor,Sk.builtin.getset_descriptor,Sk.builtin.wrapper_descriptor,Sk.builtin.method_wrapper,Sk.builtin.classmethod_descriptor].forEach((t=>{Sk.abstr.setUpSlots(t),Sk.abstr.setUpMethods(t),Sk.abstr.setUpGetSets(t)}))},function(t,e){Sk.builtin.sk_method=Sk.abstr.buildNativeClass("builtin_function_or_method",{constructor:function(t,e,n){this.$meth=t.$meth.bind(e),this.$doc=t.$doc,this.$self=e||null,this.$module=n?new Sk.builtin.str(n):null,this.$name=t.$name||t.$meth.name||"",this.m$def=t,this.$textsig=t.$textsig,this.$flags=t=t.$flags||{},t.FastCall&&t.NoKwargs?this.tp$call=this.$fastCallNoKwargs:t.FastCall?this.tp$call=this.$meth:t.NoArgs?this.tp$call=this.$callNoArgs:t.OneArg?this.tp$call=this.$callOneArg:t.NamedArgs?this.tp$call=this.$callNamedArgs:void 0!==t.MinArgs?this.tp$call=this.$callMinArgs:(this.func_code=this.$meth,this.tp$call=this.$defaultCallMethod)},proto:{$fastCallNoKwargs(t,e){return Sk.abstr.checkNoKwargs(this.$name,e),this.$meth(t)},$callNoArgs(t,e){return Sk.abstr.checkNoArgs(this.$name,t,e),this.$meth()},$callOneArg(t,e){return Sk.abstr.checkOneArg(this.$name,t,e),this.$meth(t[0])},$callNamedArgs(t,e){return t=Sk.abstr.copyKeywordsToNamedArgs(this.$name,this.$flags.NamedArgs,t,e,this.$flags.Defaults),this.$meth(...t)},$callMinArgs(t,e){return Sk.abstr.checkNoKwargs(this.$name,e),Sk.abstr.checkArgsLen(this.$name,t,this.$flags.MinArgs,this.$flags.MaxArgs),this.$meth(...t)},$defaultCallMethod(t,e){return null!==this.$self?Sk.builtin.func.prototype.tp$call.call(this,[this.$self,...t],e):Sk.builtin.func.prototype.tp$call.call(this,t,e)},$memoiseFlags(){return Sk.builtin.func.prototype.$memoiseFlags.call(this)},$resolveArgs(){return Sk.builtin.func.prototype.$resolveArgs.call(this)}},flags:{sk$unacceptableBase:!0},slots:{tp$getattr:Sk.generic.getAttr,$r(){return null===this.$self?new Sk.builtin.str(""):new Sk.builtin.str("")},tp$call(t,e){return this.tp$call(t,e)},tp$richcompare(t,e){return("Eq"===e||"NotEq"===e)&&t instanceof Sk.builtin.sk_method?(t=this.$self===t.$self&&this.m$def.$meth===t.m$def.$meth,"Eq"===e?t:!t):Sk.builtin.NotImplemented.NotImplemented$}},getsets:{__module__:{$get(){return this.$module||Sk.builtin.none.none$},$set(t){this.$module=t=t||Sk.builtin.none.none$}},__doc__:{$get(){return this.$doc?new Sk.builtin.str(this.$doc):Sk.builtin.none.none$}},__name__:{$get(){return new Sk.builtin.str(this.$name)}},__text_signature__:{$get(){return new Sk.builtin.str(this.$textsig)}},__self__:{$get(){return this.$self||Sk.sysModules.mp$lookup(this.$module)||Sk.builtin.none.none$}}}})},function(t,e){Sk.builtin.none=Sk.abstr.buildNativeClass("NoneType",{constructor:function(){return Sk.builtin.none.none$},slots:{tp$new:(t,e)=>(Sk.abstr.checkNoArgs("NoneType",t,e),Sk.builtin.none.none$),$r:()=>new Sk.builtin.str("None"),tp$as_number:!0,nb$bool:()=>!1},proto:{valueOf:()=>null},flags:{sk$unacceptableBase:!0}}),Sk.builtin.none.none$=Object.create(Sk.builtin.none.prototype,{v:{value:null,enumerable:!0}}),Sk.builtin.NotImplemented=Sk.abstr.buildNativeClass("NotImplementedType",{constructor:function(){return Sk.builtin.NotImplemented.NotImplemented$},slots:{$r:()=>new Sk.builtin.str("NotImplemented"),tp$new:(t,e)=>(Sk.abstr.checkNoArgs("NotImplementedType",t,e),Sk.builtin.NotImplemented.NotImplemented$)},flags:{sk$unacceptableBase:!0}}),Sk.builtin.NotImplemented.NotImplemented$=Object.create(Sk.builtin.NotImplemented.prototype,{v:{value:null,enumerable:!0}}),t=Sk.abstr.buildNativeClass("ellipsis",{constructor:function(){return Sk.builtin.Ellipsis},slots:{tp$new:(t,e)=>(Sk.abstr.checkNoArgs("ellipsis",t,e),Sk.builtin.Ellipsis),$r:()=>new Sk.builtin.str("Ellipsis")},flags:{sk$unacceptableBase:!0}}),Sk.builtin.Ellipsis=Object.create(t.prototype,{v:{value:"..."}})},function(t,e){const n=/^(?:(.)?([<>=\^]))?([\+\-\s])?(#)?(0)?(\d+)?(,|_)?(?:\.(\d+))?([bcdeEfFgGnosxX%])?$/;Sk.formatting={};let i=function(t,e,n,i){if(Sk.asserts.assert("string"==typeof e),t[6]){var s=parseInt(t[6],10);i=t[2]||(t[5]?"=":i?">":"<");let r=s-(e.length+(n?n.length:0));if(0>=r)return n+e;switch(s=(t[1]||(t[5]?"0":" ")).repeat(r),i){case"=":if("s"===t[9])throw new Sk.builtin.ValueError("'=' alignment not allowed in string format specifier");return n+s+e;case">":return s+n+e;case"<":return n+e+s;case"^":return t=Math.floor(r/2),s.substring(0,t)+n+e+s.substring(t)}}return n+e},s=function(t,e){return e?"-":"+"===t[3]?"+":" "===t[3]?" ":""};const r=/\B(?=(\d{3})+(?!\d))/g,o=/\B(?=([A-Za-z0-9]{4})+(?![A-Za-z0-9]))/g;let a=function(t,e,n){if(Sk.asserts.assert(e instanceof Sk.builtin.int_||e instanceof Sk.builtin.lng),t[8])throw new Sk.builtin.ValueError("Precision not allowed in integer format");var a=e.str$(n,!1);e=e.nb$isnegative(),e=s(t,e),t[4]&&(16===n?e+="0x":8===n?e+="0o":2===n&&(e+="0b"));const l=t[9];if("X"===l&&(a=a.toUpperCase()),"n"===t[9])a=(+a).toLocaleString();else if(t[7]){a=a.split(".");const e=t[7];if(","===e&&10!==n)throw new Sk.builtin.ValueError(`Cannot specify ',' with '${l}'`);a[0]=a[0].replace(10===n?r:o,e),a=a.join(".")}return i(t,a,e,!0)};Sk.formatting.mkNumber__format__=t=>function(e){if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("format() argument 2 must be str, not "+Sk.abstr.typeName(e));return new Sk.builtin.str(function(t,e,r){if(!e)return t.str$(10,!0);if(!(e=e.match(n)))throw new Sk.builtin.ValueError("Invalid format specifier");var o=e[9];if(o||(o=r?"g":"d"),-1==(r?"fFeEgG%":"bcdoxXnfFeEgG%").indexOf(o))throw new Sk.builtin.ValueError("Unknown format code '"+e[9]+"' for object of type '"+Sk.abstr.typeName(t)+"'");switch(o){case"d":case"n":return a(e,t,10);case"x":case"X":return a(e,t,16);case"o":return a(e,t,8);case"b":return a(e,t,2);case"c":if(e[3])throw new Sk.builtin.ValueError("Sign not allowed with integer format specifier 'c'");if(e[4])throw new Sk.builtin.ValueError("Alternate form not allowed with integer format specifier 'c'");if(e[7])throw new Sk.builtin.ValueError("Cannot specify ',' with 'c'");if(e[8])throw new Sk.builtin.ValueError("Cannot specify ',' with 'c'");return i(e,String.fromCodePoint(Sk.builtin.asnum$(t)),"",!0);case"f":case"F":case"e":case"E":case"g":case"G":{if(e[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed in float format specifier");if("string"==typeof(r=Sk.builtin.asnum$(t))&&(r=Number(r)),1/0===r)return i(e,"inf","",!0);if(-1/0===r)return i(e,"inf","-",!0);if(isNaN(r))return i(e,"nan","",!0);t=!1,0>r&&(r=-r,t=!0);var l=["toExponential","toFixed","toPrecision"]["efg".indexOf(o.toLowerCase())];let n=e[8]?parseInt(e[8],10):6;if(r=r[l](n),-1!=="EFG".indexOf(o)&&(r=r.toUpperCase()),"g"===o.toLowerCase()||!e[9]){if(l=r.match(/\.(\d*[1-9])?(0+)$/)){let[,t,e]=l;r=r.slice(0,t?-e.length:-(e.length+1))}-1!=r.indexOf(".")||e[9]||(r+=".0")}return"e"===o.toLowerCase()&&(r=r.replace(/^([-+]?[0-9]*\.?[0-9]+[eE][-+]?)([0-9])?$/,"$10$2")),e[7]&&((o=r.toString().split("."))[0]=o[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),r=o.join(".")),i(e,r,s(e,t),!0)}case"%":if(e[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed with format specifier '%'");return"string"==typeof(t=Sk.builtin.asnum$(t))&&(t=Number(t)),1/0===t?i(e,"inf%","",!0):-1/0===t?i(e,"inf%","-",!0):isNaN(t)?i(e,"nan%","",!0):(o=!1,0>t&&(t=-t,o=!0),r=e[8]?parseInt(e[8],10):6,t=(100*t).toFixed(r)+"%",i(e,t,s(e,o),!0));default:throw new Sk.builtin.ValueError("Unknown format code '"+e[9]+"'")}}(this,e.$jsstr(),t))},Sk.formatting.format=function(t,e){e=e||[];const n={};for(let t=0;tn?1/0:n;null!=(o=s.exec(t))&&li)return new Sk.builtin.tuple([new Sk.builtin.str(""),new Sk.builtin.str(""),new Sk.builtin.str(n)])}else if(i=n.indexOf(e),0>i)return new Sk.builtin.tuple([new Sk.builtin.str(n),new Sk.builtin.str(""),new Sk.builtin.str("")]);return new Sk.builtin.tuple([new Sk.builtin.str(n.substring(0,i)),new Sk.builtin.str(e),new Sk.builtin.str(n.substring(i+e.length))])}}function o(t,e){return function(n,i){if(n=Sk.misceval.asIndexSized(n,Sk.builtin.OverflowError),void 0===i)i=" ";else{if(!(i instanceof Sk.builtin.str&&1===i.sq$length()))throw new Sk.builtin.TypeError("the fill character must be a str of length 1");i=i.v}var s=this.sq$length();return s>=n?new Sk.builtin.str(this.v):e?(s=n-s,n=Math.floor(s/2)+(s&n&1),i=i.repeat(n)+this.v+i.repeat(s-n),new Sk.builtin.str(i)):(i=i.repeat(n-s),new Sk.builtin.str(t?i+this.v:this.v+i))}}function a(t,e,n){if(({start:e,end:n}=Sk.builtin.slice.startEnd$wrt(t,e,n)),t.$hasAstralCodePoints()){const i=t.codepoints[e];e=void 0===i?e+t.v.length-t.codepoints.length:i,n=void 0===(n=t.codepoints[n])?t.v.length:n}return{start:e,end:n}}function l(t){return function(e,n,i){if(e=this.get$tgt(e),({start:n,end:i}=a(this,n,i)),i=n&&e<=i?e:-1,this.codepoints){i=this.sq$length(),n=-1;for(let t=0;ts)return Sk.builtin.bool.false$;if(i=this.v.slice(i,s),n instanceof Sk.builtin.tuple){for(let s=Sk.abstr.iter(n),r=s.tp$iternext();void 0!==r;r=s.tp$iternext()){if(!(r instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("tuple for "+t+" must only contain str, not "+Sk.abstr.typeName(r));if(e(i,r.v))return Sk.builtin.bool.true$}return Sk.builtin.bool.false$}return new Sk.builtin.bool(e(i,n.v))}}function c(t){return void 0===g[t]?t:t+"_$rw$"}var p=/^[0-9!#_]/,h=Object.create(null);Sk.builtin.str=Sk.abstr.buildNativeClass("str",{constructor:function(t){if(Sk.asserts.assert(this instanceof Sk.builtin.str,"bad call to str - use 'new'"),"string"!=typeof t)if(void 0===t)t="";else if(null===t)t="None";else{if(void 0!==t.tp$str)return t.tp$str();if("number"!=typeof t)throw new Sk.builtin.TypeError("could not convert object of type '"+Sk.abstr.typeName(t)+"' to str");t=Number.isFinite(t)?String(t):String(t).replace("Infinity","inf").replace("NaN","nan")}const e=h[t];if(void 0!==e)return e;h[t]=this,this.$mangled=c(t),this.$savedKeyHash=t.replace(p,"!$&"),this.v=t},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$doc:"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.",tp$new(t,e){if(e=e||[],this!==Sk.builtin.str.prototype)return this.$subtype_new(t,e);if(1>=t.length&&!e.length)return new Sk.builtin.str(t[0]);if(Sk.__future__.python3){const[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("str",["object","encoding","errors"],t,e);if(void 0===n||void 0===i&&void 0===s)return new Sk.builtin.str(n);if(Sk.builtin.bytes.check$encodeArgs("str",i,s),!Sk.builtin.checkBytes(n))throw new Sk.builtin.TypeError("decoding to str: need a bytes-like object, "+Sk.abstr.typeName(n)+" found");return Sk.builtin.bytes.$decode.call(n,i,s)}throw new Sk.builtin.TypeError("str takes at most one argument ("+(t.length+e.length)+" given)")},$r(){let t="'";-1!==this.v.indexOf("'")&&-1===this.v.indexOf('"')&&(t='"');const e=this.v.length;let n=t;for(let r=0;rs||57344<=s)&&!Sk.__future__.python3?n+="\\u"+("000"+s.toString(16)).slice(-4):55296<=s&&!Sk.__future__.python3?(i=this.v.codePointAt(r),r++,s="0000000"+(i=i.toString(16)).toString(16),n=4i||127<=s&&!Sk.__future__.python3?(2>(i=i.charCodeAt(0).toString(16)).length&&(i="0"+i),n+="\\x"+i):n+=i}return new Sk.builtin.str(n+t)},tp$str(){return this.constructor===Sk.builtin.str?this:new Sk.builtin.str(this.v)},tp$iter(){return new m(this)},tp$richcompare(t,e){if(!(t instanceof Sk.builtin.str))return Sk.builtin.NotImplemented.NotImplemented$;switch(e){case"Lt":return this.vt.v;case"GtE":return this.v>=t.v}},mp$subscript(t){let e;if(Sk.misceval.isIndex(t)){if(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError),e=this.sq$length(),0>t&&(t+=e),0>t||t>=e)throw new Sk.builtin.IndexError("string index out of range");return this.codepoints?new Sk.builtin.str(this.v.substring(this.codepoints[t],this.codepoints[t+1])):new Sk.builtin.str(this.v.charAt(t))}if(t instanceof Sk.builtin.slice){let n="";return e=this.sq$length(),this.codepoints?t.sssiter$(e,(t=>{n+=this.v.substring(this.codepoints[t],this.codepoints[t+1])})):t.sssiter$(e,(t=>{n+=this.v.charAt(t)})),new Sk.builtin.str(n)}throw new Sk.builtin.TypeError("string indices must be integers, not "+Sk.abstr.typeName(t))},sq$length(){return this.$hasAstralCodePoints()?this.codepoints.length:this.v.length},sq$concat(t){if(!(t instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("cannot concatenate 'str' and '"+Sk.abstr.typeName(t)+"' objects");return new Sk.builtin.str(this.v+t.v)},sq$repeat(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(t)+"'");if((t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError))*this.v.length>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;let e="";for(let n=0;n' requires string as left operand not "+Sk.abstr.typeName(t));return-1!==this.v.indexOf(t.v)},tp$as_number:!0,nb$remainder:function(t){const e=this.sk$builtinBase;t.constructor===Sk.builtin.tuple||t instanceof Sk.builtin.dict||t instanceof Sk.builtin.mappingproxy||(t=new Sk.builtin.tuple([t]));var n=0,i=this.$jsstr().replace(/%(\([a-zA-Z0-9]+\))?([#0 +\-]+)?(\*|[0-9]+)?(\.(\*|[0-9]+))?[hlL]?([diouxXeEfFgGcrsb%])/g,(function(i,s,r,o,a,l,u){var c,p,h,_,d;o=Sk.builtin.asnum$(o),a=Sk.builtin.asnum$(a),void 0!==s&&""!==s||"%"==u||(c=n++),""===a&&(a=void 0);var f=p=h=_=d=!1;if(r&&(-1!==r.indexOf("-")?_=!0:-1!==r.indexOf("0")&&(d=!0),-1!==r.indexOf("+")?p=!0:-1!==r.indexOf(" ")&&(h=!0),f=-1!==r.indexOf("#")),a&&(a=parseInt(a.substr(1),10)),r=function(t,e){var n;e=Sk.builtin.asnum$(e);var i=!1;if("number"==typeof t){0>t&&(t=-t,i=!0);var s=t.toString(e)}else t instanceof Sk.builtin.float_?(2<(s=t.str$(e,!1)).length&&".0"===s.substr(-2)&&(s=s.substr(0,s.length-2)),i=t.nb$isnegative()):(t instanceof Sk.builtin.int_||t instanceof Sk.builtin.lng)&&(s=t.str$(e,!1),i=t.nb$isnegative());if(Sk.asserts.assert(void 0!==s,"unhandled number format"),t=!1,a)for(n=s.length;ne){for(this.codepoints=[],t=0;te&&t++;return!0}}return this.codepoints=null,!1},sk$asarray(){const t=[];if(this.$hasAstralCodePoints()){var e=this.codepoints;for(let n=0;ni)return new Sk.builtin.str(this.v.replace(t,e));let s=0;return t=this.v.replace(t,(t=>s++e?0:2*(t.length/2-e);for(e=[],0>=n?n=0:e.push(new Sk.builtin.str(this.v.slice(0,t[n-1])));n{if(!(t instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("sequence item "+e.length+": expected str, "+Sk.abstr.typeName(t)+" found");e.push(t.v)})),(()=>new Sk.builtin.str(e.join(this.v))))},$flags:{OneArg:!0},$textsig:"($self, iterable, /)",$doc:"Concatenate any number of strings.\n\nThe string whose method is called is inserted in between each given string.\nThe result is returned as a new string.\n\nExample: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'"},capitalize:{$meth:function(){return new Sk.builtin.str(this.v.charAt(0).toUpperCase()+this.v.slice(1).toLowerCase())},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a capitalized version of the string.\n\nMore specifically, make the first character have upper case and the rest lower\ncase."},title:{$meth:function(){const t=this.v.replace(/[a-z][a-z]*/gi,(t=>t[0].toUpperCase()+t.substr(1).toLowerCase()));return new Sk.builtin.str(t)},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a version of the string where each word is titlecased.\n\nMore specifically, words start with uppercased characters and all remaining\ncased characters have lower case."},center:{$meth:o(!1,!0),$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, width, fillchar=' ', /)",$doc:"Return a centered string of length width.\n\nPadding is done using the specified fill character (default is a space)."},count:{$meth:function(t,e,n){return t=this.get$tgt(t),({start:e,end:n}=a(this,e,n)),n int\n\nReturn the number of non-overlapping occurrences of substring sub in\nstring S[start:end]. Optional arguments start and end are\ninterpreted as in slice notation."},expandtabs:{$meth:function(t){if(!Sk.builtin.checkInt(t))throw new Sk.builtin.TypeError("an integer is required, got type"+Sk.abstr.typeName(t));t=Sk.builtin.asnum$(t);const e=Array(t+1).join(" "),n=this.v.replace(/([^\r\n\t]*)\t/g,((n,i)=>i+e.slice(i.length%t)));return new Sk.builtin.str(n)},$flags:{NamedArgs:["tabsize"],Defaults:[8]},$textsig:"($self, /, tabsize=8)",$doc:"Return a copy where all tab characters are expanded using spaces.\n\nIf tabsize is not given, a tab size of 8 characters is assumed."},find:{$meth:function(t,e,n){return new Sk.builtin.int_(this.find$left(t,e,n))},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.find(sub[, start[, end]]) -> int\n\nReturn the lowest index in S where substring sub is found,\nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},partition:{$meth:r(!1),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the string into three parts using the given separator.\n\nThis will search for the separator in the string. If the separator is found,\nreturns a 3-tuple containing the part before the separator, the separator\nitself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing the original string\nand two empty strings."},index:{$meth:function(t,e,n){if(-1===(t=this.find$left(t,e,n)))throw new Sk.builtin.ValueError("substring not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.index(sub[, start[, end]]) -> int\n\nReturn the lowest index in S where substring sub is found, \nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaises ValueError when the substring is not found."},ljust:{$meth:o(!1,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, width, fillchar=' ', /)",$doc:"Return a left-justified string of length width.\n\nPadding is done using the specified fill character (default is a space)."},lower:{$meth(){return new Sk.builtin.str(this.v.toLowerCase())},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a copy of the string converted to lowercase."},lstrip:{$meth:s(/^\s+/g,(t=>"^["+t+"]+")),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, chars=None, /)",$doc:"Return a copy of the string with leading whitespace removed.\n\nIf chars is given and not None, remove characters in chars instead."},rfind:{$meth(t,e,n){return new Sk.builtin.int_(this.find$right(t,e,n))},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.rfind(sub[, start[, end]]) -> int\n\nReturn the highest index in S where substring sub is found,\nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},rindex:{$meth:function(t,e,n){if(-1===(t=this.find$right(t,e,n)))throw new Sk.builtin.ValueError("substring not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.rindex(sub[, start[, end]]) -> int\n\nReturn the highest index in S where substring sub is found,\nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaises ValueError when the substring is not found."},rjust:{$meth:o(!0,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, width, fillchar=' ', /)",$doc:"Return a right-justified string of length width.\n\nPadding is done using the specified fill character (default is a space)."},rstrip:{$meth:s(/\s+$/g,(t=>"["+t+"]+$")),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, chars=None, /)",$doc:"Return a copy of the string with trailing whitespace removed.\n\nIf chars is given and not None, remove characters in chars instead."},rpartition:{$meth:r(!0),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the string into three parts using the given separator.\n\nThis will search for the separator in the string, starting at the end. If\nthe separator is found, returns a 3-tuple containing the part before the\nseparator, the separator itself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing two empty strings\nand the original string."},splitlines:{$meth:function(t){t=Sk.misceval.isTrue(t);const e=this.v,n=[],i=e.length;var s=0;for(let o=0;o"^["+t+"]+|["+t+"]+$")),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, chars=None, /)",$doc:"Return a copy of the string with leading and trailing whitespace remove.\n\nIf chars is given and not None, remove characters in chars instead."},swapcase:{$meth(){const t=this.v.replace(/[a-z]/gi,(t=>{const e=t.toLowerCase();return e===t?t.toUpperCase():e}));return new Sk.builtin.str(t)},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Convert uppercase characters to lowercase and lowercase characters to uppercase."},upper:{$meth(){return new Sk.builtin.str(this.v.toUpperCase())},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a copy of the string converted to uppercase."},startswith:{$meth:u("startswith",((t,e)=>0===t.indexOf(e))),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.startswith(prefix[, start[, end]]) -> bool\n\nReturn True if S starts with the specified prefix, False otherwise.\nWith optional start, test S beginning at that position.\nWith optional end, stop comparing S at that position.\nprefix can also be a tuple of strings to try."},endswith:{$meth:u("endswith",((t,e)=>-1!==t.indexOf(e,t.length-e.length))),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.endswith(suffix[, start[, end]]) -> bool\n\nReturn True if S ends with the specified suffix, False otherwise.\nWith optional start, test S beginning at that position.\nWith optional end, stop comparing S at that position.\nsuffix can also be a tuple of strings to try."},isascii:{$meth(){return new Sk.builtin.bool(/^[\x00-\x7F]*$/.test(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if all characters in the string are ASCII, False otherwise.\n\nASCII characters have code points in the range U+0000-U+007F.\nEmpty string is ASCII too."},islower:{$meth:function(){return new Sk.builtin.bool(this.v.length&&/[a-z]/.test(this.v)&&!/[A-Z]/.test(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if the string is a lowercase string, False otherwise.\n\nA string is lowercase if all cased characters in the string are lowercase and\nthere is at least one cased character in the string."},isupper:{$meth:function(){return new Sk.builtin.bool(this.v.length&&!/[a-z]/.test(this.v)&&/[A-Z]/.test(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if the string is an uppercase string, False otherwise.\n\nA string is uppercase if all cased characters in the string are uppercase and\nthere is at least one cased character in the string."},istitle:{$meth:function(){const t=this.v;let e,n=!1,i=!1;for(let s=0;s str\n\nReturn a formatted version of S, using substitutions from args and kwargs.\nThe substitutions are identified by braces ('{' and '}')."},__format__:{$meth:Sk.formatting.formatString,$flags:{OneArg:!0},$textsig:"($self, format_spec, /)",$doc:"Return a formatted version of the string as described by format_spec."},__getnewargs__:{$meth(){return new Sk.builtin.tuple(new Sk.builtin.str(this.v))},$flags:{NoArgs:!0},$textsig:null,$doc:null}}}),Sk.exportSymbol("Sk.builtin.str",Sk.builtin.str);var _=/^[A-Za-z0-9]+$/,d=/([.*+?=|\\\/()\[\]\{\}^$])/g,f=/^[\s\xa0]+/;Sk.builtin.str.$py2decode=new Sk.builtin.method_descriptor(Sk.builtin.str,{$name:"decode",$meth(t,e){const n=new Sk.builtin.bytes(this.v);return Sk.builtin.bytes.$decode.call(n,t,e)},$flags:{NamedArgs:["encoding","errors"]}});var m=Sk.abstr.buildIteratorClass("str_iterator",{constructor:function(t){this.$index=0,t.$hasAstralCodePoints()?(this.$seq=t.codepoints,this.tp$iternext=()=>{const e=this.$seq[this.$index];if(void 0!==e)return new Sk.builtin.str(t.v.substring(e,this.$seq[++this.$index]))}):(this.$seq=t.v,this.tp$iternext=()=>{const t=this.$seq[this.$index++];if(void 0!==t)return new Sk.builtin.str(t)})},iternext(){return this.tp$iternext()},methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}}),g={abstract:!0,as:!0,boolean:!0,break:!0,byte:!0,case:!0,catch:!0,char:!0,class:!0,continue:!0,const:!0,debugger:!0,default:!0,delete:!0,do:!0,double:!0,else:!0,enum:!0,export:!0,extends:!0,false:!0,final:!0,finally:!0,float:!0,for:!0,function:!0,goto:!0,if:!0,implements:!0,import:!0,in:!0,instanceof:!0,int:!0,interface:!0,is:!0,long:!0,namespace:!0,native:!0,new:!0,null:!0,package:!0,private:!0,protected:!0,public:!0,return:!0,short:!0,static:!0,super:!0,switch:!0,synchronized:!0,this:!0,throw:!0,throws:!0,transient:!0,true:!0,try:!0,typeof:!0,use:!0,var:!0,void:!0,volatile:!0,while:!0,with:!0,constructor:!0,__defineGetter__:!0,__defineSetter__:!0,apply:!0,arguments:!0,call:!0,caller:!0,eval:!0,hasOwnProperty:!0,isPrototypeOf:!0,__lookupGetter__:!0,__lookupSetter__:!0,__noSuchMethod__:!0,propertyIsEnumerable:!0,prototype:!0,toSource:!0,toLocaleString:!0,toString:!0,unwatch:!0,valueOf:!0,watch:!0,length:!0,name:!0};Sk.builtin.str.reservedWords_=g,Sk.builtin.str.$fixReserved=c},function(t,e){Sk.builtin.func=Sk.abstr.buildNativeClass("function",{constructor:function(t,e,n,i){if(Sk.asserts.assert(this instanceof Sk.builtin.func,"builtin func should be called as a class with `new`"),this.func_code=t,this.func_globals=e||null,this.$name=t.co_name&&t.co_name.v||t.name||"",this.$d=Sk.builtin.dict?new Sk.builtin.dict:void 0,this.$doc=t.co_docstring||Sk.builtin.none.none$,this.$module=Sk.globals&&Sk.globals.__name__||Sk.builtin.none.none$,this.$qualname=t.co_qualname&&t.co_qualname.v||this.$name,void 0!==i)for(let t in i)n[t]=i[t];this.func_closure=n,this.func_annotations=null,this.$memoiseFlags(),this.memoised=t.co_fastcall||null,this.tp$call=t.co_fastcall?t.bind(this):Sk.builtin.func.prototype.tp$call.bind(this)},slots:{tp$getattr:Sk.generic.getAttr,tp$descr_get(t,e){return null===t?this:new Sk.builtin.method(this,t)},$r(){return new Sk.builtin.str("")},tp$call(t,e){if(this.memoised||(this.$memoiseFlags(),this.memoised=!0),void 0===this.co_argcount&&void 0===this.co_varnames&&!this.co_kwargs&&!this.func_closure){if(e&&0!==e.length)throw new Sk.builtin.TypeError(this.$name+"() takes no keyword arguments");return this.func_code.apply(this.func_globals,t)}return t=this.$resolveArgs(t,e),this.func_closure&&t.push(this.func_closure),this.func_code.apply(this.func_globals,t)}},getsets:{__name__:{$get(){return new Sk.builtin.str(this.$name)},$set(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__name__ must be set to a string object");this.$name=t.$jsstr()}},__qualname__:{$get(){return new Sk.builtin.str(this.$qualname)},$set(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__qualname__ must be set to a string object");this.$qualname=t.$jsstr()}},__dict__:Sk.generic.getSetDict,__annotations__:{$get(){return null===this.func_annotations?this.func_annotations=new Sk.builtin.dict([]):Array.isArray(this.func_annotations)&&(this.func_annotations=Sk.abstr.keywordArrayToPyDict(this.func_annotations)),this.func_annotations},$set(t){if(void 0===t||Sk.builtin.checkNone(t))this.func_annotations=new Sk.builtin.dict([]);else{if(!(t instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError("__annotations__ must be set to a dict object");this.func_annotations=t}}},__defaults__:{$get(){return null==this.$defaults?Sk.builtin.none.none$:new Sk.builtin.tuple(this.$defaults)},$set(t){if(void 0===t||Sk.builtin.checkNone(t))this.$defaults=null;else{if(!(t instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("__defaults__ must be set to a tuple object");this.$defaults=t.valueOf()}}},__doc__:{$get(){return this.$doc},$set(t){this.$doc=t||Sk.builtin.none.none$}},__module__:{$get(){return this.$module},$set(t){this.$module=t||Sk.builtin.none.none$}}},proto:{$memoiseFlags(){this.co_varnames=this.func_code.co_varnames,this.co_argcount=this.func_code.co_argcount,void 0===this.co_argcount&&this.co_varnames&&(this.co_argcount=this.co_varnames.length),this.co_kwonlyargcount=this.func_code.co_kwonlyargcount||0,this.co_varargs=this.func_code.co_varargs,this.co_kwargs=this.func_code.co_kwargs,this.$defaults=this.func_code.$defaults,this.$kwdefs=this.func_code.$kwdefs||[]},$resolveArgs:function(t,e){var n=this.co_argcount;void 0===n&&(n=this.co_varnames?this.co_varnames.length:t.length);var i=this.co_varnames||[],s=this.co_kwonlyargcount||0;let r,o=n+s;if(!(0!==s||this.co_kwargs||e&&0!==e.length||this.co_varargs)){if(t.length==n)return t;if(0===t.length&&this.$defaults&&this.$defaults.length===n){for(i=0;i!=this.$defaults.length;i++)t[i]=this.$defaults[i];return t}}this.co_kwargs&&(r=[]);var a=t.length;let l=t.length<=n?t:t.slice(0,n);if(this.co_varargs)t=t.length>l.length?t.slice(l.length):[],l[o]=new Sk.builtin.tuple(t);else if(a>n)throw new Sk.builtin.TypeError(`${this.$name}"() takes ${n} positional ${1==n?"argument":"arguments"} but ${a} ${1==a?"was":"were"} given`);if(e){if(this.func_code.no_kw)throw new Sk.builtin.TypeError(this.$name+"() takes no keyword arguments");for(t=0;t"'"+t+"'")).join(", ")));for(;tt.indexOf(".")&&0>t.indexOf("e")&&0>t.indexOf("E"))return t;var e=0;if(0<=t.indexOf("e")){var n=t.substr(0,t.indexOf("e"));e=t.substr(t.indexOf("e")+1)}else 0<=t.indexOf("E")?(n=t.substr(0,t.indexOf("e")),e=t.substr(t.indexOf("E")+1)):n=t;if(e=parseInt(e,10),0>(t=n.indexOf("."))){if(0<=e){for(;0-e?n.substr(0,n.length+e):0}for(n=0===t?n.substr(1):tn.length;)n+="0";return 0>=t?0:n.substr(0,t)},Sk.exportSymbol("Sk.builtin.asnum$nofloat",Sk.builtin.asnum$nofloat),Sk.builtin.round=function(t,e){if(void 0===t)throw new Sk.builtin.TypeError("a float is required");if(!Sk.__future__.dunder_round){if(!Sk.builtin.checkNumber(t))throw new Sk.builtin.TypeError("a float is required");if(t.round$)return t.round$(e);throw new Sk.builtin.AttributeError(Sk.abstr.typeName(t)+" instance has no attribute '__float__'")}if(void 0!==e&&!Sk.builtin.checkNone(e)&&!Sk.misceval.isIndex(e))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(e)+"' object cannot be interpreted as an index");if(void 0!==(t=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$round)))return void 0!==e?Sk.misceval.callsimArray(t,[e]):Sk.misceval.callsimArray(t,[]);throw new Sk.builtin.TypeError("a float is required")},Sk.builtin.len=function(t){if(!t.sq$length)throw new Sk.builtin.TypeError("object of type '"+Sk.abstr.typeName(t)+"' has no len()");return t=t.sq$length(!0),Sk.misceval.chain(t,(t=>new Sk.builtin.int_(t)))},Sk.builtin.min=function(t,e){let n;const i=t.length;if(!i)throw new Sk.builtin.TypeError("min expected 1 argument, got 0");const[s,r]=Sk.abstr.copyKeywordsToNamedArgs("min",["default","key"],[],e,[null,Sk.builtin.none.none$]);if(1{if(o=t,void 0!==o)return Sk.builtin.checkNone(r)?Sk.misceval.iterFor(n,(t=>{Sk.misceval.richCompareBool(t,o,"Lt")&&(o=t)})):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[o]),(t=>Sk.misceval.iterFor(n,(e=>Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[e]),(n=>{Sk.misceval.richCompareBool(n,t,"Lt")&&(o=e,t=n)}))))))}),(()=>{if(void 0===o){if(null===s)throw new Sk.builtin.ValueError("min() arg is an empty sequence");o=s}return o}))},Sk.builtin.max=function(t,e){let n;const i=t.length;if(!i)throw new Sk.builtin.TypeError("max expected 1 argument, got 0");const[s,r]=Sk.abstr.copyKeywordsToNamedArgs("max",["default","key"],[],e,[null,Sk.builtin.none.none$]);if(1{if(o=t,void 0!==o)return Sk.builtin.checkNone(r)?Sk.misceval.iterFor(n,(t=>{Sk.misceval.richCompareBool(t,o,"Gt")&&(o=t)})):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[o]),(t=>Sk.misceval.iterFor(n,(e=>Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[e]),(n=>{Sk.misceval.richCompareBool(n,t,"Gt")&&(o=e,t=n)}))))))}),(()=>{if(void 0===o){if(null===s)throw new Sk.builtin.ValueError("max() arg is an empty sequence");o=s}return o}))},Sk.builtin.min.co_fastcall=Sk.builtin.max.co_fastcall=1,Sk.builtin.any=function(t){return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(function(t){if(Sk.misceval.isTrue(t))return new Sk.misceval.Break(Sk.builtin.bool.true$)})),(t=>t||Sk.builtin.bool.false$))},Sk.builtin.all=function(t){return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(function(t){if(!Sk.misceval.isTrue(t))return new Sk.misceval.Break(Sk.builtin.bool.false$)})),(t=>t||Sk.builtin.bool.true$))},Sk.builtin.sum=function(t,e){const n=Sk.abstr.iter(t);if(void 0===e)var i=new Sk.builtin.int_(0);else{if(Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("sum() can't sum strings [use ''.join(seq) instead]");i=e}return t=void 0===e||e.constructor===Sk.builtin.int_?Sk.misceval.iterFor(n,(t=>{if(t.constructor!==Sk.builtin.int_)return t.constructor===Sk.builtin.float_?(i=i.nb$float().nb$add(t),new Sk.misceval.Break("float")):(i=Sk.abstr.numberBinOp(i,t,"Add"),new Sk.misceval.Break("slow"));i=i.nb$add(t)})):e.constructor===Sk.builtin.float_?"float":"slow",Sk.misceval.chain(t,(t=>"float"===t?Sk.misceval.iterFor(n,(t=>{if(t.constructor!==Sk.builtin.float_&&t.constructor!==Sk.builtin.int_)return i=Sk.abstr.numberBinOp(i,t,"Add"),new Sk.misceval.Break("slow");i=i.nb$add(t)})):t),(t=>{if("slow"===t)return Sk.misceval.iterFor(n,(t=>{i=Sk.abstr.numberBinOp(i,t,"Add")}))}),(()=>i))},Sk.builtin.zip=function(){var t,e;if(0===arguments.length)return new Sk.builtin.list([]);var n=[];for(e=0;et||1114112<=t)throw new Sk.builtin.ValueError("chr() arg not in range(0x110000)")}else if(0>t||256<=t)throw new Sk.builtin.ValueError("chr() arg not in range(256)");return new Sk.builtin.str(String.fromCodePoint(t))},Sk.builtin.unichr=function(t){if(Sk.builtin.pyCheckArgsLen("unichr",arguments.length,1,1),!Sk.builtin.checkInt(t))throw new Sk.builtin.TypeError("an integer is required");t=Sk.builtin.asnum$(t);try{return new Sk.builtin.str(String.fromCodePoint(t))}catch(t){if(t instanceof RangeError)throw new Sk.builtin.ValueError(t.message);throw t}},Sk.builtin.int2str_=function(t,e,n){let i=Sk.misceval.asIndexOrThrow(t),s=i.toString(e);return s=0>i?"-"+n+s.slice(1):n+s,2!==e&&!Sk.__future__.python3&&(t instanceof Sk.builtin.lng||JSBI.__isBigInt(i))&&(s+="L"),new Sk.builtin.str(s)},Sk.builtin.hex=function(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("hex() argument can't be converted to hex");return Sk.builtin.int2str_(t,16,"0x")},Sk.builtin.oct=function(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("oct() argument can't be converted to hex");return Sk.__future__.octal_number_literal?Sk.builtin.int2str_(t,8,"0o"):Sk.builtin.int2str_(t,8,"0")},Sk.builtin.bin=function(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object can't be interpreted as an index");return Sk.builtin.int2str_(t,2,"0b")},Sk.builtin.dir=function(t){if(void 0!==t)return t=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$dir),Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(t,[]),(t=>Sk.builtin.sorted(t)));throw new Sk.builtin.NotImplementedError("skulpt does not yet support dir with no args")},Sk.builtin.repr=function(t){return t.$r()},Sk.builtin.ascii=function(t){return Sk.misceval.chain(t.$r(),(t=>{let e,n;for(n=0;n=s?(2>(i=s.toString(16)).length&&(i="0"+i),e+="\\x"+i):127s||57344<=s?e+="\\u"+("000"+s.toString(16)).slice(-4):55296<=s?(i=t.v.codePointAt(n),n++,s="0000000"+(i=i.toString(16)).toString(16),e=4t.tp$getattr(e,!0)),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t}));return Sk.misceval.chain(i,(i=>{if(void 0===i){if(void 0!==n)return n;throw new Sk.builtin.AttributeError(t.sk$attrError()+" has no attribute "+Sk.misceval.objectRepr(e))}return i}))},Sk.builtin.setattr=function(t,e,n){if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("attribute name must be string");return Sk.misceval.chain(t.tp$setattr(e,n,!0),(()=>Sk.builtin.none.none$))},Sk.builtin.raw_input=function(t){var e=t||"";return Sk.misceval.chain(Sk.importModule("sys",!1,!0),(function(t){return Sk.inputfunTakesPrompt?Sk.builtin.file.$readline(t.$d.stdin,null,e):Sk.misceval.chain(void 0,(function(){return Sk.misceval.callsimOrSuspendArray(t.$d.stdout.write,[t.$d.stdout,new Sk.builtin.str(e)])}),(function(){return Sk.misceval.callsimOrSuspendArray(t.$d.stdin.readline,[t.$d.stdin])}))}))},Sk.builtin.input=Sk.builtin.raw_input,Sk.builtin.jseval=function(t){return t=Sk.global.eval(Sk.ffi.remapToJs(t)),Sk.ffi.remapToPy(t)},Sk.builtin.jsmillis=function(){return console.warn("jsmillis is deprecated"),(new Date).valueOf()};const n=Sk.abstr.buildNativeClass("code",{constructor:function(t,e){this.compiled=e,this.code=e.code,this.filename=t},slots:{tp$new(t,e){throw new Sk.builtin.NotImplementedError("cannot construct a code object in skulpt")},$r(){return new Sk.builtin.str(", file "+this.filename+">")}}});Sk.builtin.compile=function(t,e,i,s,r,o){return Sk.builtin.pyCheckType("source","str",Sk.builtin.checkString(t)),Sk.builtin.pyCheckType("filename","str",Sk.builtin.checkString(e)),Sk.builtin.pyCheckType("mode","str",Sk.builtin.checkString(i)),t=t.$jsstr(),e=e.$jsstr(),i=i.$jsstr(),Sk.misceval.chain(Sk.compile(t,e,i,!0),(t=>new n(e,t)))},Sk.builtin.exec=function(t,e,i){let s=e&&e.__file__;if(s=void 0!==s&&Sk.builtin.checkString(s)?s.toString():"",Sk.builtin.checkString(t))t=Sk.compile(t.$jsstr(),s,"exec",!0);else if("string"==typeof t)t=Sk.compile(t,s,"exec",!0);else if(!(t instanceof n))throw new Sk.builtin.TypeError("exec() arg 1 must be a string, bytes or code object");Sk.asserts.assert(void 0===e||e.constructor===Object,"internal calls to exec should be called with a javascript object for globals"),Sk.asserts.assert(void 0===i||i.constructor===Object,"internal calls to exec should be called with a javascript object for locals");const r=Sk.globals;return e=e||r,Sk.misceval.chain(t,(t=>Sk.global.eval(t.code)(e,i)),(t=>(Sk.globals=r,t)))},Sk.builtin.eval=function(t,e,i){if(Sk.builtin.checkString(t))t=t.$jsstr();else if(Sk.builtin.checkBytes(t))throw new Sk.builtin.NotImplementedError("bytes for eval is not yet implemented in skulpt");if("string"==typeof t){t=t.trim();var s=Sk.parse("?",t);if(1<(s=Sk.astFromParse(s.cst,"?",s.flags)).body.length||!(s.body[0]instanceof Sk.astnodes.Expr))throw new Sk.builtin.SyntaxError("invalid syntax");t="__final_res__ = "+t}else if(!(t instanceof n))throw new Sk.builtin.TypeError("eval() arg 1 must be a string, bytes or code object");return Sk.misceval.chain(Sk.builtin.exec(t,e,i),(t=>{const e=t.__final_res__||Sk.builtin.none.none$;return delete t.__final_res__,e}))},Sk.builtin.map=function(t,e){var n,i,s=[];if(Sk.builtin.pyCheckArgsLen("map",arguments.length,2),2((t=new Sk.builtin.list(t)).list$sort(e,n,i),t)))},Sk.builtin.filter=function(t,e){var n;if(Sk.builtin.pyCheckArgsLen("filter",arguments.length,2,2),!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(e)+"' object is not iterable");var i=function(){return[]},s=function(t,e){return t.push(e),t},r=function(t){return new Sk.builtin.list(t)};e.ob$type===Sk.builtin.str?(i=function(){return new Sk.builtin.str("")},s=function(t,e){return t.sq$concat(e)},r=function(t){return t}):e.ob$type===Sk.builtin.tuple&&(r=function(t){return new Sk.builtin.tuple(t)});var o=i(),a=Sk.abstr.iter(e);for(n=a.tp$iternext();void 0!==n;n=a.tp$iternext())i=t===Sk.builtin.none.none$?new Sk.builtin.bool(n):Sk.misceval.callsimArray(t,[n]),Sk.misceval.isTrue(i)&&(o=s(o,n));return r(o)},Sk.builtin.hasattr=function(t,e){if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("hasattr(): attribute name must be string");const n=Sk.misceval.tryCatch((()=>t.tp$getattr(e,!0)),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t}));return Sk.misceval.chain(n,(t=>void 0===t?Sk.builtin.bool.false$:Sk.builtin.bool.true$))},Sk.builtin.pow=function(t,e,n){if(void 0===n||Sk.builtin.checkNone(n))return Sk.abstr.numberBinOp(t,e,"Pow");if(!(Sk.builtin.checkInt(t)&&Sk.builtin.checkInt(e)&&Sk.builtin.checkInt(n))){if(Sk.builtin.checkFloat(t)||Sk.builtin.checkComplex(t))return t.nb$power(e,n);throw new Sk.builtin.TypeError("unsupported operand type(s) for ** or pow(): '"+Sk.abstr.typeName(t)+"', '"+Sk.abstr.typeName(e)+"', '"+Sk.abstr.typeName(n)+"'")}return t.nb$power(e,n)},Sk.builtin.quit=function(t){throw t=new Sk.builtin.str(t).v,new Sk.builtin.SystemExit(t)},Sk.builtin.issubclass=function(t,e){if(!Sk.builtin.checkClass(t))throw new Sk.builtin.TypeError("issubclass() arg 1 must be a class");var n=Sk.builtin.checkClass(e);if(!(n||e instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("issubclass() arg 2 must be a class or tuple of classes");if(n)return t.$isSubType(e)?Sk.builtin.bool.true$:Sk.builtin.bool.false$;for(n=0;n{if(void 0===n){if(e)return e;if(void 0!==(n=t.gi$ret)&&n!==Sk.builtin.none.none$)throw new Sk.builtin.StopIteration(n);throw new Sk.builtin.StopIteration}return n}))},Sk.builtin.reload=function(){throw new Sk.builtin.NotImplementedError("reload is not yet implemented")},Sk.builtin.vars=function(){throw new Sk.builtin.NotImplementedError("vars is not yet implemented")},Sk.builtin.apply_=function(){throw new Sk.builtin.NotImplementedError("apply is not yet implemented")},Sk.builtin.buffer=function(){throw new Sk.builtin.NotImplementedError("buffer is not yet implemented")},Sk.builtin.coerce=function(){throw new Sk.builtin.NotImplementedError("coerce is not yet implemented")},Sk.builtin.intern=function(){throw new Sk.builtin.NotImplementedError("intern is not yet implemented")}},function(t,e){function n(t,e){return e=new this.constructor,this.ht$type&&a.call(e),e.args=new Sk.builtin.tuple(t.slice(0)),e}function i(t,e){Sk.abstr.checkNoKwargs(Sk.abstr.typeName(this),e),this.args=new Sk.builtin.tuple(t.slice(0))}function s(){return 1>=this.args.v.length?new Sk.builtin.str(this.args.v[0]):this.args.$r()}function r(t,e,n,s,r,o){r||(r=[]);const a=s?{}:{sk$solidBase:!1};return n={tp$init:s||i,tp$doc:n},o&&(n.tp$str=o),Sk.abstr.buildNativeClass(e,{base:t,constructor:function(...e){t.apply(this,e),r.forEach(((t,n)=>{this["$"+t]=Sk.ffi.remapToPy(e[n])}))},slots:n,getsets:Object.fromEntries(r.map((t=>[t,{$get(){return this["$"+t]||Sk.builtin.none.none$},$set(e){this["$"+t]=e||Sk.builtin.none.none$}}]))),flags:a})}function o(t,e,s){const r=t.prototype.tp$init;return s={tp$doc:s,tp$init:r},r===i&&(s.tp$new=n),Sk.abstr.buildNativeClass(e,{base:t,constructor:function(...e){t.apply(this,e)},slots:s,flags:{sk$solidBase:!1}})}const a=Sk.abstr.buildNativeClass("BaseException",{constructor:function t(e,...n){Sk.asserts.assert(this instanceof t,"bad call to exception constructor, use 'new'"),"string"==typeof e&&(e=new Sk.builtin.str(e)),this.args=new Sk.builtin.tuple(e?[e]:[]),this.traceback=2<=n.length?[{filename:n[0]||"",lineno:n[1]}]:[],this.context=this.cause=null,this.$d=new Sk.builtin.dict},slots:{tp$getattr:Sk.generic.getAttr,tp$doc:"Common base class for all exceptions",tp$new:n,tp$init:i,$r(){let t=this.tp$name;return t+="("+this.args.v.map((t=>Sk.misceval.objectRepr(t))).join(", ")+")",new Sk.builtin.str(t)},tp$str:s},getsets:{args:{$get(){return this.args},$set(t){if(void 0===t)throw new Sk.builtin.TypeError("args may not be deleted");this.args=new Sk.builtin.tuple(t)}},__cause__:{$get(){return this.$cause||Sk.builtin.none.none$},$set(t){if(!(Sk.builtin.checkNone(t)||t instanceof Sk.builtin.BaseException))throw new B("exception cause must be None or derive from BaseException");this.$cause=t}},__dict__:Sk.generic.getSetDict},proto:{toString(){let t=this.tp$name;return t+=": "+this.tp$str().v,0!==this.traceback.length?t+" on line "+this.traceback[0].lineno:t+" at "}}});t=o(a,"SystemExit","Request to exit from the interpreter."),e=o(a,"KeyboardInterrupt","Program interrupted by user.");const l=o(a,"GeneratorExit","Request that a generator exit."),u=o(a,"Exception","Common base class for all non-exit exceptions."),c=r(u,"StopIteration","Signal the end from iterator.__next__().",(function(t,e){i.call(this,t,e),this.$value=t[0]||Sk.builtin.none.none$}),["value"]),p=o(u,"StopAsyncIteration","Signal the end from iterator.__anext__()."),h=o(u,"ArithmeticError","Base class for arithmetic errors."),_=o(h,"FloatingPointError","Floating point operation failed."),d=o(h,"OverflowError","Result too large to be represented."),f=o(h,"ZeroDivisionError","Second argument to a division or modulo operation was zero."),m=o(u,"AssertionError","Assertion failed."),g=o(u,"AttributeError","Attribute not found."),b=o(u,"BufferError","Buffer error."),S=o(u,"EOFError","Read beyond end of file."),k=r(u,"ImportError","Import can't find module, or can't find name in module.",(function(t,e){i.call(this,t);const[n,s]=Sk.abstr.copyKeywordsToNamedArgs("ImportError",["name","path"],[],e);this.$name=n,this.$path=s,1===t.length&&(this.$msg=t[0])}),["msg","name","path"],(function(){return Sk.builtin.checkString(this.$msg)?this.$msg:s.call(this)})),T=o(k,"ModuleNotFoundError","Module not found."),y=o(u,"LookupError","Base class for lookup errors."),v=o(y,"IndexError","Sequence index out of range."),$=r(y,"KeyError","Mapping key not found.",null,null,(function(){return 1===this.args.v.length?this.args.v[0].$r():s.call(this)})),w=o(u,"MemoryError","Out of memory."),E=o(u,"NameError","Name not found globally."),I=o(E,"UnboundLocalError","Local name referenced but not bound to a value."),A=r(u,"OSError","Base class for I/O related errors.",(function(t,e){i.call(this,t,e)})),O=o(A,"FileNotFoundError","File not found."),M=o(A,"TimeoutError","Timeout expired."),C=o(u,"ReferenceError","Weak ref proxy used after referent went away."),R=o(u,"RuntimeError","Unspecified run-time error."),x=o(R,"NotImplementedError","Method or function hasn't been implemented yet."),N=o(R,"RecursionError","Recursion limit exceeded."),L=r(u,"SyntaxError","Invalid syntax.",(function(t,e){i.call(this,t,e),1<=t.length&&(this.$msg=t[0]),2===t.length&&(t=new Sk.builtin.tuple(t[1]).v,this.$filename=t[0],this.$lineno=t[1],this.$offset=t[2],this.$text=t[3])}),["msg","filename","lineno","offset","text"],(function(){return s.call(this)})),D=o(L,"IndentationError","Improper indentation."),F=o(D,"TabError","Improper mixture of spaces and tabs."),P=o(u,"SystemError","Internal error in the Skulpt interpreter."),B=o(u,"TypeError","Inappropriate argument type."),V=o(u,"ValueError","Inappropriate argument value (of correct type)."),U=o(V,"UnicodeError","Unicode related error."),Y=o(U,"UnicodeDecodeError","Unicode decoding error."),j=o(U,"UnicodeEncodeError","Unicode encoding error.");Object.assign(Sk.builtin,{BaseException:a,SystemExit:t,KeyboardInterrupt:e,GeneratorExit:l,Exception:u,StopIteration:c,StopAsyncIteration:p,ArithmeticError:h,FloatingPointError:_,OverflowError:d,ZeroDivisionError:f,AssertionError:m,AttributeError:g,BufferError:b,EOFError:S,ImportError:k,ModuleNotFoundError:T,LookupError:y,IndexError:v,KeyError:$,MemoryError:w,NameError:E,UnboundLocalError:I,OSError:A,IOError:A,FileNotFoundError:O,TimeoutError:M,ReferenceError:C,RuntimeError:R,NotImplementedError:x,RecursionError:N,SyntaxError:L,IndentationError:D,TabError:F,SystemError:P,TypeError:B,ValueError:V,UnicodeError:U,UnicodeDecodeError:Y,UnicodeEncodeError:j}),Sk.builtin.SuspensionError=o(u,"SuspensionError","Unsupported Suspension in code."),Sk.builtin.ExternalError=Sk.abstr.buildNativeClass("ExternalError",{constructor:function(...t){if(this.nativeError=t[0],!Sk.builtin.checkString(this.nativeError)&&(t[0]=this.nativeError.toString(),t[0].startsWith("RangeError: Maximum call")))return t[0]="Maximum call stack size exceeded",new N(...t);u.apply(this,t)},base:u}),Sk.builtin.getExcInfo=function(t){return new Sk.builtin.tuple([t.ob$type||Sk.builtin.none.none$,t,Sk.builtin.none.none$])}},function(t,e){Sk.builtin.method=Sk.abstr.buildNativeClass("method",{constructor:function(t,e){Sk.asserts.assert(this instanceof Sk.builtin.method,"bad call to method constructor, use 'new'"),this.im_func=t,this.im_self=e,this.im_call=t.tp$call},slots:{$r(){let t=this.im_func.tp$getattr(Sk.builtin.str.$qualname)||this.im_func.tp$getattr(Sk.builtin.str.$name);return t=t&&t.v||"?",new Sk.builtin.str("")},tp$hash(){return Sk.abstr.objectHash(this.im_self)+Sk.abstr.objectHash(this.im_func)},tp$call(t,e){var n=this.im_call;if(void 0===n)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this.im_func)+"' object is not callable");return t=[this.im_self,...t],n.call(this.im_func,t,e)},tp$new(t,e){if(Sk.abstr.checkNoKwargs("method",e),Sk.abstr.checkArgsLen("method",t,2,2),e=t[0],t=t[1],!Sk.builtin.checkCallable(e))throw new Sk.builtin.TypeError("first argument must be callable");if(Sk.builtin.checkNone(t))throw new Sk.builtin.TypeError("self must not be None");return new Sk.builtin.method(e,t)},tp$richcompare(t,e){if("Eq"!=e&&"NotEq"!=e||!(t instanceof Sk.builtin.method))return Sk.builtin.NotImplemented.NotImplemented$;let n;try{n=Sk.misceval.richCompareBool(this.im_self,t.im_self,"Eq",!1)&&this.im_func==t.im_func}catch(t){n=!1}return"Eq"==e?n:!n},tp$descr_get(t,e){return this},tp$getattr(t,e){const n=Sk.abstr.lookupSpecial(this,t);return void 0!==n?n:this.im_func.tp$getattr(t,e)}},getsets:{__func__:{$get(){return this.im_func}},__self__:{$get(){return this.im_self}},__doc__:{$get(){return this.im_func.tp$getattr(Sk.builtin.str.$doc)}}},flags:{sk$unacceptableBase:!0}})},function(t,e){function n(t){if(null!=t){if(!0===t.sk$int)return t.v;if(void 0!==t.nb$index)return t.nb$index();if("number"==typeof t&&Number.isInteger(t))return t}}function i(t,e){const i=n(t);if(void 0!==i)return i;throw e=(e||"'{tp$name}' object cannot be interpreted as an integer").replace("{tp$name}",Sk.abstr.typeName(t)),new Sk.builtin.TypeError(e)}Sk.misceval={},Sk.misceval.Suspension=function(t,e,n){this.$isSuspension=!0,void 0!==t&&void 0!==e&&(this.resume=function(){return t(e.resume())}),this.child=e,this.optional=void 0!==e&&e.optional,this.data=void 0===n&&void 0!==e?e.data:n},Sk.exportSymbol("Sk.misceval.Suspension",Sk.misceval.Suspension),Sk.misceval.retryOptionalSuspensionOrThrow=function(t,e){for(;t instanceof Sk.misceval.Suspension;){if(!t.optional){e=new Sk.builtin.SuspensionError(e||"Cannot call a function that blocks or suspends here");const n=[];for(;null!=t;)t.$lineno&&n.push({filename:t.$filename,lineno:t.$lineno,colno:t.$colno}),t=t.child;throw n.reverse(),e.traceback.push(...n),e}t=t.resume()}return t},Sk.exportSymbol("Sk.misceval.retryOptionalSuspensionOrThrow",Sk.misceval.retryOptionalSuspensionOrThrow),Sk.misceval.isIndex=function(t){return null!=t&&(void 0!==t.nb$index||"number"==typeof t&&Number.isInteger(t))},Sk.exportSymbol("Sk.misceval.isIndex",Sk.misceval.isIndex),Sk.misceval.asIndex=n,Sk.misceval.asIndexSized=function(t,e,n){if("number"==typeof(n=i(t,n)))return n;if(null==e)return JSBI.lessThan(n,JSBI.__ZERO)?-Number.MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER;throw new e("cannot fit '"+Sk.abstr.typeName(t)+"' into an index-sized integer")},Sk.misceval.asIndexOrThrow=i,Sk.misceval.applySlice=function(t,e,n,i){return Sk.abstr.objectGetItem(t,new Sk.builtin.slice(e,n,null),i)},Sk.exportSymbol("Sk.misceval.applySlice",Sk.misceval.applySlice),Sk.misceval.assignSlice=function(t,e,n,i,s){return e=new Sk.builtin.slice(e,n),null===i?Sk.abstr.objectDelItem(t,e):Sk.abstr.objectSetItem(t,e,i,s)},Sk.exportSymbol("Sk.misceval.assignSlice",Sk.misceval.assignSlice),Sk.misceval.arrayFromArguments=function(t){var e;if(1!=t.length)return t;var n=t[0];if(n instanceof Sk.builtin.set?n=n.tp$iter().$obj:n instanceof Sk.builtin.dict&&(n=Sk.builtin.dict.prototype.keys.func_code(n)),n instanceof Sk.builtin.list||n instanceof Sk.builtin.tuple)return n.v;if(Sk.builtin.checkIterable(n)){for(t=[],e=(n=Sk.abstr.iter(n)).tp$iternext();void 0!==e;e=n.tp$iternext())t.push(e);return t}throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(n)+"' object is not iterable")},Sk.exportSymbol("Sk.misceval.arrayFromArguments",Sk.misceval.arrayFromArguments),Sk.misceval.iterator=Sk.abstr.buildIteratorClass("iterator",{constructor:function(t,e){this.tp$iternext=e?t:function(e){let n=t();return e||void 0===n||!n.$isSuspension?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)}},iternext:function(t){return this.tp$iternext(t)},flags:{sk$unacceptableBase:!0}}),Sk.misceval.swappedOp_={Eq:"Eq",NotEq:"NotEq",Lt:"Gt",LtE:"GtE",Gt:"Lt",GtE:"LtE"},Sk.misceval.opSymbols={Eq:"==",NotEq:"!=",Lt:"<",LtE:"<=",Gt:">",GtE:">=",Is:"is",IsNot:"is not",In_:"in",NotIn:"not in"},Sk.misceval.richCompareBool=function(t,e,n,i){Sk.asserts.assert(t.sk$object&&e.sk$object,"JS object passed to richCompareBool");var s=t.ob$type,r=e.ob$type,o=r!==s&&void 0===r.sk$baseClass&&r.$isSubType(s);if(!Sk.__future__.python3&&s!==r&&("GtE"===n||"Gt"===n||"LtE"===n||"Lt"===n)){var a=[Sk.builtin.float_,Sk.builtin.int_,Sk.builtin.lng,Sk.builtin.bool];const i=[Sk.builtin.dict,Sk.builtin.enumerate,Sk.builtin.filter_,Sk.builtin.list,Sk.builtin.map_,Sk.builtin.str,Sk.builtin.tuple,Sk.builtin.zip_];var l=a.indexOf(s);if(s=i.indexOf(s),a=a.indexOf(r),r=i.indexOf(r),t===Sk.builtin.none.none$)switch(n){case"Lt":case"LtE":return!0;case"Gt":case"GtE":return!1}if(e===Sk.builtin.none.none$)switch(n){case"Lt":case"LtE":return!1;case"Gt":case"GtE":return!0}if(-1!==l&&-1!==r)switch(n){case"Lt":case"LtE":return!0;case"Gt":case"GtE":return!1}if(-1!==s&&-1!==a)switch(n){case"Lt":case"LtE":return!1;case"Gt":case"GtE":return!0}if(-1!==s&&-1!==r)switch(n){case"Lt":return sr;case"GtE":return s>=r}}if("Is"===n)return t===e;if("IsNot"===n)return t!==e;if("In"===n)return Sk.misceval.chain(Sk.abstr.sequenceContains(e,t,i),Sk.misceval.isTrue);if("NotIn"===n)return Sk.misceval.chain(Sk.abstr.sequenceContains(e,t,i),(function(t){return!Sk.misceval.isTrue(t)}));if(l=(r={Eq:"ob$eq",NotEq:"ob$ne",Gt:"ob$gt",GtE:"ob$ge",Lt:"ob$lt",LtE:"ob$le"})[n],o&&(i=e[i=r[Sk.misceval.swappedOp_[n]]](t))!==Sk.builtin.NotImplemented.NotImplemented$||(i=t[l](e))!==Sk.builtin.NotImplemented.NotImplemented$||!o&&(i=e[i=r[Sk.misceval.swappedOp_[n]]](t))!==Sk.builtin.NotImplemented.NotImplemented$)return Sk.misceval.isTrue(i);if(!Sk.__future__.python3){if(o=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$cmp))try{if(i=Sk.misceval.callsimArray(o,[e]),Sk.builtin.checkNumber(i)){if(i=Sk.builtin.asnum$(i),"Eq"===n)return 0===i;if("NotEq"===n)return 0!==i;if("Lt"===n)return 0>i;if("Gt"===n)return 0=i;if("GtE"===n)return 0<=i}if(i!==Sk.builtin.NotImplemented.NotImplemented$)throw new Sk.builtin.TypeError("comparison did not return an int")}catch(t){throw new Sk.builtin.TypeError("comparison did not return an int")}if(o=Sk.abstr.lookupSpecial(e,Sk.builtin.str.$cmp))try{if(i=Sk.misceval.callsimArray(o,[t]),Sk.builtin.checkNumber(i)){if(i=Sk.builtin.asnum$(i),"Eq"===n)return 0===i;if("NotEq"===n)return 0!==i;if("Lt"===n)return 0i;if("LtE"===n)return 0<=i;if("GtE"===n)return 0>=i}if(i!==Sk.builtin.NotImplemented.NotImplemented$)throw new Sk.builtin.TypeError("comparison did not return an int")}catch(t){throw new Sk.builtin.TypeError("comparison did not return an int")}if(t===Sk.builtin.none.none$&&e===Sk.builtin.none.none$){if("Eq"===n)return t.v===e.v;if("NotEq"===n)return t.v!==e.v;if("Gt"===n)return t.v>e.v;if("GtE"===n)return t.v>=e.v;if("Lt"===n)return t.v";throw t}},Sk.exportSymbol("Sk.misceval.objectRepr",Sk.misceval.objectRepr),Sk.misceval.opAllowsEquality=function(t){switch(t){case"LtE":case"Eq":case"GtE":return!0}return!1},Sk.exportSymbol("Sk.misceval.opAllowsEquality",Sk.misceval.opAllowsEquality),Sk.misceval.isTrue=function(t){return!0===t||t===Sk.builtin.bool.true$||!1!==t&&t!==Sk.builtin.bool.false$&&null!=t&&(t.nb$bool?t.nb$bool():t.sq$length?0!==t.sq$length():!!t)},Sk.exportSymbol("Sk.misceval.isTrue",Sk.misceval.isTrue),Sk.misceval.softspace_=!1,Sk.misceval.print_=function(t){Sk.misceval.softspace_&&("\n"!==t&&Sk.output(" "),Sk.misceval.softspace_=!1);var e=new Sk.builtin.str(t);return Sk.misceval.chain(Sk.importModule("sys",!1,!0),(function(t){return Sk.misceval.apply(t.$d.stdout.write,void 0,void 0,void 0,[t.$d.stdout,e])}),(function(){var t;(t=0===e.v.length)||(t=!("\n"===(t=e.v[e.v.length-1])||"\t"===t||"\r"===t)),(t||" "===e.v[e.v.length-1])&&(Sk.misceval.softspace_=!0)}))},Sk.exportSymbol("Sk.misceval.print_",Sk.misceval.print_),Sk.misceval.loadname=function(t,e){if(void 0!==(e=e[t]))return e;if(void 0!==(e=Sk.builtins[t]))return e;throw new Sk.builtin.NameError("name '"+Sk.unfixReserved(t)+"' is not defined")},Sk.exportSymbol("Sk.misceval.loadname",Sk.misceval.loadname),Sk.misceval.call=function(t,e,n,i,s){return s=Array.prototype.slice.call(arguments,4),Sk.misceval.apply(t,e,n,i,s)},Sk.exportSymbol("Sk.misceval.call",Sk.misceval.call),Sk.misceval.callAsync=function(t,e,n,i,s,r){return r=Array.prototype.slice.call(arguments,5),Sk.misceval.applyAsync(t,e,n,i,s,r)},Sk.exportSymbol("Sk.misceval.callAsync",Sk.misceval.callAsync),Sk.misceval.callOrSuspend=function(t,e,n,i,s){return s=Array.prototype.slice.call(arguments,4),Sk.misceval.applyOrSuspend(t,e,n,i,s)},Sk.exportSymbol("Sk.misceval.callOrSuspend",Sk.misceval.callOrSuspend),Sk.misceval.callsim=function(t,e){return e=Array.prototype.slice.call(arguments,1),Sk.misceval.apply(t,void 0,void 0,void 0,e)},Sk.exportSymbol("Sk.misceval.callsim",Sk.misceval.callsim),Sk.misceval.callsimArray=function(t,e,n){return e=e||[],Sk.misceval.retryOptionalSuspensionOrThrow(Sk.misceval.callsimOrSuspendArray(t,e,n))},Sk.exportSymbol("Sk.misceval.callsimArray",Sk.misceval.callsimArray),Sk.misceval.callsimAsync=function(t,e,n){return n=Array.prototype.slice.call(arguments,2),Sk.misceval.applyAsync(t,e,void 0,void 0,void 0,n)},Sk.exportSymbol("Sk.misceval.callsimAsync",Sk.misceval.callsimAsync),Sk.misceval.callsimOrSuspend=function(t,e){return e=Array.prototype.slice.call(arguments,1),Sk.misceval.applyOrSuspend(t,void 0,void 0,void 0,e)},Sk.exportSymbol("Sk.misceval.callsimOrSuspend",Sk.misceval.callsimOrSuspend),Sk.misceval.callsimOrSuspendArray=function(t,e,n){return e=e||[],void 0!==t&&t.tp$call?t.tp$call(e,n):Sk.misceval.applyOrSuspend(t,void 0,void 0,n,e)},Sk.exportSymbol("Sk.misceval.callsimOrSuspendArray",Sk.misceval.callsimOrSuspendArray),Sk.misceval.apply=function(t,e,n,i,s){return(t=Sk.misceval.applyOrSuspend(t,e,n,i,s))instanceof Sk.misceval.Suspension?Sk.misceval.retryOptionalSuspensionOrThrow(t):t},Sk.exportSymbol("Sk.misceval.apply",Sk.misceval.apply),Sk.misceval.asyncToPromise=function(t,e){return new Promise((function(n,i){try{!function t(s){try{for(var r=function(){try{t(s.resume())}catch(t){i(t)}},o=function(t){try{s.data.result=t,r()}catch(t){i(t)}},a=function(t){try{s.data.error=t,r()}catch(t){i(t)}};s instanceof Sk.misceval.Suspension;){var l=e&&(e[s.data.type]||e["*"]);if(l){var u=l(s);if(u)return void u.then(t,i)}if("Sk.promise"==s.data.type)return void s.data.promise.then(o,a);if("Sk.yield"==s.data.type)return void Sk.global.setImmediate(r);if("Sk.delay"==s.data.type)return void Sk.global.setImmediate(r);if(!s.optional)throw new Sk.builtin.SuspensionError("Unhandled non-optional suspension of type '"+s.data.type+"'");s=s.resume()}n(s)}catch(t){i(t)}}(t())}catch(t){i(t)}}))},Sk.exportSymbol("Sk.misceval.asyncToPromise",Sk.misceval.asyncToPromise),Sk.misceval.applyAsync=function(t,e,n,i,s,r){return Sk.misceval.asyncToPromise((function(){return Sk.misceval.applyOrSuspend(e,n,i,s,r)}),t)},Sk.exportSymbol("Sk.misceval.applyAsync",Sk.misceval.applyAsync),Sk.misceval.chain=function(t,e){for(var n,i,s=1,r=t;;){if(s==arguments.length)return r;if(r&&r.$isSuspension)break;r=arguments[s](r),s++}for(i=Array(arguments.length-s),n=0;nt[i++]},e,n)},Sk.misceval.arrayFromIterable=function(t,e){if(void 0===t)return[];if(void 0===t.ht$type&&void 0!==t.sk$asarray)return t.sk$asarray();const n=[];return t=Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{n.push(t)})),(()=>n)),e?t:Sk.misceval.retryOptionalSuspensionOrThrow(t)},Sk.misceval.Break=function(t){if(!(this instanceof Sk.misceval.Break))return new Sk.misceval.Break(t);this.brValue=t},Sk.exportSymbol("Sk.misceval.Break",Sk.misceval.Break),Sk.misceval.applyOrSuspend=function(t,e,n,i,s){var r;if(null==t||t===Sk.builtin.none.none$)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not callable");"function"==typeof t&&void 0===t.tp$call&&(t=new Sk.builtin.func(t));var o=t.tp$call;if(void 0!==o){if(n)for(r=(n=n.tp$iter()).tp$iternext();void 0!==r;r=n.tp$iternext())s.push(r);if(e)for(r=(n=Sk.abstr.iter(e)).tp$iternext();void 0!==r;r=n.tp$iternext()){if(!Sk.builtin.checkString(r))throw new Sk.builtin.TypeError("Function keywords must be strings");i.push(r.v),i.push(Sk.abstr.objectGetItem(e,r,!1))}return o.call(t,s,i,e)}if(void 0!==(o=t.__call__))return s.unshift(t),Sk.misceval.apply(o,e,n,i,s);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not callable")},Sk.exportSymbol("Sk.misceval.applyOrSuspend",Sk.misceval.applyOrSuspend),Sk.misceval.promiseToSuspension=function(t){var e=new Sk.misceval.Suspension;return e.resume=function(){if(e.data.error)throw e.data.error;return e.data.result},e.data={type:"Sk.promise",promise:t},e},Sk.exportSymbol("Sk.misceval.promiseToSuspension",Sk.misceval.promiseToSuspension),Sk.misceval.buildClass=function(t,e,n,i,s,r){n=new Sk.builtin.str(n);const o=new Sk.builtin.tuple(i);let a;i=i||[];var l=!0;const u=(r=r||[]).indexOf("metaclass");-1{if(t=t.ob$type,!n.$isSubType(t)){if(!t.$isSubType(n))throw new Sk.builtin.TypeError("metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases");n=t}})),n}(a,i));let c=null;a!==Sk.builtin.type&&([c,h]=function(t,e,n,i,s){const r=t.tp$getattr(Sk.builtin.str.$prepare);let o,a=null;if(void 0===r)return[a,o];if(a=Sk.misceval.callsimArray(r,[e,n],i),!Sk.builtin.checkMapping(a))throw new Sk.builtin.TypeError(s?t.prototype.tp$name:".__prepare__() must return a mapping not '"+Sk.abstr.typeName(a)+"'");return o={get(t,e){try{return Sk.abstr.objectGetItem(t,new Sk.builtin.str(Sk.unfixReserved(e)))}catch(t){if(!(t instanceof Sk.builtin.KeyError))throw t}},set:(t,e,n)=>(Sk.abstr.objectSetItem(t,new Sk.builtin.str(Sk.unfixReserved(e)),n),!0)},[a,o]}(a,n,o,r,l)),i=!1;let p={};if(null===c)c=new Sk.builtin.dict([]);else if(c.constructor===Sk.builtin.dict||function(){const t=(Sk.global.navigator||{}).userAgent||"";return-1{Sk.abstr.objectSetItem(c,new Sk.builtin.str(t),p[t])})),Sk.misceval.callsimOrSuspendArray(a,[n,o,c],r)},Sk.exportSymbol("Sk.misceval.buildClass",Sk.misceval.buildClass)},function(t,e){Sk.builtin.callable_iter_=Sk.abstr.buildIteratorClass("callable_iterator",{constructor:function(t,e){if(!Sk.builtin.checkCallable(t))throw new Sk.builtin.TypeError("iter(v, w): v must be callable");this.$callable=t,this.$sentinel=e,this.$flag=!1},iternext(t){if(!0!==this.$flag){if(t)return t=Sk.misceval.callsimOrSuspendArray(this.$callable,[]),Sk.misceval.chain(t,(t=>{if(!Sk.misceval.richCompareBool(t,this.$sentinel,"Eq",!0))return t;this.$flag=!0}));if(t=Sk.misceval.callsimArray(this.$callable,[]),!Sk.misceval.richCompareBool(t,this.$sentinel,"Eq",!1))return t;this.$flag=!0}},flags:{sk$unacceptableBase:!0}}),Sk.builtin.seq_iter_=Sk.abstr.buildIteratorClass("iterator",{constructor:function(t){this.$index=0,this.$seq=t},iternext(t){let e;return e=Sk.misceval.tryCatch((()=>this.$seq.mp$subscript(new Sk.builtin.int_(this.$index++),t)),(t=>{if(!(t instanceof Sk.builtin.IndexError||t instanceof Sk.builtin.StopIteration))throw t;this.gi$ret=t.$value||Sk.builtin.none.none$})),t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)},methods:{__length_hint__:{$flags:{NoArgs:!0},$meth(){if(this.$seq.sq$length)return this.$seq.sq$length()-this.$index;throw new Sk.builtin.NotImplementedError("len is not implemented for "+Sk.abstr.typeName(this.$seq))}}},flags:{sk$unacceptableBase:!0}}),Sk.exportSymbol("Sk.builtin.callable_iter_",Sk.builtin.callable_iter_)},function(t,e){Sk.builtin.list=Sk.abstr.buildNativeClass("list",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.list,"bad call to list, use 'new' with an Array of python objects"),this.v=t,this.in$repr=!1},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$hash:Sk.builtin.none.none$,tp$doc:"Built-in mutable sequence.\n\nIf no argument is given, the constructor creates a new empty list.\nThe argument must be an iterable if specified.",tp$new:Sk.generic.new,tp$init(t,e){return Sk.abstr.checkNoKwargs("list",e),Sk.abstr.checkArgsLen("list",t,0,1),Sk.misceval.chain(Sk.misceval.arrayFromIterable(t[0],!0),(t=>{this.v=t}))},$r(){if(this.in$repr)return new Sk.builtin.str("[...]");this.in$repr=!0;const t=this.v.map((t=>Sk.misceval.objectRepr(t)));return this.in$repr=!1,new Sk.builtin.str("["+t.join(", ")+"]")},tp$richcompare:Sk.generic.seqCompare,tp$iter(){return new n(this)},sq$length(){return this.v.length},sq$concat(t){if(!(t instanceof Sk.builtin.list))throw new Sk.builtin.TypeError("can only concatenate list to list");return new Sk.builtin.list(this.v.concat(t.v))},sq$contains(t){for(let e=this.tp$iter(),n=e.tp$iternext();void 0!==n;n=e.tp$iternext())if(n===t||Sk.misceval.richCompareBool(n,t,"Eq"))return!0;return!1},sq$repeat(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(t)+"'");if((t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError))*this.v.length>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;const e=[];for(let n=0;n{e.push(this.v[t])})),new Sk.builtin.list(e)}throw new Sk.builtin.TypeError("list indices must be integers or slices, not "+Sk.abstr.typeName(t))},mp$ass_subscript(t,e){void 0===e?this.del$subscript(t):this.ass$subscript(t,e)},sq$inplace_concat(t){return t===this?(this.v.push(...this.v),this):Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.v.push(t)})),(()=>this))},sq$inplace_repeat(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(t)+"'");t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError);const e=this.v.length;if(0>=t)this.v.length=0;else if(t*e>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;for(let n=1;n{this.v.push(t)})),(()=>Sk.builtin.none.none$))},$flags:{OneArg:!0},$textsig:"($self, iterable, /)",$doc:"Extend list by appending elements from the iterable."},pop:{$meth(t){t=void 0===t?this.v.length-1:Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError),t=this.list$inRange(t,"pop index out of range");const e=this.v[t];return this.v.splice(t,1),e},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, index=-1, /)",$doc:"Remove and return item at index (default last).\n\nRaises IndexError if list is empty or index is out of range."},remove:{$meth(t){if(-1===(t=this.list$indexOf(t)))throw new Sk.builtin.ValueError("list.remove(x): x not in list");return this.v.splice(t,1),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:"($self, value, /)",$doc:"Remove first occurrence of value.\n\nRaises ValueError if the value is not present."},sort:{$meth(t,e){if(t.length)throw new Sk.builtin.TypeError("sort() takes no positional arguments");const[n,i]=Sk.abstr.copyKeywordsToNamedArgs("sort",["key","reverse"],t,e,[Sk.builtin.none.none$,Sk.builtin.bool.false$]);return this.list$sort(void 0,n,i)},$flags:{FastCall:!0},$textsig:"($self, /, *, key=None, reverse=False)",$doc:"Stable sort *IN PLACE*."},index:{$meth(t,e,n){if(void 0!==e&&!Sk.misceval.isIndex(e)||void 0!==n&&!Sk.misceval.isIndex(n))throw new Sk.builtin.TypeError("slice indices must be integers or have an __index__ method");if(-1===(e=this.list$indexOf(t,e,n)))throw new Sk.builtin.ValueError(Sk.misceval.objectRepr(t)+" is not in list");return new Sk.builtin.int_(e)},$flags:{MinArgs:1,MaxArgs:3},$textsig:"($self, value, start=0, stop=sys.maxsize, /)",$doc:"Return first index of value.\n\nRaises ValueError if the value is not present."},count:{$meth(t){let e=0;const n=this.v.length;for(let i=0;it&&(t+=this.v.length),0<=t&&t{n.push(t)})),!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("must assign iterable to extended slice");if(t=Sk.misceval.arrayFromIterable(e),n.length!==t.length)throw new Sk.builtin.ValueError("attempt to assign sequence of size "+t.length+" to extended slice of size "+n.length);for(e=0;e{this.v.splice(t-n,1),n+=e}))},valueOf(){return this.v}}}),Sk.exportSymbol("Sk.builtin.list",Sk.builtin.list),Sk.builtin.list.py2$methods={sort:{$name:"sort",$meth(t,e){const[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("sort",["cmp","key","reverse"],t,e,[Sk.builtin.none.none$,Sk.builtin.none.none$,Sk.builtin.bool.false$]);return this.list$sort(n,i,s)},$flags:{FastCall:!0},$textsig:"($self, cmp=None, key=None, reverse=False)",$doc:"Stable sort *IN PLACE*."}};var n=Sk.abstr.buildIteratorClass("list_iterator",{constructor:function(t){this.$index=0,this.$seq=t.v},iternext:Sk.generic.iterNextWithArray,methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}}),i=Sk.abstr.buildIteratorClass("list_reverseiterator",{constructor:function(t){this.$index=t.v.length-1,this.$seq=t.v},iternext(){const t=this.$seq[this.$index--];if(void 0!==t)return t;this.tp$iternext=()=>{}},methods:{__length_hint__:Sk.generic.iterReverseLengthHintMethodDef},flags:{sk$unacceptableBase:!0}})},function(t,e,n){function i(t){var e=t.replace(T,"").replace(y,"_").toLowerCase();return void 0===(e=k[e])?t:e}function s(t,e,n){if(void 0===e)e="utf-8";else{if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError(t+"() argument "+("bytesstr".includes(t)?2:1)+" must be str not "+Sk.abstr.typeName(e));e=e.$jsstr()}if(void 0===n)n="strict";else{if(!Sk.builtin.checkString(n))throw new Sk.builtin.TypeError(t+"() argument "+("bytesstr".includes(t)?3:2)+" must be str not "+Sk.abstr.typeName(n));n=n.$jsstr()}return{encoding:e,errors:n}}function r(t,e,n){if(t=t.$jsstr(),e=i(e),"strict"!==n&&"ignore"!==n&&"replace"!==n)throw new Sk.builtin.NotImplementedError("'"+n+"' error handling not implemented in Skulpt");if("ascii"===e){for(s in e=[],t){const i=t.charCodeAt(s);if(127=t?"\\x":"\\u";return 3===(t=t.toString(16)).length&&(t=t.slice(1,3)),1===t.length?e+"0"+t:e+t}function a(t,e){if(({encoding:t,errors:e}=s("decode",t,e)),t=i(t),"strict"!==e&&"ignore"!==e&&"replace"!==e)throw new Sk.builtin.NotImplementedError("'"+e+"' error handling not implemented in Skulpt");if("ascii"===t){t=this.v;var n="";for(let i=0;i=n&&en)return new Sk.builtin.tuple([new Sk.builtin.bytes,new Sk.builtin.bytes,this])}else if(n=this.find$subleft(e,0,this.v.length),0>n)return new Sk.builtin.tuple([this,new Sk.builtin.bytes,new Sk.builtin.bytes]);return new Sk.builtin.tuple([new Sk.builtin.bytes(this.v.subarray(0,n)),new Sk.builtin.bytes(e),new Sk.builtin.bytes(this.v.subarray(n+e.length))])}}function p(t,e){return function(n){var i=void 0===n||n===Sk.builtin.none.none$?new Uint8Array([9,10,11,12,13,32,133]):this.get$raw(n);n=0;var s=this.v.length;if(t)for(;nn&&i.includes(this.v[s-1]);)s--;for(i=new Uint8Array(s-n),s=0;s=t||32===t}function d(t){return 97<=t&&122>=t}function f(t){return 65<=t&&90>=t}function m(t){return 48<=t&&57>=t}function g(t,e){return function(){return 0===this.v.length?e?Sk.builtin.bool.true$:Sk.builtin.bool.false$:this.v.every((e=>t(e)))?Sk.builtin.bool.true$:Sk.builtin.bool.false$}}function b(t,e){return function(){let n=!1;for(let i=0;i0<=t&&255>=t)),"bad internal call to bytes with array"),this.v=new Uint8Array(t);else if("string"==typeof t){let e;const n=new Uint8Array(t.length),i=t.length;for(let s=0;s bytes\nbytes(string, encoding[, errors]) -> bytes\nbytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer\nbytes(int) -> bytes object of size given by the parameter initialized with null bytes\nbytes() -> empty bytes object\n\nConstruct an immutable array of bytes from:\n - an iterable yielding integers in range(256)\n - a text string encoded using the specified encoding\n - any object implementing the buffer API.\n - an integer",tp$new(t,e){if(this!==Sk.builtin.bytes.prototype)return this.$subtype_new(t,e);let n;if(e=e||[],!(1>=t.length&&0==+e.length)){if([t,e,n]=Sk.abstr.copyKeywordsToNamedArgs("bytes",[null,"pySource","errors"],t,e),({encoding:e,errors:n}=s("bytes",e,n)),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("encoding or errors without a string argument");return r(t,e,n)}if(void 0===(t=t[0]))return new Sk.builtin.bytes;if(void 0!==(e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$bytes)))return t=Sk.misceval.callsimOrSuspendArray(e,[]),Sk.misceval.chain(t,(t=>{if(!Sk.builtin.checkBytes(t))throw new Sk.builtin.TypeError("__bytes__ returned non-bytes (type "+Sk.abstr.typeName(t)+")");return t}));if(Sk.misceval.isIndex(t)){if(0>(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError)))throw new Sk.builtin.ValueError("negative count");return new Sk.builtin.bytes(t)}if(Sk.builtin.checkBytes(t))return new Sk.builtin.bytes(t.v);if(Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("string argument without an encoding");if(Sk.builtin.checkIterable(t)){let e=[];return t=Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(0>(t=Sk.misceval.asIndexSized(t))||255new Sk.builtin.bytes(e)))}throw new Sk.builtin.TypeError("cannot convert '"+Sk.abstr.typeName(t)+"' object into bytes")},$r(){let t,e="'";const n=-1!==this.v.indexOf(34);let i="";for(let s=0;st||10t||13t||126t.length||n[i]>t[i];case"GtE":return i===s&&n.length>=t.length||n[i]>=t[i]}},tp$hash(){return new Sk.builtin.str(this.$jsstr()).tp$hash()},tp$as_sequence_or_mapping:!0,mp$subscript(t){if(Sk.misceval.isIndex(t)){let e=Sk.misceval.asIndexSized(t,Sk.builtin.IndexError);if(void 0!==e){if(0>e&&(e=this.v.length+e),0>e||e>=this.v.length)throw new Sk.builtin.IndexError("index out of range");return new Sk.builtin.int_(this.v[e])}}else if(t instanceof Sk.builtin.slice){const e=[];return t.sssiter$(this.v.length,(t=>{e.push(this.v[t])})),new Sk.builtin.bytes(new Uint8Array(e))}throw new Sk.builtin.TypeError("byte indices must be integers or slices, not "+Sk.abstr.typeName(t))},sq$length(){return this.v.length},sq$concat(t){if(!(t instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("can't concat "+Sk.abstr.typeName(t)+" to bytes");const e=new Uint8Array(this.v.length+t.v.length);let n;for(n=0;nNumber.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;if(0>=t)return new Sk.builtin.bytes;t=new Uint8Array(e);let n=0;for(;n(t=Sk.misceval.asIndexOrThrow(t,"argument should be integer or bytes-like object, not {tp$name}"))||255(e=Sk.misceval.asIndexSized(e,Sk.builtin.OverflowError))?1/0:e,null!==(t=Sk.builtin.checkNone(t)?null:this.get$raw(t))&&!t.length)throw new Sk.builtin.ValueError("empty separator");return{sep:t,maxsplit:e}},find$left:u(!1),find$right:u(!0),find$subleft:function(t,e,n){n=n-t.length+1;let i=e;for(;it===this.v[i+e])))return i;i++}return-1},find$subright(t,e,n){let i=n-t.length;for(;i>=e;){if(t.every(((t,e)=>t===this.v[i+e])))return i;i--}return-1},$subtype_new(t,e){const n=new this.constructor;return t=Sk.builtin.bytes.prototype.tp$new(t,e),n.v=t.v,n},sk$asarray(){const t=[];return this.v.forEach((e=>{t.push(new Sk.builtin.int_(e))})),t},valueOf(){return this.v}},flags:{str$encode:r,$decode:a,check$encodeArgs:s},methods:{__getnewargs__:{$meth(){return new Sk.builtin.tuple(new Sk.builtin.bytes(this.v))},$flags:{NoArgs:!0},$textsig:null,$doc:null},capitalize:{$meth(){const t=this.v.length;if(0===t)return new Sk.builtin.bytes(this.v);const e=new Uint8Array(t);let n=this.v[0];e[0]=d(n)?n-32:n;for(let i=1;i copy of B\n\nReturn a copy of B with only its first character capitalized (ASCII)\nand the rest lower-cased."},center:{$meth:h("center",!1,!0),$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"B.center(width[, fillchar]) -> copy of B\n\nReturn B centered in a string of length width. Padding is\ndone using the specified fill character (default is a space)."},count:{$meth(t,e,n){t=this.get$tgt(t),({start:e,end:n}=Sk.builtin.slice.startEnd$wrt(this,e,n));let i=0;if("number"==typeof t)for(;et===this.v[s+e]))&&(i++,s+=t.length-1)}return new Sk.builtin.int_(i)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.count(sub[, start[, end]]) -> int\n\nReturn the number of non-overlapping occurrences of subsection sub in\nbytes B[start:end]. Optional arguments start and end are interpreted\nas in slice notation."},decode:{$meth:a,$flags:{NamedArgs:["encoding","errors"]},$textsig:"($self, /, encoding='utf-8', errors='strict')",$doc:"Decode the bytes using the codec registered for encoding.\n\n encoding\n The encoding with which to decode the bytes.\n errors\n The error handling scheme to use for the handling of decoding errors.\n The default is 'strict' meaning that decoding errors raise a\n UnicodeDecodeError. Other possible values are 'ignore' and 'replace'\n as well as any other name registered with codecs.register_error that\n can handle UnicodeDecodeErrors."},endswith:{$meth:l("endswith",((t,e)=>{const n=t.length-e.length;return 0<=n&&e.every(((e,i)=>e===t[n+i]))})),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.endswith(suffix[, start[, end]]) -> bool\n\nReturn True if B ends with the specified suffix, False otherwise.\nWith optional start, test B beginning at that position.\nWith optional end, stop comparing B at that position.\nsuffix can also be a tuple of bytes to try."},expandtabs:{$meth(t){t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError,"an integer is required (got type {tp$nam})");const e=[];let n=0;for(let s=0;s copy of B\n\nReturn a copy of B where all tab characters are expanded using spaces.\nIf tabsize is not given, a tab size of 8 characters is assumed."},find:{$meth:function(t,e,n){return new Sk.builtin.int_(this.find$left(t,e,n))},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.find(sub[, start[, end]]) -> int\n\nReturn the lowest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},hex:{$meth(){let t="";for(let e=0;e string\n\nCreate a string of hexadecimal numbers from a bytes object.\nExample: b'\\xb9\\x01\\xef'.hex() -> 'b901ef'."},index:{$meth:function(t,e,n){if(-1===(t=this.find$left(t,e,n)))throw new Sk.builtin.ValueError("subsection not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.index(sub[, start[, end]]) -> int\n\nReturn the lowest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaises ValueError when the subsection is not found."},isalnum:{$meth:g((t=>m(t)||d(t)||f(t))),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isalnum() -> bool\n\nReturn True if all characters in B are alphanumeric\nand there is at least one character in B, False otherwise."},isalpha:{$meth:g((t=>65<=t&&90>=t||97<=t&&122>=t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isalpha() -> bool\n\nReturn True if all characters in B are alphabetic\nand there is at least one character in B, False otherwise."},isascii:{$meth:g((t=>0<=t&&127>=t),!0),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isascii() -> bool\n\nReturn True if B is empty or all characters in B are ASCII,\nFalse otherwise."},isdigit:{$meth:g(m),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isdigit() -> bool\n\nReturn True if all characters in B are digits\nand there is at least one character in B, False otherwise."},islower:{$meth:b(d,f),$flags:{NoArgs:!0},$textsig:null,$doc:"B.islower() -> bool\n\nReturn True if all cased characters in B are lowercase and there is\nat least one cased character in B, False otherwise."},isspace:{$meth:g(_),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isspace() -> bool\n\nReturn True if all characters in B are whitespace\nand there is at least one character in B, False otherwise."},istitle:{$meth:function(){let t=!1,e=!1;for(let n=0;n bool\n\nReturn True if B is a titlecased string and there is at least one\ncharacter in B, i.e. uppercase characters may only follow uncased\ncharacters and lowercase characters only cased ones. Return False\notherwise."},isupper:{$meth:b(f,d),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isupper() -> bool\n\nReturn True if all cased characters in B are uppercase and there is\nat least one cased character in B, False otherwise."},join:{$meth(t){const e=[];let n=0;return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(!(t instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("sequence item "+n+": expected a bytes-like object, "+Sk.abstr.typeName(t)+" found");n++,e.length&&e.push(...this.v),e.push(...t.v)})),(()=>new Sk.builtin.bytes(new Uint8Array(e))))},$flags:{OneArg:!0},$textsig:"($self, iterable_of_bytes, /)",$doc:"Concatenate any number of bytes objects.\n\nThe bytes whose method is called is inserted in between each pair.\n\nThe result is returned as a new bytes object.\n\nExample: b'.'.join([b'ab', b'pq', b'rs']) -> b'ab.pq.rs'."},ljust:{$meth:h("ljust",!1,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"B.ljust(width[, fillchar]) -> copy of B\n\nReturn B left justified in a string of length width. Padding is\ndone using the specified fill character (default is a space)."},lower:{$meth:S((t=>f(t)?t+32:t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.lower() -> copy of B\n\nReturn a copy of B with all ASCII characters converted to lowercase."},lstrip:{$meth:p(!0,!1),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, bytes=None, /)",$doc:"Strip leading bytes contained in the argument.\n\nIf the argument is omitted or None, strip leading ASCII whitespace."},partition:{$meth:c(!1),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the bytes into three parts using the given separator.\n\nThis will search for the separator sep in the bytes. If the separator is found,\nreturns a 3-tuple containing the part before the separator, the separator\nitself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing the original bytes\nobject and two empty bytes objects."},replace:{$meth(t,e,n){t=this.get$raw(t),e=this.get$raw(e),n=0>(n=void 0===n?-1:Sk.misceval.asIndexSized(n,Sk.builtin.OverflowError))?1/0:n;const i=[];let s=0;for(var r=0;r int\n\nReturn the highest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},rindex:{$meth:function(t,e,n){if(-1===(t=this.find$right(t,e,n)))throw new Sk.builtin.ValueError("subsection not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.rindex(sub[, start[, end]]) -> int\n\nReturn the highest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaise ValueError when the subsection is not found."},rjust:{$meth:h("rjust",!0,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"B.rjust(width[, fillchar]) -> copy of B\n\nReturn B right justified in a string of length width. Padding is\ndone using the specified fill character (default is a space)"},rpartition:{$meth:c(!0),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the bytes into three parts using the given separator.\n\nThis will search for the separator sep in the bytes, starting at the end. If\nthe separator is found, returns a 3-tuple containing the part before the\nseparator, the separator itself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing two empty bytes\nobjects and the original bytes object."},rsplit:{$meth:function(t,e){({sep:t,maxsplit:e}=this.get$splitArgs(t,e));const n=[];let i=0,s=this.v.length;if(null!==t){for(;0<=s&&is)break;for(t=s+1,s--;0<=s&&!_(this.v[s]);)s--;n.push(new Sk.builtin.bytes(this.v.subarray(s+1,t))),i++}if(0<=s){for(;_(this.v[s]);)s--;0<=s&&n.push(new Sk.builtin.bytes(this.v.subarray(0,s+1)))}}return new Sk.builtin.list(n.reverse())},$flags:{NamedArgs:["sep","maxsplit"],Defaults:[Sk.builtin.none.none$,-1]},$textsig:"($self, /, sep=None, maxsplit=-1)",$doc:"Return a list of the sections in the bytes, using sep as the delimiter.\n\n sep\n The delimiter according which to split the bytes.\n None (the default value) means split on ASCII whitespace characters\n (space, tab, return, newline, formfeed, vertical tab).\n maxsplit\n Maximum number of splits to do.\n -1 (the default value) means no limit.\n\nSplitting is done starting at the end of the bytes and working to the front."},rstrip:{$meth:p(!1,!0),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, bytes=None, /)",$doc:"Strip trailing bytes contained in the argument.\n\nIf the argument is omitted or None, strip trailing ASCII whitespace."},split:{$meth:function(t,e){({sep:t,maxsplit:e}=this.get$splitArgs(t,e));const n=[],i=this.v.length;let s=0,r=0;if(null!==t){for(;re.length<=t.length&&e.every(((e,n)=>e===t[n])))),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.startswith(prefix[, start[, end]]) -> bool\n\nReturn True if B starts with the specified prefix, False otherwise.\nWith optional start, test B beginning at that position.\nWith optional end, stop comparing B at that position.\nprefix can also be a tuple of bytes to try."},strip:{$meth:p(!0,!0),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, bytes=None, /)",$doc:"Strip leading and trailing bytes contained in the argument.\n\nIf the argument is omitted or None, strip leading and trailing ASCII whitespace."},swapcase:{$meth:S((t=>f(t)?t+32:d(t)?t-32:t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.swapcase() -> copy of B\n\nReturn a copy of B with uppercase ASCII characters converted\nto lowercase ASCII and vice versa."},title:{$meth(){const t=this.v.length,e=new Uint8Array(t);let n=!1;for(let i=0;i copy of B\n\nReturn a titlecased version of B, i.e. ASCII words start with uppercase\ncharacters, all remaining cased characters have lowercase."},upper:{$meth:S((t=>d(t)?t-32:t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.upper() -> copy of B\n\nReturn a copy of B with all ASCII characters converted to uppercase."},zfill:{$meth(t){const e=(t=Sk.misceval.asIndexSized(t,Sk.builtin.IndexError))-this.v.length;if(0>=e)return new Sk.builtin.bytes(this.v);const n=new Uint8Array(t);let i,s=0;for(43!==this.v[0]&&45!==this.v[0]||(n[0]=this.v[0],s++),n.fill(48,s,s+e),i=s,s+=e;s copy of B\n\nPad a numeric string B with zeros on the left, to fill a field\nof the specified width. B is never truncated."}},classmethods:{fromhex:{$meth:function(t){function e(e){for(let n=o;n b'\\\\xb9\\\\x01\\\\xef'."}}});var w=Sk.abstr.buildIteratorClass("bytes_iterator",{constructor:function(t){this.$index=0,this.$seq=t.v},iternext(){const t=this.$seq[this.$index++];if(void 0!==t)return new Sk.builtin.int_(t)},methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}});Sk.exportSymbol("Sk.builtin.bytes",Sk.builtin.bytes)},function(t,e,n){(function(t){!function(t){function e(){}function n(){}var i=String.fromCharCode,s={}.toString,r=s.call(t.SharedArrayBuffer),o=s(),a=t.Uint8Array,l=a||Array,u=a?ArrayBuffer:l,c=u.isView||function(t){return t&&"length"in t},p=s.call(u.prototype);u=n.prototype;var h=t.TextEncoder,_=new(a?Uint16Array:l)(32);e.prototype.decode=function(t){if(!c(t)){var e=s.call(t);if(e!==p&&e!==r&&e!==o)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");t=a?new l(t):t||[]}for(var n,u,h,d=e="",f=0,m=0|t.length,g=m-32|0,b=0,S=0,k=0,T=-1;f>4){case 15:if(2!=(h=255&t[f=f+1|0])>>6||247>6?S+4|0:24,u=u+256&768;case 13:case 12:b<<=6,b|=(31&u)<<6|63&(h=255&t[f=f+1|0]),S=S+7|0,f>6&&b>>S&&1114112>b?(u=b,0<=(b=b-65536|0)&&(T=55296+(b>>10)|0,u=56320+(1023&b)|0,31>k?(_[k]=T,k=k+1|0,T=-1):(h=T,T=u,u=h))):(f=f-(u>>=8)-1|0,u=65533),b=S=0,n=f<=g?32:m-f|0;default:_[k]=u;continue;case 11:case 10:case 9:case 8:}_[k]=65533}if(d+=i(_[0],_[1],_[2],_[3],_[4],_[5],_[6],_[7],_[8],_[9],_[10],_[11],_[12],_[13],_[14],_[15],_[16],_[17],_[18],_[19],_[20],_[21],_[22],_[23],_[24],_[25],_[26],_[27],_[28],_[29],_[30],_[31]),32>k&&(d=d.slice(0,k-32|0)),f>>31,T=-1,d.length=o)i[s]=o;else{if(2047>=o)i[s]=192|o>>6;else{t:{if(55296<=o)if(56319>=o){var u=0|t.charCodeAt(e=e+1|0);if(56320<=u&&57343>=u){if(65535<(o=(o<<10)+u-56613888|0)){i[s]=240|o>>18,i[s=s+1|0]=128|o>>12&63,i[s=s+1|0]=128|o>>6&63,i[s=s+1|0]=128|63&o;continue}break t}o=65533}else 57343>=o&&(o=65533);!r&&e<<1>12,i[s=s+1|0]=128|o>>6&63}i[s=s+1|0]=128|63&o}}return a?i.subarray(0,s):i.slice(0,s)},h||(t.TextDecoder=e,t.TextEncoder=n)}(void 0===t?"undefined"==typeof self?this:self:t)}).call(this,n(0))},function(t,e){Sk.builtin.tuple=Sk.abstr.buildNativeClass("tuple",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.tuple,"bad call to tuple, use 'new' with an Array of python objects"),this.v=t,this.in$repr=!1},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$doc:"Built-in immutable sequence.\n\nIf no argument is given, the constructor returns an empty tuple.\nIf iterable is specified the tuple is initialized from iterable's items.\n\nIf the argument is a tuple, the return value is the same object.",$r(){if(this.in$repr)return new Sk.builtin.str("(...)");this.in$repr=!0;let t=this.v.map((t=>Sk.misceval.objectRepr(t)));return this.in$repr=!1,t=t.join(", "),1===this.v.length&&(t+=","),new Sk.builtin.str("("+t+")")},tp$new(t,e){return this!==Sk.builtin.tuple.prototype?this.$subtype_new(t,e):(Sk.abstr.checkNoKwargs("tuple",e),Sk.abstr.checkArgsLen("tuple",t,0,1),void 0===(t=t[0])?new Sk.builtin.tuple([]):t.constructor===Sk.builtin.tuple?t:Sk.misceval.chain(Sk.misceval.arrayFromIterable(t,!0),(t=>new Sk.builtin.tuple(t))))},tp$hash(){let t,e=3430008,n=1000003;const i=this.v.length;for(let s=0;s(t=Sk.misceval.asIndexSized(t,Sk.builtin.IndexError))&&(t=this.v.length+t),0>t||t>=this.v.length)throw new Sk.builtin.IndexError("tuple index out of range");return this.v[t]}if(t instanceof Sk.builtin.slice){const e=[];return t.sssiter$(this.v.length,(t=>{e.push(this.v[t])})),new Sk.builtin.tuple(e)}throw new Sk.builtin.TypeError("tuple indices must be integers or slices, not "+Sk.abstr.typeName(t))},sq$length(){return this.v.length},sq$repeat(t){if(1===(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError))&&this.constructor===Sk.builtin.tuple)return this;const e=[];for(let n=0;n(this.$seq=t.$items(),this.$version=t.$version,n&&(this.$seq=this.$seq.reverse()),this.tp$iternext=this.constructor.prototype.tp$iternext,this.tp$iternext())},iternext:e,methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0},proto:{next$item:a}})}function a(){if(this.$version!==this.$orig.$version){if(this.$seq.length!==this.$orig.get$size())throw new Sk.builtin.RuntimeError("dict changed size during iteration");throw new Sk.builtin.RuntimeError("dictionary keys changed during iteration")}return this.$seq[this.$index++]}Sk.builtin.dict=Sk.abstr.buildNativeClass("dict",{constructor:function(t){void 0===t&&(t=[]),Sk.asserts.assert(Array.isArray(t)&&0==t.length%2&&this instanceof Sk.builtin.dict,"bad call to dict constructor"),this.size=0,this.entries=Object.create(null),this.buckets={};for(let e=0;e new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n d = {}\n for k, v in iterable:\n d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n in the keyword argument list. For example: dict(one=1, two=2)",$r(){if(this.in$repr)return new Sk.builtin.str("{...}");this.in$repr=!0;const t=this.$items().map((t=>{var[e,n]=t;return Sk.misceval.objectRepr(e)+": "+Sk.misceval.objectRepr(n)}));return this.in$repr=!1,new Sk.builtin.str("{"+t.join(", ")+"}")},tp$new:Sk.generic.new,tp$init(t,e){return this.update$common(t,e,"dict")},tp$iter(){return new h(this)},tp$richcompare(t,e){let n;if(!(t instanceof Sk.builtin.dict)||"Eq"!==e&&"NotEq"!==e)return Sk.builtin.NotImplemented.NotImplemented$;if(t===this)n=!0;else if(this.size!==t.size)n=!1;else{let e;n=this.$items().every((n=>{var[i,s]=n;return e=t.mp$lookup(i),void 0!==e&&(e===s||Sk.misceval.richCompareBool(s,e,"Eq"))}))}return"Eq"===e?n:!n},nb$or(t){if(!(t instanceof Sk.builtin.dict))return Sk.builtin.NotImplemented.NotImplemented$;const e=this.dict$copy();return e.dict$merge(t),e},nb$reflected_or(t){return t instanceof Sk.builtin.dict?((t=t.dict$copy()).dict$merge(this),t):Sk.builtin.NotImplemented.NotImplemented$},nb$inplace_or(t){return Sk.misceval.chain(this.update$onearg(t),(()=>this))},sq$length(){return this.get$size()},sq$contains(t){return void 0!==this.mp$lookup(t)},mp$subscript(t,e){var n=this.mp$lookup(t);if(void 0!==n)return n;if(void 0!==(n=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$missing)))return t=Sk.misceval.callsimOrSuspendArray(n,[t]),e?t:Sk.misceval.retryOptionalSuspensionOrThrow(t);throw new Sk.builtin.KeyError(t)},mp$ass_subscript(t,e){if(void 0===e){if(void 0===this.pop$item(t))throw new Sk.builtin.KeyError(t)}else this.set$item(t,e)}},methods:{__reversed__:{$meth(){return new f(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a reverse iterator over the dict keys."},get:{$meth(t,e){return this.mp$lookup(t)||e||Sk.builtin.none.none$},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, key, default=None, /)",$doc:"Return the value for key if key is in the dictionary, else default."},setdefault:{$meth(t,e){let i;const s=n(t);return i="string"==typeof s?this.entries[s]:this.get$bucket_item(t,s),void 0!==i?i[1]:(e=e||Sk.builtin.none.none$,"string"==typeof s?this.entries[s]=[t,e]:this.set$bucket_item(t,e,s),this.size++,this.$version++,e)},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, key, default=None, /)",$doc:"Insert key with a value of default if key is not in the dictionary.\n\nReturn the value for key if key is in the dictionary, else default."},pop:{$meth(t,e){const n=this.pop$item(t);if(void 0!==n)return n[1];if(void 0!==e)return e;throw new Sk.builtin.KeyError(t)},$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"D.pop(k[,d]) -> v, remove specified key and return the corresponding value.\nIf key is not found, d is returned if given, otherwise KeyError is raised"},popitem:{$meth(){const t=this.get$size();if(0===t)throw new Sk.builtin.KeyError("popitem(): dictionary is empty");const[e,n]=this.$items()[t-1];return this.pop$item(e),new Sk.builtin.tuple([e,n])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.popitem() -> (k, v), remove and return some (key, value) pair as a\n2-tuple; but raise KeyError if D is empty."},keys:{$meth(){return new u(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.keys() -> a set-like object providing a view on D's keys"},items:{$meth(){return new p(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.items() -> a set-like object providing a view on D's items"},values:{$meth(){return new c(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.values() -> an object providing a view on D's values"},update:{$meth(t,e){return Sk.misceval.chain(this.update$common(t,e,"update"),(()=>Sk.builtin.none.none$))},$flags:{FastCall:!0},$textsig:null,$doc:"D.update([E, ]**F) -> None. Update D from dict/iterable E and F.\nIf E is present and has a .keys() method, then does: for k in E: D[k] = E[k]\nIf E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v\nIn either case, this is followed by: for k in F: D[k] = F[k]"},clear:{$meth(){this.size=0,this.$version++,this.entries=Object.create(null),this.buckets={}},$flags:{NoArgs:!0},$textsig:null,$doc:"D.clear() -> None. Remove all items from D."},copy:{$meth(){return this.dict$copy()},$flags:{NoArgs:!0},$textsig:null,$doc:"D.copy() -> a shallow copy of D"}},classmethods:Object.assign({fromkeys:{$meth:function(t,e){e=e||Sk.builtin.none.none$;let n=this===Sk.builtin.dict?new this:this.tp$call([],[]);return Sk.misceval.chain(n,(i=>(n=i,Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>n.mp$ass_subscript(t,e,!0))))),(()=>n))},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($type, iterable, value=None, /)",$doc:"Create a new dictionary with keys from iterable and values set to value."}},Sk.generic.classGetItem),proto:{quick$lookup:function(t){if(void 0!==(t=this.entries[t.$savedKeyHash]))return t[1]},mp$lookup:function(t){const e=n(t);if(void 0!==(t="string"==typeof e?this.entries[e]:this.get$bucket_item(t,e)))return t[1]},get$size(){return this.size},sk$asarray(){return Object.values(this.entries).map((t=>t[0]))},update$common:function(t,e,n){let i;return Sk.abstr.checkArgsLen(n,t,0,1),void 0!==(t=t[0])&&(i=this.update$onearg(t)),Sk.misceval.chain(i,(()=>{if(e)for(let t=0;tvoid 0===t))&&delete this.buckets[e],i},set$bucket_item:function(t,e,n){let i=this.buckets[n];t=[t,e],void 0===i?(this.buckets[n]=[t],n="#"+n+"_0"):-1!==(e=i.indexOf(void 0))?(n="#"+n+"_"+e,i[e]=t):(n="#"+n+"_"+i.length,i.push(t)),this.entries[n]=t},pop$item:function(t){const e=n(t);if("string"==typeof e?(t=this.entries[e],delete this.entries[e]):t=this.pop$bucket_item(t,e),void 0!==t)return this.size--,this.$version++,t},dict$merge:function(t){if(t.tp$iter!==Sk.builtin.dict.prototype.tp$iter){if(void 0===(e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$keys)))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not a mapping");return Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(e),(e=>Sk.misceval.iterFor(Sk.abstr.iter(e),(e=>Sk.misceval.chain(Sk.abstr.objectGetItem(t,e,!0),(t=>{this.set$item(e,t)}))))))}var e=t.tp$iter();for(let n=e.tp$iternext();void 0!==n;n=e.tp$iternext()){const e=t.mp$subscript(n);this.set$item(n,e)}},dict$merge_seq:function(t){let e=0;return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(!Sk.builtin.checkIterable(t))throw new Sk.builtin.TypeError("cannot convert dictionary update sequence element #"+e+" to a sequence");if(2!==(t=Sk.misceval.arrayFromIterable(t)).length)throw new Sk.builtin.ValueError("dictionary update sequence element #"+e+" has length "+t.length+"; 2 is required");this.set$item(t[0],t[1]),e++}))}}});const l={tp$getattr:Sk.generic.getAttr,tp$as_number:!0,tp$as_sequence_or_mapping:!0,tp$hash:Sk.builtin.none.none$,$r(){if(this.in$repr)return new Sk.builtin.str("...");this.in$repr=!0;let t=Sk.misceval.arrayFromIterable(this);return t=t.map((t=>Sk.misceval.objectRepr(t))),this.in$repr=!1,new Sk.builtin.str(Sk.abstr.typeName(this)+"(["+t.join(", ")+"])")},tp$richcompare(t,e){if(!(Sk.builtin.checkAnySet(t)||t instanceof u||t instanceof p))return Sk.builtin.NotImplemented.NotImplemented$;const n=this.sq$length(),i=t.sq$length();switch(e){case"NotEq":case"Eq":let r;return this===t?r=!0:n===i&&(r=s(this,t)),"NotEq"===e?!r:r;case"Lt":return ni&&s(t,this);case"GtE":return n>=i&&s(t,this)}},nb$subtract(t){const e=i(this);return e.difference.$meth.call(e,t)},nb$and(t){const e=i(this);return e.intersection.$meth.call(e,t)},nb$or(t){const e=i(this);return e.union.$meth.call(e,t)},nb$xor(t){const e=i(this);return e.symmetric_difference.$meth.call(e,t)},sq$length(){return this.dict.get$size()}};var u=r("dict_keys",{sq$contains(t){return void 0!==this.dict.mp$lookup(t)},tp$iter(){return new h(this.dict)}},(function(){return new f(this.dict)})),c=r("dict_values",{tp$iter(){return new d(this.dict)}},(function(){return new g(this.dict)})),p=r("dict_items",{sq$contains(t){if(!(t instanceof Sk.builtin.tuple&&2===t.sq$length()))return!1;var e=t.mp$subscript(new Sk.builtin.int_(0));return t=t.mp$subscript(new Sk.builtin.int_(1)),void 0!==(e=this.dict.mp$lookup(e))&&(e===t||Sk.misceval.richCompareBool(e,t,"Eq"))},tp$iter(){return new _(this.dict)}},(function(){return new m(this.dict)})),h=o("dict_keyiterator",(function(){const t=this.next$item();return t&&t[0]})),_=o("dict_itemiterator",(function(){const t=this.next$item();return t&&new Sk.builtin.tuple([t[0],t[1]])})),d=o("dict_valueiterator",(function(){const t=this.next$item();return t&&t[1]})),f=o("dict_reversekeyiterator",h.prototype.tp$iternext,!0),m=o("dict_reverseitemiterator",_.prototype.tp$iternext,!0),g=o("dict_reversevalueiterator",d.prototype.tp$iternext,!0);Sk.builtin.dict.py2$methods={has_key:{$name:"has_key",$flags:{OneArg:!0},$meth(t){return new Sk.builtin.bool(this.sq$contains(t))},$doc:"D.has_key(k) -> True if D has a key k, else False"},keys:{$name:"keys",$meth(){return new Sk.builtin.list(this.sk$asarray())},$flags:{NoArgs:!0},$textsig:null,$doc:"D.keys() -> a set-like object providing a view on D's keys"},items:{$name:"items",$meth(){return new Sk.builtin.list(this.$items().map((t=>{var[e,n]=t;return new Sk.builtin.tuple([e,n])})))},$flags:{NoArgs:!0},$textsig:null,$doc:"D.items() -> a set-like object providing a view on D's items"},values:{$name:"values",$meth(){return new Sk.builtin.list(this.$items().map((t=>([,t]=t,t))))},$flags:{NoArgs:!0},$textsig:null,$doc:"D.values() -> an object providing a view on D's values"}}},function(t,e){Sk.builtin.mappingproxy=Sk.abstr.buildNativeClass("mappingproxy",{constructor:function(t){if(Sk.asserts.assert(this instanceof Sk.builtin.mappingproxy,"bad call to mapping proxy, use 'new'"),void 0!==t){const e=t.constructor;e===Object||null===e||t.hasOwnProperty("sk$object")?(this.mapping=new Sk.builtin.dict([]),function(t,e){Object.defineProperties(t,{entries:{get:()=>{const t=Object.create(null);return Object.entries(e).forEach((e=>{var[n,i]=e;(n=Sk.unfixReserved(n)).includes("$")||(n=new Sk.builtin.str(n),t[n.$savedKeyHash]=[n,i])})),t},configurable:!0},size:{get:()=>Object.keys(e).map((t=>Sk.unfixReserved(t))).filter((t=>!t.includes("$"))).length,configurable:!0}})}(this.mapping,t)):Sk.builtin.checkMapping(t)?this.mapping=t:Sk.asserts.fail("unhandled case for mappingproxy")}},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$hash:Sk.builtin.none.none$,tp$new(t,e){if(Sk.abstr.checkNoKwargs("mappingproxy",e),Sk.abstr.checkOneArg("mappingproxy",t,e),t=t[0],!Sk.builtin.checkMapping(t))throw new Sk.builtin.TypeError("mappingproxy() argument must be a mapping, not "+Sk.abstr.typeName(t));return(e=new Sk.builtin.mappingproxy).mapping=t,e},tp$richcompare(t,e){return Sk.misceval.richCompareBool(this.mapping,t,e)},tp$str(){return this.mapping.tp$str()},$r(){return new Sk.builtin.str("mappingproxy("+Sk.misceval.objectRepr(this.mapping)+")")},mp$subscript(t,e){return this.mapping.mp$subscript(t,e)},sq$contains(t){return this.mapping.sq$contains(t)},sq$length(){return this.mapping.sq$length()},tp$iter(){return this.mapping.tp$iter()},tp$as_number:!0,nb$or(t){return t instanceof Sk.builtin.mappingproxy&&(t=t.mapping),Sk.abstr.numberBinOp(this.mapping,t,"BitOr")},nb$reflected_or(t){return t instanceof Sk.builtin.mappingproxy&&(t=t.mapping),Sk.abstr.numberBinOp(t,this.mapping,"BitOr")},nb$inplace_or(t){throw new Sk.builtin.TypeError("'|=' is not supported by "+Sk.abstr.typeName(this)+"; use '|' instead")}},methods:{get:{$meth(t,e){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$get),t,e)},$flags:{FastCall:!0},$textsig:null,$doc:"D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None."},keys:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$keys),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.keys() -> a set-like object providing a view on D's keys"},items:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$items),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.items() -> a set-like object providing a view on D's items"},values:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$values),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.values() -> a set-like object providing a view on D's values"},copy:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$copy),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.copy() -> a shallow copy of D"}},classmethods:Sk.generic.classGetItem,proto:{str$get:new Sk.builtin.str("get"),str$copy:new Sk.builtin.str("copy"),str$keys:new Sk.builtin.str("keys"),str$items:new Sk.builtin.str("items"),str$values:new Sk.builtin.str("values"),mp$lookup(t){return this.mapping.mp$lookup(t)}},flags:{sk$unacceptableBase:!0}})},function(t,e){Sk.builtin.property=Sk.abstr.buildNativeClass("property",{constructor:function(t,e,n,i){this.prop$get=t||Sk.builtin.none.none$,this.prop$set=e||Sk.builtin.none.none$,this.prop$del=n||Sk.builtin.none.none$,this.prop$doc=i||t&&t.$doc||Sk.builtin.none.none$},slots:{tp$getattr:Sk.generic.getAttr,tp$new:Sk.generic.new,tp$init(t,e){t=Sk.abstr.copyKeywordsToNamedArgs("property",["fget","fset","fdel","doc"],t,e,Array(4).fill(Sk.builtin.none.none$)),this.prop$get=t[0],this.prop$set=t[1],this.prop$del=t[2],Sk.builtin.checkNone(t[3])?Sk.builtin.checkNone(t[0])||(this.prop$doc=t[0].$doc||t[3]):this.prop$doc=t[3]},tp$doc:"Property attribute.\n\n fget\n function to be used for getting an attribute value\n fset\n function to be used for setting an attribute value\n fdel\n function to be used for del'ing an attribute\n doc\n docstring\n\nTypical use is to define a managed attribute x:\n\nclass C(object):\n def getx(self): return self._x\n def setx(self, value): self._x = value\n def delx(self): del self._x\n x = property(getx, setx, delx, 'I'm the 'x' property.')\n\nDecorators make defining new properties or modifying existing ones easy:\n\nclass C(object):\n @property\n def x(self):\n 'I am the 'x' property.'\n return self._x\n @x.setter\n def x(self, value):\n self._x = value\n @x.deleter\n def x(self):\n del self._x",tp$descr_get(t,e,n){if(null===t)return this;if(void 0===this.prop$get)throw new Sk.builtin.AttributeError("unreadable attribute");return t=Sk.misceval.callsimOrSuspendArray(this.prop$get,[t]),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t)},tp$descr_set(t,e,n){let i;if(i=null==e?this.prop$del:this.prop$set,Sk.builtin.checkNone(i))throw new Sk.builtin.AttributeError("can't "+(null==e?"delete":"set")+" attribute");if(!i.tp$call)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(i)+"' is not callable");return t=null==e?i.tp$call([t]):i.tp$call([t,e]),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t)}},methods:{getter:{$meth(t){return new Sk.builtin.property(t,this.prop$set,this.prop$del,this.prop$doc)},$flags:{OneArg:!0}},setter:{$meth(t){return new Sk.builtin.property(this.prop$get,t,this.prop$del,this.prop$doc)},$flags:{OneArg:!0}},deleter:{$meth(t){return new Sk.builtin.property(this.prop$get,this.prop$set,t,this.prop$doc)},$flags:{OneArg:!0}}},getsets:{fget:{$get(){return this.prop$get}},fset:{$get(){return this.prop$set}},fdel:{$get(){return this.prop$del}},__doc__:{$get(){return this.prop$doc},$set(t){this.prop$doc=t=t||Sk.builtin.none.none$}}}}),Sk.builtin.classmethod=Sk.abstr.buildNativeClass("classmethod",{constructor:function(t){this.cm$callable=t,this.$d=new Sk.builtin.dict},slots:{tp$getattr:Sk.generic.getAttr,tp$new:Sk.generic.new,tp$init(t,e){Sk.abstr.checkNoKwargs("classmethod",e),Sk.abstr.checkArgsLen("classmethod",t,1,1),this.cm$callable=t[0]},tp$doc:"classmethod(function) -> method\n\nConvert a function to be a class method.\n\nA class method receives the class as implicit first argument,\njust like an instance method receives the instance.\nTo declare a class method, use this idiom:\n\n class C:\n @classmethod\n def f(cls, arg1, arg2, ...):\n ...\n\nIt can be called either on the class (e.g. C.f()) or on an instance\n(e.g. C().f()). The instance is ignored except for its class.\nIf a class method is called for a derived class, the derived class\nobject is passed as the implied first argument.\n\nClass methods are different than C++ or Java static methods.\nIf you want those, see the staticmethod builtin.",tp$descr_get(t,e,n){const i=this.cm$callable;if(void 0===i)throw new Sk.builtin.RuntimeError("uninitialized classmethod object");return void 0===e&&(e=t.ob$type),(t=i.tp$descr_get)?t.call(i,e,n):new Sk.builtin.method(i,e)}},getsets:{__func__:{$get(){return this.cm$callable}},__dict__:Sk.generic.getSetDict}}),Sk.builtin.staticmethod=Sk.abstr.buildNativeClass("staticmethod",{constructor:function(t){this.sm$callable=t,this.$d=new Sk.builtin.dict},slots:{tp$getattr:Sk.generic.getAttr,tp$new:Sk.generic.new,tp$init(t,e){Sk.abstr.checkNoKwargs("staticmethod",e),Sk.abstr.checkArgsLen("staticmethod",t,1,1),this.sm$callable=t[0]},tp$doc:"staticmethod(function) -> method\n\nConvert a function to be a static method.\n\nA static method does not receive an implicit first argument.\nTo declare a static method, use this idiom:\n\n class C:\n @staticmethod\n def f(arg1, arg2, ...):\n ...\n\nIt can be called either on the class (e.g. C.f()) or on an instance\n(e.g. C().f()). The instance is ignored except for its class.\n\nStatic methods in Python are similar to those found in Java or C++.\nFor a more advanced concept, see the classmethod builtin.",tp$descr_get(t,e){if(void 0===this.sm$callable)throw new Sk.builtin.RuntimeError("uninitialized staticmethod object");return this.sm$callable}},getsets:{__func__:{$get(){return this.sm$callable}},__dict__:Sk.generic.getSetDict}})},function(t,e){function n(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;if(n=n.v,"number"==typeof i&&"number"==typeof n){const e=t(i,n);if(p(e))return new Sk.builtin.int_(e)}return i=_(i),n=_(n),new Sk.builtin.int_(e(i,n))}}function i(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;return n=n.v,"number"==typeof i&&"number"==typeof n?t(i,n):(i=_(i),n=_(n),e(i,n))}}function s(t,e){return function(){let n=this.v;if("number"==typeof n){const e=t(n);if(void 0!==e)return new Sk.builtin.int_(e);n=_(n)}return new Sk.builtin.int_(e(n))}}function r(){return new Sk.builtin.int_(this.v)}function o(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;if(0===(n=n.v))throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return"number"==typeof i&&"number"==typeof n?new Sk.builtin.int_(t(i,n)):(i=_(i),n=_(n),new Sk.builtin.int_(JSBI.numberIfSafe(e(i,n))))}}function a(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;if(n.nb$isnegative())throw new Sk.builtin.ValueError("negative shift count");let i=this.v;if(0===i)return new Sk.builtin.int_(0);if(n=n.v,"number"==typeof i&&"number"==typeof n&&53>n){const e=t(i,n);if(void 0!==e)return new Sk.builtin.int_(e)}return i=_(i),n=_(n),new Sk.builtin.int_(e(i,n))}}function l(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;return n=n.v,"number"==typeof i&&"number"==typeof n&&Math.abs(i)=-Number.MAX_SAFE_INTEGER}function h(t){return t<=Number.MAX_SAFE_INTEGER&&t>=-Number.MAX_SAFE_INTEGER?+t:JSBI.BigInt(t)}function _(t){return"number"==typeof t?JSBI.BigInt(t):t}function d(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("'byteorder' must be str, not "+Sk.abstr.typeName(t));if("little"===(t=t.toString()))return 1;if("big"===t)return 0;throw new Sk.builtin.ValueError("byteorder must be either 'little' or 'big'")}Sk.builtin.int_=Sk.abstr.buildNativeClass("int",{constructor:function(t){let e;if(Sk.asserts.assert(this instanceof Sk.builtin.int_,"bad call to int use 'new'"),"number"==typeof t){if(-6t)return $[t];e=t}else if(JSBI.__isBigInt(t))e=t;else{if(void 0===t)return w;if("string"==typeof t)e=h(t);else{if(t.nb$int)return t.nb$int();Sk.asserts.fail("bad argument to int constructor")}}this.v=e},slots:{tp$as_number:!0,tp$doc:"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given. If x is a number, return x.__int__(). For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base. The literal can be preceded by '+' or '-' and be surrounded\nby whitespace. The base defaults to 10. Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4",$r(){return new Sk.builtin.str(this.v.toString())},tp$hash(){var t=this.v;if("number"==typeof t){if(-1===t)return-2;if(536870911>t&&-536870911t==e),JSBI.equal),ob$ne:i(((t,e)=>t!=e),JSBI.notEqual),ob$gt:i(((t,e)=>t>e),JSBI.greaterThan),ob$ge:i(((t,e)=>t>=e),JSBI.greaterThanOrEqual),ob$lt:i(((t,e)=>tt<=e),JSBI.lessThanOrEqual),nb$int:r,nb$index(){return this.v},nb$float(){var t=this.v;if("number"==typeof t)return new Sk.builtin.float_(t);if(1/0===(t=parseFloat(JSBI.toNumber(t)))||-1/0===t)throw new Sk.builtin.OverflowError("int too large to convert to float");return new Sk.builtin.float_(t)},nb$isnegative(){const t=this.v;return"number"==typeof t?0>t:JSBI.lessThan(t,JSBI.__ZERO)},nb$ispositive(){const t=this.v;return"number"==typeof t?0<=t:JSBI.greaterThanOrEqual(t,JSBI.__ZERO)},nb$bool(){return 0!==this.v},nb$positive:r,nb$negative:s((t=>-t),JSBI.unaryMinus),nb$add:n(((t,e)=>t+e),((t,e)=>JSBI.numberIfSafe(JSBI.add(t,e)))),nb$subtract:n(((t,e)=>t-e),((t,e)=>JSBI.numberIfSafe(JSBI.subtract(t,e)))),nb$multiply:n(((t,e)=>t*e),((t,e)=>t===JSBI.__ZERO||e===JSBI.__ZERO?0:JSBI.multiply(t,e))),nb$divide:function(t){if(!Sk.__future__.python3)return this.nb$floor_divide(t);if(!(t instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;var e=this.v,n=t.v;if(0===n)throw new Sk.builtin.ZeroDivisionError("division by zero");if("number"==typeof e&&"number"==typeof n)return new Sk.builtin.float_(e/n);if(e=_(e),n=_(n),t=JSBI.lessThan(JSBI.bitwiseXor(e,n),JSBI.__ZERO),JSBI.equal(e,JSBI.__ZERO))return new Sk.builtin.float_(t?-0:0);if(e=u(e),n=u(n),JSBI.greaterThanOrEqual(e,JSBI.multiply(k,n)))throw new Sk.builtin.OverflowError("int/int too large to represent as a float");var i=e.toString(2).length-n.toString(2).length,s=JSBI.BigInt(0>i?-i:i);if((0<=i&&JSBI.greaterThanOrEqual(e,JSBI.multiply(JSBI.exponentiate(b,s),n))||0>i&&JSBI.greaterThanOrEqual(JSBI.multiply(e,JSBI.exponentiate(b,s)),n))&&(i+=1),i=Math.max(i,g)-m,e=JSBI.leftShift(e,JSBI.BigInt(Math.max(-i,0))),n=JSBI.leftShift(n,JSBI.BigInt(Math.max(i,0))),s=JSBI.divide(e,n),e=JSBI.remainder(e,n),e=JSBI.multiply(b,e),(JSBI.greaterThan(e,n)||JSBI.equal(e,n)&&JSBI.equal(JSBI.remainder(s,b),S))&&(s=JSBI.add(s,S)),1/0===(s=JSBI.toNumber(s))||-1/0===s)throw new Sk.builtin.OverflowError("int/int too large to represent as a float");return n=s*Math.pow(2,i),new Sk.builtin.float_(t?-n:n)},nb$floor_divide:o(((t,e)=>Math.floor(t/e)),c),nb$remainder:o(((t,e)=>t-Math.floor(t/e)*e),((t,e)=>JSBI.subtract(t,JSBI.multiply(e,c(t,e))))),nb$divmod(t){const e=this.nb$floor_divide(t);return t=this.nb$remainder(t),e===Sk.builtin.NotImplemented.NotImplemented$||t===Sk.builtin.NotImplemented.NotImplemented$?Sk.builtin.NotImplemented.NotImplemented$:new Sk.builtin.tuple([e,t])},nb$and:l(((t,e)=>t&e),JSBI.bitwiseAnd),nb$or:l(((t,e)=>t|e),JSBI.bitwiseOr),nb$xor:l(((t,e)=>t^e),JSBI.bitwiseXor),nb$abs:s(Math.abs,u),nb$lshift:a(((t,e)=>{if(p(t=2*t*y[e]))return t}),JSBI.leftShift),nb$rshift:a(((t,e)=>{Math.floor(t/y[e+1])}),((t,e)=>JSBI.numberIfSafe(JSBI.signedRightShift(t,e)))),nb$invert:s((t=>Math.abs(t)JSBI.numberIfSafe(JSBI.bitwiseNot(t)))),nb$power(t,e){let n;if(void 0!==e&&Sk.builtin.checkNone(e)&&(e=void 0),!(t instanceof Sk.builtin.int_&&(void 0===e||e instanceof Sk.builtin.int_)))return Sk.builtin.NotImplemented.NotImplemented$;const i=t.nb$isnegative();if(i&&void 0===e)return this.nb$float().nb$power(t.nb$float());let s=this.v;if(t=t.v,"number"==typeof s&&"number"==typeof t){const i=Math.pow(s,t);if(p(i)&&(n=new Sk.builtin.int_(i),void 0===e))return n}if(void 0!==e){if(i)throw new Sk.builtin.ValueError("pow() 2nd argument cannot be negative when 3rd argument specified");if(0===e.v)throw new Sk.builtin.ValueError("pow() 3rd argument cannot be 0");return void 0!==n?n.nb$remainder(e):new Sk.builtin.int_(JSBI.numberIfSafe(JSBI.powermod(_(s),_(t),_(e.v))))}return new Sk.builtin.int_(JSBI.exponentiate(_(s),_(t)))},nb$long(){return new Sk.builtin.lng(this.v)}},getsets:{real:{$get:r,$doc:"the real part of a complex number"},imag:{$get:()=>w,$doc:"the imaginary part of a complex number"},numerator:{$get:r},denominator:{$get:()=>E}},classmethods:{from_bytes:{$meth(t,e){Sk.abstr.checkArgsLen("from_bytes",t,0,2);let[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("from_bytes",["bytes","byteorder","signed"],t,e,[Sk.builtin.bool.false$]);if(t=d(i),n instanceof Sk.builtin.bytes||(n=Sk.misceval.callsimArray(Sk.builtin.bytes,[n])),Sk.misceval.isTrue(s))throw new Sk.builtin.NotImplementedError("from_bytes with signed=True is not yet implemented in Skulpt");const r=[];return n.valueOf().forEach((t=>{r.push(t.toString(16).padStart(2,"0"))})),t&&r.reverse(),t=new Sk.builtin.int_(JSBI.numberIfSafe(JSBI.BigInt("0x"+(r.join("")||"0")))),this===Sk.builtin.int_?t:Sk.misceval.callsimArray(this,[t])},$flags:{FastCall:!0}}},methods:{conjugate:{$meth:r,$flags:{NoArgs:!0},$textsig:null,$doc:"Returns self, the complex conjugate of any int."},bit_length:{$meth(){let t=this.v;return 0===t?new Sk.builtin.int_(0):(t="number"==typeof t?Math.abs(t):u(t),new Sk.builtin.int_(t.toString(2).length))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Number of bits necessary to represent self in binary.\n\n>>> bin(37)\n'0b100101'\n>>> (37).bit_length()\n6"},to_bytes:{$meth(t,e){Sk.abstr.checkArgsLen("to_bytes",t,0,2);let[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("to_bytes",["length","byteorder","signed"],t,e,[Sk.builtin.bool.false$]);if(t=d(i),n=Sk.misceval.asIndexSized(n,Sk.builtin.OverflowError),0>n)throw new Sk.builtin.ValueError("length argument must be non-negative");if(Sk.misceval.isTrue(s))throw new Sk.builtin.NotImplementedError("to_bytes with signed=True is not yet implemented in Skulpt");if(this.nb$isnegative())throw new Sk.builtin.OverflowError("can't convert negative int to unsigned");(e=JSBI.BigInt(this.v).toString(16)).length%2&&(e="0"+e);var r=e.length/2;if(r>n){if(0===n&&"00"===e)return new Sk.builtin.bytes;throw new Sk.builtin.OverflowError("int too big to convert")}const o=Array(n).fill(0);r=n-r;let a=0;for(;rMath.abs(e)?new Sk.builtin.int_(0):Sk.__future__.bankers_rounding?(e/=t,n=Math.round(e),new Sk.builtin.int_((.5==(0e||36= 2 and <= 36");if("string"==typeof e&&(e=Number(e)),"0x"===t.substring(0,2).toLowerCase()){if(16===e||0===e)t=t.substring(2),e=16;else if(34>e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}else if("0b"===t.substring(0,2).toLowerCase()){if(2===e||0===e)t=t.substring(2),e=2;else if(12>e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}else if("0o"===t.substring(0,2).toLowerCase()){if(8===e||0===e)t=t.substring(2),e=8;else if(25>e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}else if("0"===t.charAt(0)){if("0"===t)return 0;8!==e&&0!==e||(e=8)}if(0===e&&(e=10),-1!==t.indexOf("_")){if(-1!==t.indexOf("__"))throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'");t=10!==e?t.replace(T,""):t.charAt(0)+t.substring(1).replace(T,"")}if(0===t.length)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'");for(n=0;n=r?o=r-48:65<=r&&90>=r?o=r-65+10:97<=r&&122>=r&&(o=r-97+10),o>=e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}if(s&&(t="-"+t),p(o=parseInt(t,e)))return o;for(i=!1,"-"===t[0]&&(i=!0,t=t.substring(1)),e=JSBI.BigInt(e),s=S,n=JSBI.__ZERO,r=t.length-1;0<=r;r--)48<=(o=t.charCodeAt(r))&&57>=o?o-=48:65<=o&&90>=o?o=o-65+10:97<=o&&122>=o&&(o=o-97+10),o=JSBI.multiply(JSBI.BigInt(o),s),n=JSBI.add(n,o),s=JSBI.multiply(s,e);return i&&(n=JSBI.multiply(n,JSBI.BigInt(-1))),n},Sk.builtin.int_.py2$methods={},Sk.longFromStr=function(t,e){return Sk.__future__.python3?new Sk.builtin.int_(h(t)):(t=Sk.str2number(t,e),new Sk.builtin.lng(t))},Sk.exportSymbol("Sk.longFromStr",Sk.longFromStr),Sk.builtin.int_.withinThreshold=p,Sk.builtin.int_.stringToNumberOrBig=h;const y=[.5,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,0x800000000000,281474976710656,562949953421312,0x4000000000000,0x8000000000000,4503599627370496,9007199254740992];Sk.builtin.lng=Sk.abstr.buildNativeClass("long",{base:Sk.builtin.int_,constructor:function(t){void 0!==(t=Sk.builtin.int_.call(this,t))&&(this.v=t.v)},slots:{$r(){return new Sk.builtin.str(this.v.toString()+"L")},tp$as_number:!0,nb$negative(){return new Sk.builtin.lng(v.nb$negative.call(this).v)},nb$positive(){return new Sk.builtin.lng(v.nb$positive.call(this).v)}}});const v=Sk.builtin.int_.prototype,$=[];for(t=-5;257>t;t++)$[t]=Object.create(Sk.builtin.int_.prototype,{v:{value:t}});const w=$[0],E=$[1]},function(t,e){const n=Sk.builtin.int_.prototype;Sk.builtin.bool=Sk.abstr.buildNativeClass("bool",{constructor:function(t){return Sk.misceval.isTrue(t)?Sk.builtin.bool.true$:Sk.builtin.bool.false$},base:Sk.builtin.int_,slots:{tp$doc:"bool(x) -> bool\n\nReturns True when the argument x is true, False otherwise.\nThe builtins True and False are the only two instances of the class bool.\nThe class bool is a subclass of the class int, and cannot be subclassed.",tp$new:(t,e)=>(Sk.abstr.checkNoKwargs("bool",e),Sk.abstr.checkArgsLen("bool",t,0,1),new Sk.builtin.bool(t[0])),$r(){return this.v?this.str$True:this.str$False},tp$as_number:!0,nb$and(t){return t.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v&t.v):n.nb$and.call(this,t)},nb$or(t){return t.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v|t.v):n.nb$or.call(this,t)},nb$xor(t){return t.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v^t.v):n.nb$xor.call(this,t)}},flags:{sk$unacceptableBase:!0},methods:{__format__:{$meth(){return this.$r()},$flags:{OneArg:!0}}},proto:{str$False:new Sk.builtin.str("False"),str$True:new Sk.builtin.str("True"),valueOf(){return!!this.v}}}),Sk.exportSymbol("Sk.builtin.bool",Sk.builtin.bool),Sk.builtin.bool.true$=Object.create(Sk.builtin.bool.prototype,{v:{value:1,enumerable:!0}}),Sk.builtin.bool.false$=Object.create(Sk.builtin.bool.prototype,{v:{value:0,enumerable:!0}})},function(t,e){function n(t){const e=[t,0];if(0===t)return e;var n=Math.abs(t);let i=Math.max(-1023,Math.floor(Math.log2(n))+1);for(n*=Math.pow(2,-i);.5>n;)n*=2,i--;for(;1<=n;)n*=.5,i++;return 0>t&&(n=-n),e[0]=n,e[1]=i,e}function i(){return new Sk.builtin.float_(this.v)}function s(t){return function(e){const n=this.v;if("number"!=typeof(e=e.v)){if(!JSBI.__isBigInt(e))return Sk.builtin.NotImplemented.NotImplemented$;if(1/0==(e=parseFloat(JSBI.toNumber(e)))||-1/0==e)throw new Sk.builtin.OverflowError("int too large to convert to float")}return t(n,e)}}function r(t,e){return function(n){const i=this.v;if("number"!=typeof(n=n.v)){if(!JSBI.__isBigInt(n))return Sk.builtin.NotImplemented.NotImplemented$;if(void 0!==e)return e(i,n)}return t(i,n)}}function o(t){const e=s(t);return function(t,n){if(void 0!==n&&!Sk.builtin.checkNone(n))throw new Sk.builtin.TypeError("pow() 3rd argument not allowed unless all arguments are integers");return e.call(this,t)}}function a(t,e){if(0===e)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return 1/0===t?1/0===e||-1/0===t?new Sk.builtin.float_(NaN):0>e?new Sk.builtin.float_(-1/0):new Sk.builtin.float_(1/0):-1/0===t?1/0===e||-1/0===t?new Sk.builtin.float_(NaN):0>e?new Sk.builtin.float_(1/0):new Sk.builtin.float_(-1/0):new Sk.builtin.float_(t/e)}function l(t,e){if(1/0===t||-1/0===t)return new Sk.builtin.float_(NaN);if(0===e)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return 1/0===e?0>t?new Sk.builtin.float_(-1):new Sk.builtin.float_(0):-1/0===e?0>t||0!==t?new Sk.builtin.float_(0):new Sk.builtin.float_(-1):new Sk.builtin.float_(Math.floor(t/e))}function u(t,e){if(0===e)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");if(0===t)return new Sk.builtin.float_(0);if(1/0===e)return 1/0===t||-1/0===t?new Sk.builtin.float_(NaN):0t?0n&&(n+=e):0>e&&0!==n&&(n+=e),0===n&&(0>e?n=-0:-1/0==1/0/n&&(n=0)),new Sk.builtin.float_(n)}function c(t,e){if(0>t&&0!=e%1)return new Sk.builtin.complex(t,0).nb$power(new Sk.builtin.complex(e,0));if(0===t&&0>e)throw new Sk.builtin.ZeroDivisionError("0.0 cannot be raised to a negative power");const n=Math.pow(t,e);if(1/0===Math.abs(n)&&1/0!==Math.abs(t)&&1/0!==Math.abs(e))throw new Sk.builtin.OverflowError("Numerical result out of range");return new Sk.builtin.float_(n)}Sk.builtin.float_=Sk.abstr.buildNativeClass("float",{constructor:function(t){if(Sk.asserts.assert(this instanceof Sk.builtin.float_,"bad call to float use 'new'"),"number"==typeof t)this.v=t;else if(void 0===t)this.v=0;else if("string"==typeof t)this.v=parseFloat(t);else{if(t.nb$float)return t.nb$float();Sk.asserts.fail("bad argument to float constructor")}},slots:{tp$getattr:Sk.generic.getAttr,tp$as_number:!0,tp$doc:"Convert a string or number to a floating point number, if possible.",tp$hash(){var t=this.v;if(!Number.isFinite(t))return Number.isNaN(t)?0:0e&&(t=-1,e=-e);let s,r=0;for(;e;)r=r<<28&536870911|r>>1,e*=268435456,i-=28,s=Math.trunc(e),e-=s,r+=s,536870911<=r&&(r-=536870911);return i=0<=i?i%29:28-(-1-i)%29,r=(r<>29-i)*t,-1===r?-2:r},$r(){return new Sk.builtin.str(this.str$(10,!0))},tp$new(t,e){if(e&&e.length)throw new Sk.builtin.TypeError("float() takes no keyword arguments");if(t&&1t?Math.ceil(t):Math.floor(t),Sk.builtin.int_.withinThreshold(t)?new Sk.builtin.int_(t):new Sk.builtin.int_(JSBI.BigInt(t))},nb$float:i,nb$long(){return new Sk.builtin.lng(this.nb$int().v)},nb$add:s(((t,e)=>new Sk.builtin.float_(t+e))),nb$subtract:s(((t,e)=>new Sk.builtin.float_(t-e))),nb$reflected_subtract:s(((t,e)=>new Sk.builtin.float_(e-t))),nb$multiply:s(((t,e)=>new Sk.builtin.float_(t*e))),nb$divide:s(a),nb$reflected_divide:s(((t,e)=>a(e,t))),nb$floor_divide:s(l),nb$reflected_floor_divide:s(((t,e)=>l(e,t))),nb$remainder:s(u),nb$reflected_remainder:s(((t,e)=>u(e,t))),nb$divmod:s(((t,e)=>new Sk.builtin.tuple([l(t,e),u(t,e)]))),nb$reflected_divmod:s(((t,e)=>new Sk.builtin.tuple([l(e,t),u(e,t)]))),nb$power:o(c),nb$reflected_power:o(((t,e)=>c(e,t))),nb$abs(){return new Sk.builtin.float_(Math.abs(this.v))},nb$negative(){return new Sk.builtin.float_(-this.v)},nb$positive(){return new Sk.builtin.float_(this.v)},nb$bool(){return 0!==this.v},nb$isnegative(){return 0>this.v},nb$ispositive(){return 0<=this.v},ob$eq:r(((t,e)=>t==e),JSBI.EQ),ob$ne:r(((t,e)=>t!=e),JSBI.NE),ob$gt:r(((t,e)=>t>e),JSBI.GT),ob$ge:r(((t,e)=>t>=e),JSBI.GE),ob$lt:r(((t,e)=>tt<=e),JSBI.LE)},getsets:{real:{$get:i,$doc:"the real part of a complex number"},imag:{$get:()=>new Sk.builtin.float_(0),$doc:"the imaginary part of a complex number"}},methods:{conjugate:{$meth:i,$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return self, the complex conjugate of any float."},__trunc__:{$meth(){return this.nb$int()},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return the Integral closest to x between 0 and x."},__round__:{$meth(t){return this.round$(t)},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, ndigits=None, /)",$doc:"Return the Integral closest to x, rounding half toward even.\n\nWhen an argument is passed, work like built-in round(x, ndigits)."},as_integer_ratio:{$meth(){if(!Number.isFinite(this.v)){if(Number.isNaN(this.v))throw new Sk.builtin.ValueError("cannot convert NaN to integer ratio");throw new Sk.builtin.OverflowError("cannot convert Infinity to integer ratio")}let[t,e]=n(this.v);for(var i=0;300>i&&t!=Math.floor(t);i++)t*=2,e--;i=new Sk.builtin.int_(Math.abs(e));let s=new Sk.builtin.int_(t),r=new Sk.builtin.int_(1);return 0>> (10.0).as_integer_ratio()\n(10, 1)\n>>> (0.0).as_integer_ratio()\n(0, 1)\n>>> (-.25).as_integer_ratio()\n(-1, 4)"},is_integer:{$meth(){return new Sk.builtin.bool(Number.isInteger(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if the float is an integer."},__getnewargs__:{$meth(){return new Sk.builtin.tuple([this])},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:Sk.builtin.none.none$},__format__:{$meth:Sk.formatting.mkNumber__format__(!0),$flags:{OneArg:!0},$textsig:"($self, format_spec, /)",$doc:Sk.builtin.none.none$}},proto:{valueOf(){return this.v}}});const p=/_[eE]|[eE]_|\._|_\.|[+-]_|__/,h=/_(?=[^_])/g;Sk.builtin.float_.PyFloat_Check=function(t){return void 0!==t&&!!(Sk.builtin.checkNumber(t)||Sk.builtin.checkFloat(t)||t.ob$type.$isSubType(Sk.builtin.float_))},Sk.builtin.float_.prototype.toFixed=function(t){return t=Sk.builtin.asnum$(t),this.v.toFixed(t)},Sk.builtin.float_.prototype.round$=function(t){var e=Sk.builtin.asnum$(this),n=void 0===t?0:Sk.misceval.asIndexSized(t);if(Sk.__future__.bankers_rounding){e*=Math.pow(10,n);var i=Math.round(e);return n=(.5==(0n.length?e.toExponential():e.toExponential(11)),0>n.indexOf("e")&&0<=n.indexOf(".")){for(;"0"==n.charAt(n.length-1);)n=n.substring(0,n.length-1);"."==n.charAt(n.length-1)&&(n+="0")}n=(n=(n=n.replace(/\.0+e/,"e","i")).replace(/(e[-+])([1-9])$/,"$10$2")).replace(/0+(e.*)/,"$1")}else n=e.toString(t);return 0===this.v&&-1/0==1/this.v&&(n="-"+n),0>n.indexOf(".")&&0>n.indexOf("E")&&0>n.indexOf("e")&&(n+=".0"),n},Sk.builtin.float_.py2$methods={}},function(t,e){function n(t){let e=t.v;if("number"==typeof e)return e;if(t.nb$float&&(e=t.nb$float()),void 0===e)throw new Sk.builtin.TypeError("a float is required");return e.v}function i(t,e,n){return n===Sk.builtin.complex.prototype?new Sk.builtin.complex(t,e):(n=new n.constructor,Sk.builtin.complex.call(n,t,e),n)}function s(t,e){return function(n){const i=this.real,s=this.imag;var r=n.real;const o=n.v;if("number"==typeof r)n=n.imag;else if("number"==typeof o)r=o,n=0;else{if(!JSBI.__isBigInt(o))return Sk.builtin.NotImplemented.NotImplemented$;if(void 0===e){if(1/0==(r=parseFloat(JSBI.toNumber(o)))||-1/0==r)throw new Sk.builtin.OverflowError("int too large to convert to float")}else r=o.toString();n=0}return t(i,s,r,n)}}function r(t,e,n,i){var s=Math.abs(n);const r=Math.abs(i);if(s>=r){if(0===s)throw new Sk.builtin.ZeroDivisionError("complex division by zero");i=(t+e*(s=i/n))/(n+=i*s),t=(e-t*s)/n}else r>=s?(n=n*(s=n/i)+i,Sk.asserts.assert(0!==i),i=(t*s+e)/n,t=(e*s-t)/n):t=i=NaN;return new Sk.builtin.complex(i,t)}function o(t,e,n,i){if(0===n&&0===i){i=1;var s=0}else if(0===t&&0===e){if(0!==i||0>n)throw new Sk.builtin.ZeroDivisionError("complex division by zero");s=i=0}else{const r=Math.hypot(t,e);s=Math.pow(r,n),n*=t=Math.atan2(e,t),0!==i&&(s/=Math.exp(t*i),n+=i*Math.log(r)),i=s*Math.cos(n),s*=Math.sin(n)}return new Sk.builtin.complex(i,s)}function a(t,e,n){let i=1;var s=new Sk.builtin.complex(1,0);for(t=new Sk.builtin.complex(t,e);0=i;)n&i&&(s=new Sk.builtin.complex(s.real*t.real-s.imag*t.imag,s.real*t.imag+t.real*s.imag)),i<<=1,t=new Sk.builtin.complex(t.real*t.real-t.imag*t.imag,2*t.real*t.imag);return s}function l(t,e,n,i,s){switch(s=!1,e){case"e":case"f":case"g":break;case"E":s=!0,e="e";break;case"F":s=!0,e="f";break;case"r":if(0!==n)throw Error("Bad internall call");n=17,e="g";break;default:throw Error("Bad internall call")}if(isNaN(t))t="nan";else if(1/0===t)t="inf";else if(-1/0===t)t="-inf";else{i&l.Py_DTSF_ADD_DOT_0&&(e="g");var r="%"+(i&l.Py_DTSF_ALT?"#":"");null!=n&&(r=r+"."+n),t=(t=(r=new Sk.builtin.str(r+e)).nb$remainder(new Sk.builtin.float_(t))).v}return i&l.Py_DTSF_SIGN&&"-"!==t[0]&&(t="+"+t),s&&(t=t.toUpperCase()),t}Sk.builtin.complex=Sk.abstr.buildNativeClass("complex",{constructor:function(t,e){Sk.asserts.assert(this instanceof Sk.builtin.complex,"bad call to complex constructor, use 'new'"),this.real=t,this.imag=e},slots:{tp$as_number:!0,tp$doc:"Create a complex number from a real part and an optional imaginary part.\n\nThis is equivalent to (real + imag*1j) where imag defaults to 0.",tp$hash(){var t=new Sk.builtin.float_(this.real).tp$hash();return t=1003*new Sk.builtin.float_(this.imag).tp$hash()+t,Sk.builtin.int_.withinThreshold(t)?t:new Sk.builtin.int_(JSBI.BigInt(t)).tp$hash()},tp$getattr:Sk.generic.getAttr,tp$new(t,e){{var s,r=(t=Sk.abstr.copyKeywordsToNamedArgs("complex",["real","imag"],t,e,[null,null]))[1];let a=e=!1;var o=t[0];if(null!=o&&o.constructor===Sk.builtin.complex&&null==r)e=o;else if(Sk.builtin.checkString(o)){if(null!=r)throw new Sk.builtin.TypeError("complex() can't take second arg if first is a string");e=Sk.builtin.complex.complex_subtype_from_string(o,this)}else{if(null!=r&&Sk.builtin.checkString(r))throw new Sk.builtin.TypeError("complex() second arg can't be a string");if(null==o?t=null:t=void 0!==(t=Sk.abstr.lookupSpecial(o,Sk.builtin.str.$complex))?Sk.misceval.callsimArray(t,[]):null,null!=t&&t!==Sk.builtin.NotImplemented.NotImplemented$){if(!u(t))throw new Sk.builtin.TypeError("__complex__ should return a complex object");o=t}if(null!=o&&void 0===o.nb$float)throw new Sk.builtin.TypeError("complex() first argument must be a string or a number, not '"+Sk.abstr.typeName(o)+"'");if(null!=r&&void 0===r.nb$float)throw new Sk.builtin.TypeError("complex() second argument must be a number, not '"+Sk.abstr.typeName(o)+"'");null==o?o=t=0:u(o)?(t=o.real,o=o.imag,e=!0):(t=n(o),o=0),null==r?r=s=0:u(r)?(s=r.real,r=r.imag,a=!0):(s=n(r),r=0),!0===a&&(t-=r),!0===e&&(s+=o),e=i(t,s,this)}}return e},tp$richcompare(t,e){if("Eq"!==e&&"NotEq"!==e){if(Sk.builtin.checkNumber(t)||u(t))throw new Sk.builtin.TypeError("no ordering relation is defined for complex numbers");return Sk.builtin.NotImplemented.NotImplemented$}return s((function(t,n,i,s){return t=t==i&&n==s,"Eq"===e?t:!t}),!0).call(this,t)},$r(){{var t,e;let s=t="";var n=this.real,i=this.imag;(e=0===n)&&(e=1==(n?0>n?-1:1:0>1/n?-1:1)),e?(n="",e=l(i,"g",null,0,null)):(n=t=l(n,"g",null,0,null),e=l(i,"g",null,l.Py_DTSF_SIGN,null),0===i&&-1/0==1/i&&e&&"-"!==e[0]&&(e="-"+e),t="(",s=")"),i=new Sk.builtin.str(""+t+n+e+"j"+s)}return i},nb$int(){throw new Sk.builtin.TypeError("can't convert complex to int")},nb$long(){throw new Sk.builtin.TypeError("can't convert complex to long")},nb$float(){throw new Sk.builtin.TypeError("can't convert complex to float")},nb$positive(){return new Sk.builtin.complex(this.real,this.imag)},nb$negative(){return new Sk.builtin.complex(-this.real,-this.imag)},nb$bool(){return this.real||this.imag},nb$add:s(((t,e,n,i)=>new Sk.builtin.complex(t+n,e+i))),nb$subtract:s(((t,e,n,i)=>new Sk.builtin.complex(t-n,e-i))),nb$reflected_subtract:s(((t,e,n,i)=>new Sk.builtin.complex(n-t,i-e))),nb$multiply:s(((t,e,n,i)=>new Sk.builtin.complex(n*t-i*e,t*i+e*n))),nb$divide:s(r),nb$reflected_divide:s(((t,e,n,i)=>r(n,i,t,e))),nb$floor_divide(t){throw new Sk.builtin.TypeError("can't take floor of complex number.")},nb$reflected_floor_divide(t){throw new Sk.builtin.TypeError("can't take floor of complex number.")},nb$remainder(t){throw new Sk.builtin.TypeError("can't mod complex numbers.")},nb$reflected_remainder(t){throw new Sk.builtin.TypeError("can't mod complex numbers.")},nb$divmod(t){throw new Sk.builtin.TypeError("can't take floor or mod of complex number.")},nb$power(t,e){if(null!=e&&!Sk.builtin.checkNone(e))throw new Sk.builtin.ValueError("complex modulo");return _.call(this,t)},nb$reflected_power(t,e){if(null!=e&&!Sk.builtin.checkNone(e))throw new Sk.builtin.ValueError("complex modulo");return d.call(this,t)},nb$abs(){var t=this.real;const e=this.imag;if(!Number.isFinite(t)||!Number.isFinite(e))return 1/0===t||-1/0===t?new Sk.builtin.float_(Math.abs(t)):1/0===e||-1/0===e?new Sk.builtin.float_(Math.abs(e)):new Sk.builtin.float_(NaN);if(t=Math.hypot(t,e),!Number.isFinite(t))throw new Sk.builtin.OverflowError("absolute value too large");return new Sk.builtin.float_(t)}},getsets:{real:{$get(){return new Sk.builtin.float_(this.real)},$doc:"the real part of a complex number"},imag:{$get(){return new Sk.builtin.float_(this.imag)},$doc:"the imaginary part of a complex number"}},methods:{conjugate:{$meth(){return new Sk.builtin.complex(this.real,-this.imag)},$flags:{NoArgs:!0},$textsig:null,$doc:"complex.conjugate() -> complex\n\nReturn the complex conjugate of its argument. (3-4j).conjugate() == 3+4j."},__getnewargs__:{$meth(){return new Sk.builtin.tuple([new Sk.builtin.float_(this.real),new Sk.builtin.float_(this.imag)])},$flags:{NoArgs:!0},$textsig:null,$doc:Sk.builtin.none.none$},__format__:{$meth(t){if(Sk.builtin.checkString(t))throw new Sk.builtin.NotImplementedError("__format__ is not implemented for complex type.");throw new Sk.builtin.TypeError("__format__ requires str")},$flags:{OneArg:!0},$textsig:null,$doc:"complex.__format__() -> str\n\nConvert to a string according to format_spec."}}}),Sk.exportSymbol("Sk.builtin.complex",Sk.builtin.complex);const u=Sk.builtin.checkComplex,c=/_[eE]|[eE]_|\._|_\.|[+-]_|_j|j_/,p=/_(?=[^_])/g;Sk.builtin.complex.complex_subtype_from_string=function(t,e){e=e||Sk.builtin.complex.prototype;var n=0,s=0,r=!1;if(Sk.builtin.checkString(t))t=Sk.ffi.remapToJs(t);else if("string"!=typeof t)throw new TypeError("provided unsupported string-alike argument");if(-1!==t.indexOf("\0")||0===t.length||""===t)throw new Sk.builtin.ValueError("complex() arg is a malformed string");var o=0;for(t=(t=t.replace(/inf|infinity/gi,"Infinity")).replace(/nan/gi,"NaN");" "===t[o];)o++;if("("===t[o])for(r=!0,o++;" "===t[o];)o++;if(-1!==t.indexOf("_")){if(c.test(t))throw new Sk.builtin.ValueError("could not convert string to complex: '"+t+"'");t=t.charAt(0)+t.substring(1).replace(p,"")}var a=/^(?:[+-]?(?:(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[eE][+-]?\d+)?|NaN|Infinity))/,l=t.substr(o),u=l.match(a);if(null!==u)if("j"===t[o+=u[0].length]||"J"===t[o])s=parseFloat(u[0]),o++;else if("+"===t[o]||"-"===t[o]){if(n=parseFloat(u[0]),null!==(u=t.substr(o).match(a))?(s=parseFloat(u[0]),o+=u[0].length):(s="+"===t[o]?1:-1,o++),"j"!==t[o]&&"J"!==t[o])throw new Sk.builtin.ValueError("complex() arg is malformed string");o++}else n=parseFloat(u[0]);else null!==(u=u=l.match(/^([+-]?[jJ])/))&&(s=1===u[0].length||"+"===u[0][0]?1:-1,o+=u[0].length);for(;" "===t[o];)o++;if(r){if(")"!==t[o])throw new Sk.builtin.ValueError("complex() arg is malformed string");for(o++;" "===t[o];)o++}if(t.length!==o)throw new Sk.builtin.ValueError("complex() arg is malformed string");return i(n,s,e)};const h=(t,e,n,i)=>{const s=0|n;return 0===i&&n===s?(100s?t=o(t,e,s,0):0h(n,i,t,e)));l.Py_DTSF_SIGN=1,l.Py_DTSF_ADD_DOT_0=2,l.Py_DTSF_ALT=4,l.Py_DTST_FINITE=0,l.Py_DTST_INFINITE=1,l.Py_DTST_NAN=2},function(t,e){Sk.builtin.slice=Sk.abstr.buildNativeClass("slice",{constructor:function(t,e,n){void 0===e&&void 0===n&&(e=t,t=Sk.builtin.none.none$),void 0===e&&(e=Sk.builtin.none.none$),void 0===n&&(n=Sk.builtin.none.none$),this.start=t,this.stop=e,this.step=n},slots:{tp$getattr:Sk.generic.getAttr,tp$doc:"slice(stop)\nslice(start, stop[, step])\n\nCreate a slice object. This is used for extended slicing (e.g. a[0:10:2]).",tp$hash:Sk.builtin.none.none$,tp$new:(t,e)=>(Sk.abstr.checkNoKwargs("slice",e),Sk.abstr.checkArgsLen("slice",t,1,3),new Sk.builtin.slice(...t)),$r(){const t=Sk.misceval.objectRepr(this.start),e=Sk.misceval.objectRepr(this.stop),n=Sk.misceval.objectRepr(this.step);return new Sk.builtin.str("slice("+t+", "+e+", "+n+")")},tp$richcompare(t,e){if(t.ob$type!==Sk.builtin.slice)return Sk.builtin.NotImplemented.NotImplemented$;const n=new Sk.builtin.tuple([this.start,this.stop,this.step]);return t=new Sk.builtin.tuple([t.start,t.stop,t.step]),n.tp$richcompare(t,e)}},getsets:{start:{$get(){return this.start}},step:{$get(){return this.step}},stop:{$get(){return this.stop}}},methods:{indices:{$meth:function(t){if(0>(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError)))throw new Sk.builtin.TypeError("length should not be negative");const{start:e,stop:n,step:i}=this.slice$indices(t);return new Sk.builtin.tuple([new Sk.builtin.int_(e),new Sk.builtin.int_(n),new Sk.builtin.int_(i)])},$doc:"S.indices(len) -> (start, stop, stride)\n\nAssuming a sequence of length len, calculate the start and stop\nindices, and the stride length of the extended slice described by\nS. Out of bounds indices are clipped in a manner consistent with the\nhandling of normal slices.",$textsig:null,$flags:{OneArg:!0}}},proto:{slice$as_indices(t){let e;var n=t?t=>Sk.misceval.asIndexSized(t,null,"slice indices must be integers or None or have an __index__ method"):t=>Sk.misceval.asIndexOrThrow(t,"slice indices must be integers or None or have an __index__ method");if(Sk.builtin.checkNone(this.step))e=1;else if(e=n(this.step),0===e)throw new Sk.builtin.ValueError("slice step cannot be zero");return{start:t=Sk.builtin.checkNone(this.start)?null:n(this.start),stop:n=Sk.builtin.checkNone(this.stop)?null:n(this.stop),step:e}},$wrt:(t,e,n,i,s)=>(s=s?e=>JSBI.__isBigInt(e)?JSBI.add(e,JSBI.BigInt(t)):e+t:e=>e+t,0e&&(0>(e=s(e))&&(e=0)),null===n||n>t?n=t:0>n&&(n=s(n))):(null===e||e>=t?e=t-1:0>e&&(e=s(e)),null===n?n=-1:0>n&&(0>(n=s(n))&&(n=-1))),{start:e,stop:n,step:i}),slice$indices(t,e){let{start:n,stop:i,step:s}=this.slice$as_indices(!0,e);return this.$wrt(t,n,i,s,e)},sssiter$(t,e){let{start:n,stop:i,step:s}=this.slice$indices(t,!0);if(0i;t+=s)e(t)}},flags:{sk$unacceptableBase:!0}}),Sk.builtin.slice.startEnd$wrt=function(t,e,n){return t=t.sq$length(),void 0===e||Sk.builtin.checkNone(e)?e=0:0>(e=Sk.misceval.asIndexSized(e,null,"slice indices must be integers or have an __index__ method"))&&(0>(e+=t)&&(e=0)),void 0===n||Sk.builtin.checkNone(n)?n=t:0>(n=Sk.misceval.asIndexSized(n,null,"slice indices must be integers or have an __index__ method"))?0>(n+=t)&&(n=0):n>t&&(n=t),{start:e,end:n}}},function(t,e){function n(t){return function(e){return Sk.builtin.checkAnySet(e)?t.call(this,e):Sk.builtin.NotImplemented.NotImplemented$}}function i(t){return t instanceof Sk.builtin.set&&t.tp$hash===Sk.builtin.none.none$&&(t=new Sk.builtin.frozenset(Sk.misceval.arrayFromIterable(t))),t}t={},Sk.builtin.set=Sk.abstr.buildNativeClass("set",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.set,"Bad call to set - must be called with an Array and 'new'");const e=[];for(let n=0;n new empty set object\nset(iterable) -> new set object\n\nBuild an unordered collection of unique elements.",tp$init(t,e){return Sk.abstr.checkNoKwargs("set",e),Sk.abstr.checkArgsLen("set",t,0,1),this.set$clear(),(t=t[0])&&this.set$update(t)},tp$new:Sk.generic.new,$r(){if(this.in$repr)return new Sk.builtin.str(Sk.abstr.typeName(this)+"(...)");this.in$repr=!0;const t=this.sk$asarray().map((t=>Sk.misceval.objectRepr(t)));return this.in$repr=!1,Sk.__future__.python3?0===t.length?new Sk.builtin.str(Sk.abstr.typeName(this)+"()"):this.ob$type!==Sk.builtin.set?new Sk.builtin.str(Sk.abstr.typeName(this)+"({"+t.join(", ")+"})"):new Sk.builtin.str("{"+t.join(", ")+"}"):new Sk.builtin.str(Sk.abstr.typeName(this)+"(["+t.join(", ")+"])")},tp$iter(){return new s(this)},tp$richcompare(t,e){if(!Sk.builtin.checkAnySet(t))return Sk.builtin.NotImplemented.NotImplemented$;switch(e){case"NotEq":case"Eq":return t=this===t||this.get$size()===t.get$size()&&Sk.misceval.isTrue(this.set$issubset(t)),"Eq"===e?t:!t;case"LtE":return this===t||Sk.misceval.isTrue(this.set$issubset(t));case"GtE":return this===t||Sk.misceval.isTrue(t.set$issubset(this));case"Lt":return this.get$size()t.get$size()&&Sk.misceval.isTrue(t.set$issubset(this))}},nb$subtract:n((function(t){return this.difference.$meth.call(this,t)})),nb$and:n((function(t){return this.intersection.$meth.call(this,t)})),nb$or:n((function(t){return this.union.$meth.call(this,t)})),nb$xor:n((function(t){return this.symmetric_difference.$meth.call(this,t)})),nb$inplace_subtract:n((function(t){return t===this&&(t=t.set$copy()),Sk.misceval.chain(this.difference_update.$meth.call(this,t),(()=>this))})),nb$inplace_and:n((function(t){return Sk.misceval.chain(this.intersection_update.$meth.call(this,t),(()=>this))})),nb$inplace_or:n((function(t){return Sk.misceval.chain(this.update.$meth.call(this,t),(()=>this))})),nb$inplace_xor:n((function(t){return t===this&&(t=t.set$copy()),Sk.misceval.chain(this.symmetric_difference_update.$meth.call(this,t),(()=>this))})),sq$length(){return this.get$size()},sq$contains(t){return t=i(t),this.v.sq$contains(t)}},methods:{add:{$meth(t){return this.set$add(t),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Add an element to a set.\n\nThis has no effect if the element is already present."},clear:{$meth(){return this.set$clear(),Sk.builtin.none.none$},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove all elements from this set."},copy:{$meth(){return this.set$copy()},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a shallow copy of a set."},discard:{$meth(t){return t=i(t),this.set$discard(t),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Remove an element from a set if it is a member.\n\nIf the element is not a member, do nothing."},difference:{$meth(...t){const e=this.set$copy();return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>e.set$difference_update(t))),(()=>e))},$flags:{MinArgs:0},$textsig:null,$doc:"Return the difference of two or more sets as a new set.\n\n(i.e. all elements that are in this set but not the others.)"},difference_update:{$meth(...t){return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>this.set$difference_update(t))),(()=>Sk.builtin.none.none$))},$flags:{MinArgs:0},$textsig:null,$doc:"Remove all elements of another set from this set."},intersection:{$meth(...t){return this.set$intersection_multi(...t)},$flags:{MinArgs:0},$textsig:null,$doc:"Return the intersection of two sets as a new set.\n\n(i.e. all elements that are in both sets.)"},intersection_update:{$meth(...t){return Sk.misceval.chain(this.set$intersection_multi(...t),(t=>(this.swap$bodies(t),Sk.builtin.none.none$)))},$flags:{MinArgs:0},$textsig:null,$doc:"Update a set with the intersection of itself and another."},isdisjoint:{$meth(t){return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(this.sq$contains(t))return new Sk.misceval.Break(Sk.builtin.bool.false$)})),(t=>t||Sk.builtin.bool.true$))},$flags:{OneArg:!0},$textsig:null,$doc:"Return True if two sets have a null intersection."},issubset:{$meth(t){return Sk.builtin.checkAnySet(t)||(t=this.set$make_basetype(t)),Sk.misceval.chain(t,(t=>this.set$issubset(t)))},$flags:{OneArg:!0},$textsig:null,$doc:"Report whether another set contains this set."},issuperset:{$meth(t){return Sk.builtin.checkAnySet(t)||(t=this.set$make_basetype(t)),Sk.misceval.chain(t,(t=>t.set$issubset(this)))},$flags:{OneArg:!0},$textsig:null,$doc:"Report whether this set contains another set."},pop:{$meth(){if(0===this.get$size())throw new Sk.builtin.KeyError("pop from an empty set");return Sk.misceval.callsimArray(this.v.popitem,[this.v]).v[0]},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove and return an arbitrary set element.\nRaises KeyError if the set is empty."},remove:{$meth(t){const e=i(t);if(this.v.mp$lookup(e))return this.v.mp$ass_subscript(e),Sk.builtin.none.none$;throw new Sk.builtin.KeyError(t)},$flags:{OneArg:!0},$textsig:null,$doc:"Remove an element from a set; it must be a member.\n\nIf the element is not a member, raise a KeyError."},symmetric_difference:{$meth(t){let e;return Sk.misceval.chain(this.set$make_basetype(t),(t=>(e=t,e.set$symmetric_diff_update(this))),(()=>e))},$flags:{OneArg:!0},$textsig:null,$doc:"Return the symmetric difference of two sets as a new set.\n\n(i.e. all elements that are in exactly one of the sets.)"},symmetric_difference_update:{$meth(t){return Sk.builtin.checkAnySet(t)||(t=this.set$make_basetype(t)),Sk.misceval.chain(t,(t=>this.set$symmetric_diff_update(t)),(()=>Sk.builtin.none.none$))},$flags:{OneArg:!0},$textsig:null,$doc:"Update a set with the symmetric difference of itself and another."},union:{$meth(...t){const e=this.set$copy();return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>e.set$update(t))),(()=>e))},$flags:{MinArgs:0},$textsig:null,$doc:"Return the union of sets as a new set.\n\n(i.e. all elements that are in either set.)"},update:{$meth(...t){return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>this.set$update(t))),(()=>Sk.builtin.none.none$))},$flags:{MinArgs:0},$textsig:null,$doc:"Update a set with the union of itself and others."}},classmethods:Sk.generic.classGetItem,proto:Object.assign(t,{sk$asarray(){return this.v.sk$asarray()},get$size(){return this.v.sq$length()},set$add(t){this.v.mp$ass_subscript(t,!0)},set$make_basetype(t){return Sk.misceval.chain(Sk.misceval.arrayFromIterable(t,!0),(t=>new this.sk$builtinBase(t)))},set$discard(t){return this.v.pop$item(t)},set$clear(){this.v=new Sk.builtin.dict([])},set$copy(){const t=new this.sk$builtinBase;return t.v=this.v.dict$copy(),t},set$difference_update(t){return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.set$discard(t)}))},set$intersection(t){const e=new this.sk$builtinBase;return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.sq$contains(t)&&e.set$add(t)})),(()=>e))},set$intersection_multi(...t){if(!t.length)return this.set$copy();let e=this;return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>Sk.misceval.chain(e.set$intersection(t),(t=>{e=t})))),(()=>e))},set$issubset(t){if(this.get$size()>t.get$size())return Sk.builtin.bool.false$;for(let e=this.tp$iter(),n=e.tp$iternext();void 0!==n;n=e.tp$iternext())if(!t.sq$contains(n))return Sk.builtin.bool.false$;return Sk.builtin.bool.true$},set$symmetric_diff_update(t){return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{void 0===this.set$discard(t)&&this.set$add(t)}))},set$update(t){return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.set$add(t)}))},swap$bodies(t){this.v=t.v}})}),Sk.exportSymbol("Sk.builtin.set",Sk.builtin.set),e=Sk.builtin.set.prototype,Sk.builtin.frozenset=Sk.abstr.buildNativeClass("frozenset",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.frozenset,"bad call to frozen set - must be called with 'new'");const e=[];for(let n=0;n empty frozenset object\nfrozenset(iterable) -> frozenset object\n\nBuild an immutable unordered collection of unique elements.",tp$hash(){let t=1927868237;const e=this.sk$asarray();t*=e.length+1;for(let n=0;nt.length?new Sk.builtin.frozenset(t):Sk.builtin.frozenset.$emptyset)))},$r:e.$r,tp$iter:e.tp$iter,tp$richcompare:e.tp$richcompare,nb$subtract:e.nb$subtract,nb$and:e.nb$and,nb$or:e.nb$or,nb$xor:e.nb$xor,sq$length:e.sq$length,sq$contains:e.sq$contains},methods:{copy:Object.assign({},e.copy.d$def,{$meth(){return this.constructor===this.sk$builtinBase?this:new Sk.builtin.frozenset(this.sk$asarray())}}),difference:e.difference.d$def,intersection:e.intersection.d$def,isdisjoint:e.isdisjoint.d$def,issubset:e.issubset.d$def,issuperset:e.issuperset.d$def,symmetric_difference:e.symmetric_difference.d$def,union:e.union.d$def},classmethods:Sk.generic.classGetItem,proto:Object.assign({$subtype_new(t,e){const n=new this.constructor;return Sk.misceval.chain(Sk.builtin.frozenset.prototype.tp$new(t),(t=>(n.v=t.v,n)))}},t)}),Sk.builtin.frozenset.$emptyset=new Sk.builtin.frozenset([]),Sk.exportSymbol("Sk.builtin.frozenset",Sk.builtin.frozenset);var s=Sk.abstr.buildIteratorClass("set_iterator",{constructor:function(t){this.$index=0,this.$seq=t.sk$asarray(),this.$orig=t},iternext:Sk.generic.iterNextWithArrayCheckSize,methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}})},function(t,e){Sk.builtin.print=function(t,e){let n,[i,s,r]=Sk.abstr.copyKeywordsToNamedArgs("print",["sep","end","file","flush"],[],e);if(void 0===i||Sk.builtin.checkNone(i))i=" ";else{if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("sep must be None or a string, not "+Sk.abstr.typeName(i));i=i.$jsstr()}if(void 0===s||Sk.builtin.checkNone(s))s="\n";else{if(!Sk.builtin.checkString(s))throw new Sk.builtin.TypeError("end must be None or a string, not "+Sk.abstr.typeName(s));s=s.$jsstr()}if(void 0!==r&&!Sk.builtin.checkNone(r)&&(n=Sk.abstr.lookupSpecial(r,Sk.builtin.str.$write),void 0===n))throw new Sk.builtin.AttributeError("'"+Sk.abstr.typeName(r)+"' object has no attribute 'write'");const o=new Sk.builtin.str(t.map((t=>new Sk.builtin.str(t).toString())).join(i)+s);if(void 0===n)return Sk.misceval.chain(Sk.importModule("sys",!1,!0),(t=>(n=Sk.abstr.lookupSpecial(t.$d.stdout,Sk.builtin.str.$write))&&Sk.misceval.callsimOrSuspendArray(n,[o])));Sk.misceval.callsimArray(n,[o])},Sk.builtin.print.co_fastcall=1},function(t,e){Sk.builtin.module=Sk.abstr.buildNativeClass("module",{constructor:function(){this.$d={}},slots:{tp$doc:"Create a module object.\n\nThe name must be a string; the optional doc argument can have any type.",tp$getattr(t,e){var n=this.$d[t.$mangled];if(void 0!==n)return n;if(void 0!==(n=this.ob$type.$typeLookup(t))){const t=n.tp$descr_get;return t?t.call(n,this,this.ob$type,e):n}const i=this.$d.__getattr__;return void 0!==i?(n=Sk.misceval.tryCatch((()=>Sk.misceval.callsimOrSuspendArray(i,[t])),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t})),e?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)):void 0},tp$setattr:Sk.generic.setAttr,tp$new:Sk.generic.new,tp$init(t,e){const[n,i]=Sk.abstr.copyKeywordsToNamedArgs("module",["name","doc"],t,e,[Sk.builtin.none.none$]);Sk.builtin.pyCheckType("module","string",n),this.init$dict(n,i)},$r(){let t=this.get$name();if(void 0!==t){var e=this.get$mod_reprf();if(void 0!==e)return Sk.misceval.callsimOrSuspendArray(e,[this])}return t=void 0===t?"'?'":t,e=void 0===(e=this.from$file())?this.empty_or$loader():e,new Sk.builtin.str("")}},getsets:{__dict__:{$get(){return new Sk.builtin.mappingproxy(this.$d)}}},methods:{__dir__:{$meth(){const t=this.tp$getattr(Sk.builtin.str.$dict);if(!Sk.builtin.checkMapping(t))throw new Sk.builtin.TypeError("__dict__ is not a dictionary");const e=t.mp$lookup(Sk.builtin.str.$dir);return void 0!==e?Sk.misceval.callsimOrSuspendArray(e,[]):new Sk.builtin.list(Sk.misceval.arrayFromIterable(t))},$flags:{NoArgs:!0},$doc:"__dir__() -> list\nspecialized dir() implementation"}},proto:{sk$hasDict:!0,init$dict(t,e){this.$d.__name__=t,this.$d.__doc__=e,this.$d.__package__=Sk.builtin.none.none$,this.$d.__spec__=Sk.builtin.none.none$,this.$d.__loader__=Sk.builtin.none.none$},sk$attrError(){let t=this.get$name();return t=void 0===t?"module":"module "+t,this.$initializing&&(t="(most likely due to a circular import) partially initialized "+t),t},get$name(){const t=this.tp$getattr(Sk.builtin.str.$name);return t&&Sk.misceval.objectRepr(t)},from$file(){const t=this.tp$getattr(Sk.builtin.str.$file);return t&&" from "+Sk.misceval.objectRepr(t)},empty_or$loader(){if(this.$js&&this.$js.includes("$builtinmodule"))return" (built-in)";const t=this.tp$getattr(Sk.builtin.str.$loader);return void 0===t||Sk.builtin.checkNone(t)?"":" ("+Sk.misceval.objectRepr(t)+")"},get$mod_reprf(){const t=this.tp$getattr(Sk.builtin.str.$loader);return t&&t.tp$getattr(this.str$mod_repr)},str$mod_repr:new Sk.builtin.str("module_repr")}}),Sk.exportSymbol("Sk.builtin.module",Sk.builtin.module)},function(t,e){Sk.builtin.structseq_types={},Sk.builtin.make_structseq=function(t,e,n,i,s){i=void 0===i?{}:i,s=void 0===s?null:s;const r=t+"."+e,o=[],a={};Object.keys(n).forEach(((t,e)=>{o.push(t),a[t]={$get(){return this.v[e]},$doc:n[t]}}));const l=o.length;let u=l;Object.keys(i).forEach(((t,e)=>{a[t]={$get(){return this.$hidden[e]||Sk.builtin.none.none$},$doc:i[t]},u++}));var c=Sk.abstr.buildNativeClass(r,{constructor:function(t,e){Sk.asserts.assert(this instanceof c),Sk.builtin.tuple.call(this,t),this.$hidden=e||[]},base:Sk.builtin.tuple,slots:{tp$new(t,e){if(Sk.abstr.checkOneArg(r,t,e),(t=Sk.misceval.arrayFromIterable(t[0])).lengthu)throw new Sk.builtin.TypeError(r+"() takes an at most "+u+"-sequence ("+t.length+"-sequence given)");return new c(t.slice(0,l),t.slice(l))},tp$doc:s||Sk.builtin.none.none$,$r(){var t;if(0===this.v.length)return new Sk.builtin.str(r+"()");var e=[];for(t=0;t")}},iternext(t,e){var n=this;if(this.gi$running)throw new Sk.builtin.ValueError("generator already executing");return this.gi$running=!0,void 0===e&&(e=Sk.builtin.none.none$),this.gi$sentvalue=e,e=[this],this.func_closure&&e.push(this.func_closure),function e(i){if(i instanceof Sk.misceval.Suspension){if(t)return new Sk.misceval.Suspension(e,i);i=Sk.misceval.retryOptionalSuspensionOrThrow(i)}if(n.gi$running=!1,Sk.asserts.assert(void 0!==i),Array.isArray(i))return n.gi$resumeat=i[0],i[1];n.gi$ret=i}(this.func_code.apply(this.func_globals,e))},methods:{send:{$meth(t){return Sk.misceval.chain(this.tp$iternext(!0,t),(t=>{if(void 0===t)throw void 0!==(t=this.gi$ret)&&t!==Sk.builtin.none.none$?new Sk.builtin.StopIteration(t):new Sk.builtin.StopIteration;return t}))},$flags:{OneArg:!0},$doc:"send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration."}}}),Sk.exportSymbol("Sk.builtin.generator",Sk.builtin.generator),Sk.builtin.makeGenerator=function(t,e){var n,i=new Sk.builtin.generator(null,null,null);for(n in i.tp$iternext=t,e)e.hasOwnProperty(n)&&(i[n]=e[n]);return i},Sk.exportSymbol("Sk.builtin.makeGenerator",Sk.builtin.makeGenerator)},function(t,e){Sk.builtin.file=function(t,e,n){var i;if(!(this instanceof Sk.builtin.file))return new Sk.builtin.file(t,e,n);if(this.mode=e,this.name=Sk.ffi.remapToJs(t),this.closed=!1,"/dev/stdout"===this.name)this.data$=Sk.builtin.none.none$,this.fileno=1;else if("/dev/stdin"===this.name)this.fileno=0;else if("/dev/stderr"===this.name)this.fileno=2;else{if(Sk.inBrowser)if(this.fileno=10,null==(n=document.getElementById(t.v))){if("w"!=e.v&&"a"!=e.v)throw new Sk.builtin.IOError("[Errno 2] No such file or directory: '"+t.v+"'");this.data$=""}else"textarea"==n.nodeName.toLowerCase()?this.data$=n.value:this.data$=n.textContent;else this.fileno=11,this.data$=Sk.read(t.v);for(i in this.lineList=this.data$.split("\n"),this.lineList=this.lineList.slice(0,-1),this.lineList)this.lineList[i]+="\n";this.currentLine=0}return this.pos$=0,Sk.fileopen&&10<=this.fileno&&Sk.fileopen(this),this},Sk.abstr.setUpInheritance("file",Sk.builtin.file,Sk.builtin.object),Sk.abstr.setUpBuiltinMro(Sk.builtin.file),Sk.builtin.file.prototype.$r=function(){return new Sk.builtin.str("<"+(this.closed?"closed":"open")+"file '"+this.name+"', mode '"+Sk.ffi.remapToJs(this.mode)+"'>")},Sk.builtin.file.prototype.tp$iter=function(){var t={tp$iter:function(){return t},$obj:this,$index:this.currentLine,$lines:this.lineList,tp$iternext:function(){if(!(t.$index>=t.$lines.length))return new Sk.builtin.str(t.$lines[t.$index++])}};return t},Sk.abstr.setUpSlots(Sk.builtin.file),Sk.builtin.file.prototype.__enter__=new Sk.builtin.func((function(t){return t})),Sk.builtin.file.prototype.__exit__=new Sk.builtin.func((function(t){return Sk.misceval.callsimArray(Sk.builtin.file.prototype.close,[t])})),Sk.builtin.file.prototype.close=new Sk.builtin.func((function(t){return t.closed=!0,Sk.builtin.none.none$})),Sk.builtin.file.prototype.flush=new Sk.builtin.func((function(t){})),Sk.builtin.file.prototype.fileno=new Sk.builtin.func((function(t){return this.fileno})),Sk.builtin.file.prototype.isatty=new Sk.builtin.func((function(t){return!1})),Sk.builtin.file.prototype.read=new Sk.builtin.func((function(t,e){var n=t.data$.length;if(t.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var i=void 0===e?n:Sk.ffi.remapToJs(e);return i=new Sk.builtin.str(t.data$.substr(t.pos$,i)),t.pos$=void 0===e?n:t.pos$+Sk.ffi.remapToJs(e),t.pos$>=n&&(t.pos$=n),i})),Sk.builtin.file.$readline=function(t,e,n){if(0===t.fileno){if(t=Sk.ffi.remapToJs(n),(t=Sk.inputfun(t||""))instanceof Promise||t&&"function"==typeof t.then){var i=new Sk.misceval.Suspension;return i.resume=function(){if(i.data.error)throw i.data.error;return new Sk.builtin.str(i.data.result)},i.data={type:"Sk.promise",promise:t},i}return new Sk.builtin.str(t)}return e="",t.currentLinen(t,e))));if("object"===i){if((i=t.constructor)===Object&&Object.getPrototypeOf(t)===c||void 0===i)return e.dictHook?e.dictHook(t):l(t,e);if(i===Uint8Array)return new Sk.builtin.bytes(t);if(i===Set)return a(t,e);if(i===Map){const i=new Sk.builtin.dict;return t.forEach(((t,s)=>{i.mp$ass_subscript(n(s,e),n(t,e))})),i}return i===Sk.misceval.Suspension?t:e.proxyHook?e.proxyHook(t):u(t)}if(e.unhandledHook)return e.unhandledHook(t);Sk.asserts.fail("unhandled remap case of type "+i)}function i(t,e){if(null==t)return t;const n=t.valueOf();if(null===n)return n;const o=typeof n;return e=e||{},"string"===o?e.stringHook?e.stringHook(n):n:"boolean"===o?n:"number"===o?e.numberHook?e.numberHook(n,t):n:JSBI.__isBigInt(n)?e.bigintHook?e.bigintHook(n,t):n:Array.isArray(n)?e.arrayHook?e.arrayHook(n,t):n.map((t=>i(t,e))):n.sk$object?t instanceof Sk.builtin.dict?e.dictHook?e.dictHook(t):r(t,e):t instanceof Sk.builtin.set?e.setHook?e.setHook(t):new Set(s(t,e)):e.unhandledHook?e.unhandledHook(t):void 0:"object"===o?e.objectHook?e.objectHook(n,t):n:"function"===o?e.funcHook?e.funcHook(n,t):n:void Sk.asserts.fail("unhandled type "+o)}function s(t,e){return Array.from(t,(t=>i(t,e)))}function r(t,e){const n={};return t.$items().forEach((t=>{var[s,r]=t;n[s.valueOf()]=i(r,e)})),n}function o(t){return Number.isInteger(t)?Math.abs(t)n(t,e))))}function l(t,e){const i=new Sk.builtin.dict;return Object.entries(t).forEach((t=>{var[s,r]=t;i.mp$ass_subscript(new Sk.builtin.str(s),n(r,e))})),i}function u(t,e){if(null==t)return Sk.builtin.none.none$;var i=typeof t;if("object"!==i&&"function"!==i)return n(t);if(e=e||{},i=_.get(t)){if(e.bound===i.$bound)return i;e.name||(e.name=i.$name)}return e=new g(t,e),_.set(t,e),e}Sk.ffi={remapToPy:n,remapToJs:i,toPy:n,toJs:i,isTrue:function(t){return null!=t&&t.nb$bool?t.nb$bool():t.sq$length?0!==t.sq$length():!!t},toJsString:function(t){return String(t)},toJsNumber:function(t){return Number(t)},toJsArray:s,toJsHashMap:r,toPyDict:l,toPyFloat:function(t){return new Sk.builtin.float_(Number(t))},toPyInt:function(t){if("number"==typeof t)return t=Math.trunc(t),Math.abs(t)n(t,e))))},toPyTuple:function(t,e){return new Sk.builtin.tuple(Array.from(t,(t=>n(t,e))))},toPySet:a,numberToPy:o,proxy:u};const c=Object.prototype,p=Function.prototype,h=/^-?\d+$/,_=new WeakMap,d={dictHook:t=>u(t),unhandledHook:t=>String(t)},f=(t,e)=>({dictHook:t=>u(t),funcHook:n=>u(n,{bound:t,name:e}),unhandledHook:t=>String(t)}),m={unhandledHook:t=>{var e=_.get(t);if(e)return e;if(e={v:t,$isPyWrapped:!0,unwrap:()=>t},void 0===t.tp$call)return _.set(t,e),e;const s=(...e)=>{e=e.map((t=>n(t,d)));let s=Sk.misceval.tryCatch((()=>Sk.misceval.chain(t.tp$call(e),(t=>i(t,m)))),(t=>{if(!Sk.uncaughtException)throw t;Sk.uncaughtException(t)}));for(;s instanceof Sk.misceval.Suspension;){if(!s.optional)return Sk.misceval.asyncToPromise((()=>s));s=s.resume()}return s};return _.set(t,Object.assign(s,e)),s}},g=Sk.abstr.buildNativeClass("Proxy",{constructor:function(t,e){if(void 0===t)throw new Sk.builtin.TypeError("Proxy cannot be called from python");this.js$wrapped=t,this.$module=null,this.$methods=Object.create(null),this.in$repr=!1,e||(e={}),Object.defineProperties(this,this.memoized$slots),"function"==typeof t?(this.is$callable=!0,this.$bound=e.bound,this.$name=e.name||t.name||"(native JS)",2>=this.$name.length&&(this.$name+=" (native JS)")):(this.is$callable=!1,delete this.is$type,this.is$type=!1,this.$name=e.name)},slots:{tp$doc:"proxy for a javascript object",tp$hash(){return Sk.builtin.object.prototype.tp$hash.call(this.js$wrapped)},tp$getattr(t){return this.$lookup(t)||Sk.generic.getAttr.call(this,t)},tp$setattr(t,e){t=t.toString(),void 0===e?delete this.js$wrapped[t]:this.js$wrapped[t]=i(e,m)},$r(){if(this.is$callable){if(this.is$type||!this.$bound)return new Sk.builtin.str("<"+this.tp$name+" '"+this.$name+"'>");var t=Sk.misceval.objectRepr(u(this.$bound));return new Sk.builtin.str("")}return this.js$proto===c?this.in$repr?new Sk.builtin.str("{...}"):(this.in$repr=!0,t=Object.entries(this.js$wrapped).map((t=>{var[e,i]=t;return i=n(i,f(this.js$wrapped,e)),"'"+e+"': "+Sk.misceval.objectRepr(i)})),t=new Sk.builtin.str("proxyobject({"+t.join(", ")+"})"),this.in$repr=!1,t):new Sk.builtin.str("<"+this.tp$name+" "+("proxyobject"===this.tp$name?"object":"proxyobject")+">")},tp$as_sequence_or_mapping:!0,mp$subscript(t){const e=this.$lookup(t);if(void 0===e)throw new Sk.builtin.LookupError(t);return e},mp$ass_subscript(t,e){return this.tp$setattr(t,e)},sq$contains(t){return i(t)in this.js$wrapped},ob$eq(t){return this.js$wrapped===t.js$wrapped},ob$ne(t){return this.js$wrapped!==t.js$wrapped},tp$as_number:!0,nb$bool(){return this.js$proto===c?0new Sk.builtin.str(t)))))},$flags:{NoArgs:!0}},__new__:{$meth(t,...e){if(!(t instanceof g))throw new Sk.builtin.TypeError("expected a proxy object as the first argument not "+Sk.abstr.typeName(t));try{return t.$new(e)}catch(e){if(e instanceof TypeError&&e.message.includes("not a constructor"))throw new Sk.builtin.TypeError(Sk.misceval.objectRepr(t)+" is not a constructor");throw e}},$flags:{MinArgs:1}},__call__:{$meth(t,e){if("function"!=typeof this.js$wrapped)throw new Sk.builtin.TypeError("'"+this.tp$name+"' object is not callable");return this.$call(t,e)},$flags:{FastCall:!0}},keys:{$meth(){return new Sk.builtin.list(Object.keys(this.js$wrapped).map((t=>new Sk.builtin.str(t))))},$flags:{NoArgs:!0}},get:{$meth(t,e){return this.$lookup(t)||e||Sk.builtin.none.none$},$flags:{MinArgs:1,MaxArgs:2}}},getsets:{__class__:{$get(){return n(this.js$wrapped.constructor,d)},$set(){throw new Sk.builtin.TypeError("not writable")}},__name__:{$get(){return new Sk.builtin.str(this.$name)}},__module__:{$get(){return this.$module||Sk.builtin.none.none$},$set(t){this.$module=t}}},proto:{valueOf(){return this.js$wrapped},$new(t,e){return Sk.abstr.checkNoKwargs("__new__",e),n(new this.js$wrapped(...t.map((t=>i(t,m)))),{dictHook:t=>u(t),proxyHook:t=>u(t,{name:this.$name})})},$call(t,e){return Sk.abstr.checkNoKwargs("__call__",e),Sk.misceval.chain(this.js$wrapped.apply(this.$bound,t.map((t=>i(t,m)))),(t=>t instanceof Promise?Sk.misceval.promiseToSuspension(t):t),(t=>n(t,d)))},$lookup(t){t=t.toString();const e=this.js$wrapped[t];return void 0!==e?n(e,f(this.js$wrapped,t)):t in this.js$wrapped?Sk.builtin.none.none$:void 0},memoized$slots:{js$proto:{configurable:!0,get(){return delete this.js$proto,this.js$proto=Object.getPrototypeOf(this.js$wrapped)}},$dir:{configurable:!0,get(){const t=[];let e=this.js$wrapped;for(;null!=e&&e!==c&&e!==p;)t.push(...Object.getOwnPropertyNames(e)),e=Object.getPrototypeOf(e);return new Set(t)}},tp$iter:{configurable:!0,get(){return delete this.tp$iter,void 0!==this.js$wrapped[Symbol.iterator]?this.tp$iter=()=>u(this.js$wrapped[Symbol.iterator]()):this.tp$iter=()=>{throw new Sk.builtin.TypeError(Sk.misceval.objectRepr(this)+" is not iterable")}}},tp$iternext:{configurable:!0,get(){if(delete this.tp$iternext,void 0!==this.js$wrapped.next)return this.tp$iternext=()=>{const t=this.js$wrapped.next().value;return t&&n(t,d)}}},sq$length:{configurable:!0,get(){if(delete this.sq$length,!this.is$callable&&void 0!==this.js$wrapped.length)return this.sq$length=()=>this.js$wrapped.length}},tp$call:{configurable:!0,get(){if(delete this.tp$call,this.is$callable)return this.tp$call=this.is$type?this.$new:this.$call}},tp$name:{configurable:!0,get(){if(delete this.tp$name,this.is$callable)return this.tp$name=this.is$type?"proxyclass":this.$bound?"proxymethod":"proxyfunction";{const t=this.js$wrapped;let e=t[Symbol.toStringTag]||this.$name||t.constructor&&t.constructor.name||"proxyobject";return"Object"===e?e="proxyobject":2>=e.length&&(e=u(t.constructor).$name),this.tp$name=e}}},is$type:{configurable:!0,get(){delete this.is$type;var t=this.js$wrapped;const e=t.prototype;if(void 0===e)return this.is$type=t===Sk.global.Proxy;{const e=S.call(t).match(b);t=null===e?null:"class"===e[0]||!k.has(t)}return!0===t?this.is$type=!0:!1===t?this.is$type=!1:1e;r+=n)s.push(new Sk.builtin.int_(r));else{if(t=r=JSBI.BigInt(t),n=JSBI.BigInt(n),e=JSBI.BigInt(e),JSBI.greaterThan(n,JSBI.__ZERO))for(;JSBI.lessThan(r,e);)s.push(new Sk.builtin.int_(i(r))),r=JSBI.add(r,n);else for(;JSBI.greaterThan(r,e);)s.push(new Sk.builtin.int_(i(r))),r=JSBI.add(r,n);t=i(t),n=i(n),e=i(e)}return new Sk.builtin.range_(t,e,n,s)}function i(t){return JSBI.lessThan(t,JSBI.__MAX_SAFE)&&JSBI.greaterThan(t,JSBI.__MIN_SAFE)?JSBI.toNumber(t):t}Sk.builtin.range_=Sk.abstr.buildNativeClass("range",{constructor:function(t,e,n,i){this.start=t,this.stop=e,this.step=n,this.v=i},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$doc:"range(stop) -> range object\nrange(start, stop[, step]) -> range object\n\nReturn an object that produces a sequence of integers from start (inclusive)\nto stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.\nstart defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.\nThese are exactly the valid indices for a list of 4 elements.\nWhen step is given, it specifies the increment (or decrement).",tp$new:(t,e)=>(Sk.abstr.checkNoKwargs("range",e),Sk.abstr.checkArgsLen("range",t,1,3),n(t[0],t[1],t[2])),$r(){let t="range("+this.start+", "+this.stop;return 1!=this.step&&(t+=", "+this.step),new Sk.builtin.str(t+")")},tp$richcompare(t,e){return"Eq"!==e&&"NotEq"!==e||t.ob$type!==Sk.builtin.range_?Sk.builtin.NotImplemented.NotImplemented$:(t=new Sk.builtin.list(t.v),new Sk.builtin.list(this.v).tp$richcompare(t,e))},tp$iter(){return new s(this)},nb$bool(){return 0!==this.v.length},sq$contains(t){const e=this.v;for(let n=0;n(t=Sk.misceval.asIndexSized(t))&&(t=this.v.length+t),0>t||t>=this.v.length)throw new Sk.builtin.IndexError("range object index out of range");return this.v[t]}if(t.constructor===Sk.builtin.slice){const e=[],n=this.v;t.sssiter$(n.length,(t=>{e.push(n[t])}));let{start:i,stop:s,step:r}=t.slice$indices(n.length);return i=Sk.misceval.asIndex(n[i])||this.start,s=Sk.misceval.asIndex(n[s])||this.stop,r="number"==typeof this.step?r*this.step:JSBI.multiply(this.step,JSBI.BigInt(r)),new Sk.builtin.range_(i,s,r,e)}throw new Sk.builtin.TypeError("range indices must be integers or slices, not "+Sk.abstr.typeName(t))}},getsets:{start:{$get(){return new Sk.builtin.int_(this.start)}},step:{$get(){return new Sk.builtin.int_(this.step)}},stop:{$get(){return new Sk.builtin.int_(this.stop)}}},methods:{__reversed__:{$meth(){return new r(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a reverse iterator."},count:{$meth(t){let e=0;for(let n=0;n integer -- return number of occurrences of value"},index:{$meth(t){for(let e=0;e integer -- return index of value.\nRaise ValueError if the value is not present."}},proto:{sk$asarray(){return this.v.slice(0)}},flags:{sk$unacceptableBase:!0}});var s=Sk.abstr.buildIteratorClass("range_iterator",{constructor:function(t){this.$index=0,this.$seq=t.v},iternext(){return this.$seq[this.$index++]},methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}}),r=Sk.abstr.buildIteratorClass("range_reverseiterator",{constructor:function(t){this.$seq=t.v,this.$index=this.$seq.length-1},iternext(){return this.$seq[this.$index--]},methods:{__length_hint__:Sk.generic.iterReverseLengthHintMethodDef},flags:{sk$unacceptableBase:!0}});Sk.builtin.range=Sk.builtin.xrange=function(t,e,i){return t=n(t,e,i),new Sk.builtin.list(t.v)}},function(t,e){Sk.builtin.enumerate=Sk.abstr.buildIteratorClass("enumerate",{constructor:function(t,e){if(!(this instanceof Sk.builtin.enumerate))throw TypeError("Failed to construct 'enumerate': Please use the 'new' operator");return this.$iterable=t,this.$index=e,this},iternext(t){const e=Sk.misceval.chain(this.$iterable.tp$iternext(t),(t=>{if(void 0!==t)return new Sk.builtin.tuple([new Sk.builtin.int_(this.$index++),t])}));return t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)},slots:{tp$doc:"Return an enumerate object.\n\n iterable\n an object supporting iteration\n\nThe enumerate object yields pairs containing a count (from start, which\ndefaults to zero) and a value yielded by the iterable argument.\n\nenumerate is useful for obtaining an indexed list:\n (0, seq[0]), (1, seq[1]), (2, seq[2]), ...",tp$new(t,e){let[n,i]=Sk.abstr.copyKeywordsToNamedArgs("enumerate",["iterable","start"],t,e,[new Sk.builtin.int_(0)]);return n=Sk.abstr.iter(n),i=Sk.misceval.asIndexOrThrow(i),this===Sk.builtin.enumerate.prototype?new Sk.builtin.enumerate(n,i):(t=new this.constructor,Sk.builtin.enumerate.call(t,n,i),t)}},classmethods:Sk.generic.classGetItem}),Sk.exportSymbol("Sk.builtin.enumerate",Sk.builtin.enumerate)},function(t,e){Sk.builtin.filter_=Sk.abstr.buildIteratorClass("filter",{constructor:function(t,e){this.$func=t,this.$iterable=e},iternext(t){const e=Sk.misceval.iterFor(this.$iterable,(t=>Sk.misceval.chain(this.check$filter(t),(t=>t?new Sk.misceval.Break(t):void 0))));return t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)},slots:{tp$doc:"Return an iterator yielding those items of iterable for which function(item)\nis true. If function is None, return the items that are true.",tp$new(t,e){let[n,i]=Sk.abstr.copyKeywordsToNamedArgs("filter",["predicate","iterable"],t,e,[]);return n=Sk.builtin.checkNone(n)?null:n,i=Sk.abstr.iter(i),this===Sk.builtin.filter_.prototype?new Sk.builtin.filter_(n,i):(t=new this.constructor,Sk.builtin.filter_.call(t,n,i),t)}},proto:{check$filter(t){let e;return e=null===this.$func?t:Sk.misceval.callsimOrSuspendArray(this.$func,[t]),Sk.misceval.chain(e,(e=>Sk.misceval.isTrue(e)?t:void 0))}}}),Sk.exportSymbol("Sk.builtin.filter_",Sk.builtin.filter_)},function(t,e){Sk.builtin.map_=Sk.abstr.buildIteratorClass("map",{constructor:function(t,e){this.$func=t,this.$iters=e},iternext(t){const e=[],n=Sk.misceval.chain(Sk.misceval.iterArray(this.$iters,(n=>Sk.misceval.chain(n.tp$iternext(t),(t=>{if(void 0===t)return new Sk.misceval.Break(!0);e.push(t)})))),(t=>t?void 0:Sk.misceval.callsimOrSuspendArray(this.$func,e)));return t?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)},slots:{tp$doc:"map(func, *iterables) --\x3e map object\n\nMake an iterator that computes the function using arguments from\neach of the iterables. Stops when the shortest iterable is exhausted.",tp$new(t,e){this===Sk.builtin.map_.prototype&&Sk.abstr.checkNoKwargs("map",e),Sk.abstr.checkArgsLen("map",t,2),e=t[0];const n=[];for(let e=1;ethis.$idx)){var e=Sk.misceval.tryCatch((()=>Sk.abstr.objectGetItem(this.$seq,new Sk.builtin.int_(this.$idx--),t)),(t=>{if(!(t instanceof Sk.builtin.IndexError))throw t;this.$idx=-1}));return t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)}},slots:{tp$doc:"Return a reverse iterator over the values of the given sequence.",tp$new(t,e){if(this===Sk.builtin.reversed.prototype&&Sk.abstr.checkNoKwargs("reversed",e),Sk.abstr.checkArgsLen("reversed",t,1,1),t=t[0],void 0!==(e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$reversed)))return Sk.misceval.callsimArray(e,[]);if(!Sk.builtin.checkSequence(t)||void 0===Sk.abstr.lookupSpecial(t,Sk.builtin.str.$len))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not a sequence");return this===Sk.builtin.reversed.prototype?new Sk.builtin.reversed(t):(e=new this.constructor,Sk.builtin.reversed.call(e,t),e)}},methods:{__length_hint__:{$meth:function(){return 0<=this.$idx?new Sk.builtin.int_(this.$idx):new Sk.builtin.int_(0)},$flags:{NoArgs:!0}}}})},function(t,e){Sk.builtin.zip_=Sk.abstr.buildIteratorClass("zip",{constructor:function(t){this.$iters=t,0===t.length&&(this.tp$iternext=()=>{})},iternext(t){const e=[],n=Sk.misceval.chain(Sk.misceval.iterArray(this.$iters,(n=>Sk.misceval.chain(n.tp$iternext(t),(t=>{if(void 0===t)return new Sk.misceval.Break(!0);e.push(t)})))),(t=>t?void 0:new Sk.builtin.tuple(e)));return t?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)},slots:{tp$doc:"zip(iter1 [,iter2 [...]]) --\x3e zip object\n\nReturn a zip object whose .__next__() method returns a tuple where\nthe i-th element comes from the i-th iterable argument. The .__next__()\nmethod continues until the shortest iterable in the argument sequence\nis exhausted and then it raises StopIteration.",tp$new(t,e){this===Sk.builtin.zip_.prototype&&Sk.abstr.checkNoKwargs("zip",e),e=[];for(let n=0;n":n.T_RARROW,".":n.T_DOT,"...":n.T_ELLIPSIS,"/":n.T_SLASH,"//":n.T_DOUBLESLASH,"//=":n.T_DOUBLESLASHEQUAL,"/=":n.T_SLASHEQUAL,":":n.T_COLON,";":n.T_SEMI,"<":n.T_LESS,"<<":n.T_LEFTSHIFT,"<<=":n.T_LEFTSHIFTEQUAL,"<=":n.T_LESSEQUAL,"=":n.T_EQUAL,"==":n.T_EQEQUAL,">":n.T_GREATER,">=":n.T_GREATEREQUAL,">>":n.T_RIGHTSHIFT,">>=":n.T_RIGHTSHIFTEQUAL,"@":n.T_AT,"@=":n.T_ATEQUAL,"[":n.T_LSQB,"]":n.T_RSQB,"^":n.T_CIRCUMFLEX,"^=":n.T_CIRCUMFLEXEQUAL,"{":n.T_LBRACE,"|":n.T_VBAR,"|=":n.T_VBAREQUAL,"}":n.T_RBRACE,"~":n.T_TILDE};var i={};!function(){for(var t in n)i[n[t]]=t}(),["tok_name","ISTERMINAL","ISNONTERMINAL","ISEOF"].concat(Object.keys(i).map((function(t){return i[t]}))),Sk.token={},Sk.token.tokens=n,Sk.token.tok_name=i,Sk.token.EXACT_TOKEN_TYPES=t,Sk.token.ISTERMINAL=function(t){return t=n.T_NT_OFFSET},Sk.token.ISEOF=function(t){return t==n.T_ENDMARKER},Sk.exportSymbol("Sk.token",Sk.token),Sk.exportSymbol("Sk.token.tokens",Sk.token.tokens),Sk.exportSymbol("Sk.token.tok_name",Sk.token.tok_name),Sk.exportSymbol("Sk.token.EXACT_TOKEN_TYPES"),Sk.exportSymbol("Sk.token.ISTERMINAL",Sk.token.ISTERMINAL),Sk.exportSymbol("Sk.token.ISNONTERMINAL",Sk.token.ISNONTERMINAL),Sk.exportSymbol("Sk.token.ISEOF",Sk.token.ISEOF)},function(t,e){Sk.OpMap={"(":Sk.token.tokens.T_LPAR,")":Sk.token.tokens.T_RPAR,"[":Sk.token.tokens.T_LSQB,"]":Sk.token.tokens.T_RSQB,":":Sk.token.tokens.T_COLON,",":Sk.token.tokens.T_COMMA,";":Sk.token.tokens.T_SEMI,"+":Sk.token.tokens.T_PLUS,"-":Sk.token.tokens.T_MINUS,"*":Sk.token.tokens.T_STAR,"/":Sk.token.tokens.T_SLASH,"|":Sk.token.tokens.T_VBAR,"&":Sk.token.tokens.T_AMPER,"<":Sk.token.tokens.T_LESS,">":Sk.token.tokens.T_GREATER,"=":Sk.token.tokens.T_EQUAL,".":Sk.token.tokens.T_DOT,"%":Sk.token.tokens.T_PERCENT,"`":Sk.token.tokens.T_BACKQUOTE,"{":Sk.token.tokens.T_LBRACE,"}":Sk.token.tokens.T_RBRACE,"@":Sk.token.tokens.T_AT,"@=":Sk.token.tokens.T_ATEQUAL,"==":Sk.token.tokens.T_EQEQUAL,"!=":Sk.token.tokens.T_NOTEQUAL,"<>":Sk.token.tokens.T_NOTEQUAL,"<=":Sk.token.tokens.T_LESSEQUAL,">=":Sk.token.tokens.T_GREATEREQUAL,"~":Sk.token.tokens.T_TILDE,"^":Sk.token.tokens.T_CIRCUMFLEX,"<<":Sk.token.tokens.T_LEFTSHIFT,">>":Sk.token.tokens.T_RIGHTSHIFT,"**":Sk.token.tokens.T_DOUBLESTAR,"+=":Sk.token.tokens.T_PLUSEQUAL,"-=":Sk.token.tokens.T_MINEQUAL,"*=":Sk.token.tokens.T_STAREQUAL,"/=":Sk.token.tokens.T_SLASHEQUAL,"%=":Sk.token.tokens.T_PERCENTEQUAL,"&=":Sk.token.tokens.T_AMPEREQUAL,"|=":Sk.token.tokens.T_VBAREQUAL,"^=":Sk.token.tokens.T_CIRCUMFLEXEQUAL,"<<=":Sk.token.tokens.T_LEFTSHIFTEQUAL,">>=":Sk.token.tokens.T_RIGHTSHIFTEQUAL,"**=":Sk.token.tokens.T_DOUBLESTAREQUAL,"//":Sk.token.tokens.T_DOUBLESLASH,"//=":Sk.token.tokens.T_DOUBLESLASHEQUAL,"->":Sk.token.tokens.T_RARROW,"...":Sk.token.tokens.T_ELLIPSIS},Sk.ParseTables={sym:{and_expr:257,and_test:258,annassign:259,arglist:260,argument:261,arith_expr:262,assert_stmt:263,async_funcdef:264,async_stmt:265,atom:266,atom_expr:267,augassign:268,break_stmt:269,classdef:270,comp_for:271,comp_if:272,comp_iter:273,comp_op:274,comparison:275,compound_stmt:276,continue_stmt:277,debugger_stmt:278,decorated:279,decorator:280,decorators:281,del_stmt:282,dictorsetmaker:283,dotted_as_name:284,dotted_as_names:285,dotted_name:286,encoding_decl:287,eval_input:288,except_clause:289,expr:290,expr_stmt:291,exprlist:292,factor:293,file_input:294,flow_stmt:295,for_stmt:296,funcdef:297,global_stmt:298,if_stmt:299,import_as_name:300,import_as_names:301,import_from:302,import_name:303,import_stmt:304,lambdef:305,lambdef_nocond:306,nonlocal_stmt:307,not_test:308,or_test:309,parameters:310,pass_stmt:311,power:312,print_stmt:313,raise_stmt:314,return_stmt:315,shift_expr:316,simple_stmt:317,single_input:256,sliceop:318,small_stmt:319,star_expr:320,stmt:321,subscript:322,subscriptlist:323,suite:324,term:325,test:326,test_nocond:327,testlist:328,testlist_comp:329,testlist_star_expr:330,tfpdef:331,trailer:332,try_stmt:333,typedargslist:334,varargslist:335,vfpdef:336,while_stmt:337,with_item:338,with_stmt:339,xor_expr:340,yield_arg:341,yield_expr:342,yield_stmt:343},number2symbol:{256:"single_input",257:"and_expr",258:"and_test",259:"annassign",260:"arglist",261:"argument",262:"arith_expr",263:"assert_stmt",264:"async_funcdef",265:"async_stmt",266:"atom",267:"atom_expr",268:"augassign",269:"break_stmt",270:"classdef",271:"comp_for",272:"comp_if",273:"comp_iter",274:"comp_op",275:"comparison",276:"compound_stmt",277:"continue_stmt",278:"debugger_stmt",279:"decorated",280:"decorator",281:"decorators",282:"del_stmt",283:"dictorsetmaker",284:"dotted_as_name",285:"dotted_as_names",286:"dotted_name",287:"encoding_decl",288:"eval_input",289:"except_clause",290:"expr",291:"expr_stmt",292:"exprlist",293:"factor",294:"file_input",295:"flow_stmt",296:"for_stmt",297:"funcdef",298:"global_stmt",299:"if_stmt",300:"import_as_name",301:"import_as_names",302:"import_from",303:"import_name",304:"import_stmt",305:"lambdef",306:"lambdef_nocond",307:"nonlocal_stmt",308:"not_test",309:"or_test",310:"parameters",311:"pass_stmt",312:"power",313:"print_stmt",314:"raise_stmt",315:"return_stmt",316:"shift_expr",317:"simple_stmt",318:"sliceop",319:"small_stmt",320:"star_expr",321:"stmt",322:"subscript",323:"subscriptlist",324:"suite",325:"term",326:"test",327:"test_nocond",328:"testlist",329:"testlist_comp",330:"testlist_star_expr",331:"tfpdef",332:"trailer",333:"try_stmt",334:"typedargslist",335:"varargslist",336:"vfpdef",337:"while_stmt",338:"with_item",339:"with_stmt",340:"xor_expr",341:"yield_arg",342:"yield_expr",343:"yield_stmt"},dfas:{256:[[[[1,1],[2,1],[3,2]],[[0,1]],[[2,1]]],{2:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1}],257:[[[[44,1]],[[45,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],258:[[[[46,1]],[[47,0],[0,1]]],{6:1,7:1,8:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],259:[[[[48,1]],[[49,2]],[[50,3],[0,2]],[[49,4]],[[0,4]]],{48:1}],260:[[[[51,1]],[[52,2],[0,1]],[[51,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,53:1}],261:[[[[49,1],[15,2],[53,2]],[[50,2],[54,3],[0,1]],[[49,3]],[[0,3]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,53:1}],262:[[[[55,1]],[[30,0],[43,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],263:[[[[24,1]],[[49,2]],[[52,3],[0,2]],[[49,4]],[[0,4]]],{24:1}],264:[[[[10,1]],[[56,2]],[[0,2]]],{10:1}],265:[[[[10,1]],[[57,2],[56,2],[58,2]],[[0,2]]],{10:1}],266:[[[[6,1],[25,1],[33,1],[9,1],[11,1],[12,2],[35,3],[38,4],[19,1],[7,5]],[[0,1]],[[59,1],[60,6]],[[61,1],[62,7],[63,7]],[[64,1],[63,8]],[[7,5],[0,5]],[[59,1]],[[61,1]],[[64,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,25:1,33:1,35:1,38:1}],267:[[[[29,1],[65,2]],[[65,2]],[[66,2],[0,2]]],{6:1,7:1,9:1,11:1,12:1,19:1,25:1,29:1,33:1,35:1,38:1}],268:[[[[67,1],[68,1],[69,1],[70,1],[71,1],[72,1],[73,1],[74,1],[75,1],[76,1],[77,1],[78,1],[79,1]],[[0,1]]],{67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:1,75:1,76:1,77:1,78:1,79:1}],269:[[[[39,1]],[[0,1]]],{39:1}],270:[[[[13,1]],[[25,2]],[[48,3],[35,4]],[[80,5]],[[61,6],[81,7]],[[0,5]],[[48,3]],[[61,6]]],{13:1}],271:[[[[10,1],[34,2]],[[34,2]],[[82,3]],[[83,4]],[[84,5]],[[85,6],[0,5]],[[0,6]]],{10:1,34:1}],272:[[[[37,1]],[[86,2]],[[85,3],[0,2]],[[0,3]]],{37:1}],273:[[[[87,1],[54,1]],[[0,1]]],{10:1,34:1,37:1}],274:[[[[88,1],[89,1],[8,2],[90,1],[88,1],[83,1],[91,1],[92,3],[93,1],[94,1]],[[0,1]],[[83,1]],[[8,1],[0,3]]],{8:1,83:1,88:1,89:1,90:1,91:1,92:1,93:1,94:1}],275:[[[[95,1]],[[96,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],276:[[[[97,1],[98,1],[58,1],[99,1],[57,1],[100,1],[56,1],[101,1],[102,1]],[[0,1]]],{4:1,10:1,13:1,20:1,21:1,34:1,37:1,41:1,42:1}],277:[[[[40,1]],[[0,1]]],{40:1}],278:[[[[17,1]],[[0,1]]],{17:1}],279:[[[[103,1]],[[56,2],[104,2],[99,2]],[[0,2]]],{41:1}],280:[[[[41,1]],[[105,2]],[[2,4],[35,3]],[[61,5],[81,6]],[[0,4]],[[2,4]],[[61,5]]],{41:1}],281:[[[[106,1]],[[106,1],[0,1]]],{41:1}],282:[[[[27,1]],[[82,2]],[[0,2]]],{27:1}],283:[[[[49,1],[107,2],[53,3]],[[48,4],[54,5],[52,6],[0,1]],[[54,5],[52,6],[0,2]],[[95,7]],[[49,7]],[[0,5]],[[49,8],[107,8],[0,6]],[[54,5],[52,9],[0,7]],[[52,6],[0,8]],[[49,10],[53,11],[0,9]],[[48,12]],[[95,13]],[[49,13]],[[52,9],[0,13]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,53:1}],284:[[[[105,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],{25:1}],285:[[[[109,1]],[[52,0],[0,1]]],{25:1}],286:[[[[25,1]],[[110,0],[0,1]]],{25:1}],287:[[[[25,1]],[[0,1]]],{25:1}],288:[[[[111,1]],[[2,1],[112,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],289:[[[[113,1]],[[49,2],[0,1]],[[108,3],[52,3],[0,2]],[[49,4]],[[0,4]]],{113:1}],290:[[[[114,1]],[[115,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],291:[[[[116,1]],[[117,2],[50,3],[118,4],[0,1]],[[111,4],[62,4]],[[116,5],[62,5]],[[0,4]],[[50,3],[0,5]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],292:[[[[95,1],[107,1]],[[52,2],[0,1]],[[95,1],[107,1],[0,2]]],{6:1,7:1,9:1,11:1,12:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],293:[[[[119,2],[30,1],[22,1],[43,1]],[[120,2]],[[0,2]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],294:[[[[2,0],[112,1],[121,0]],[[0,1]]],{2:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1,112:1}],295:[[[[122,1],[123,1],[124,1],[125,1],[126,1]],[[0,1]]],{5:1,23:1,31:1,39:1,40:1}],296:[[[[34,1]],[[82,2]],[[83,3]],[[111,4]],[[48,5]],[[80,6]],[[127,7],[0,6]],[[48,8]],[[80,9]],[[0,9]]],{34:1}],297:[[[[4,1]],[[25,2]],[[128,3]],[[48,4],[129,5]],[[80,6]],[[49,7]],[[0,6]],[[48,4]]],{4:1}],298:[[[[26,1]],[[25,2]],[[52,1],[0,2]]],{26:1}],299:[[[[37,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[130,1],[0,4]],[[48,6]],[[80,7]],[[0,7]]],{37:1}],300:[[[[25,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],{25:1}],301:[[[[131,1]],[[52,2],[0,1]],[[131,1],[0,2]]],{25:1}],302:[[[[36,1]],[[105,2],[19,3],[110,3]],[[32,4]],[[105,2],[19,3],[32,4],[110,3]],[[132,5],[15,5],[35,6]],[[0,5]],[[132,7]],[[61,5]]],{36:1}],303:[[[[32,1]],[[133,2]],[[0,2]]],{32:1}],304:[[[[134,1],[135,1]],[[0,1]]],{32:1,36:1}],305:[[[[14,1]],[[48,2],[136,3]],[[49,4]],[[48,2]],[[0,4]]],{14:1}],306:[[[[14,1]],[[48,2],[136,3]],[[86,4]],[[48,2]],[[0,4]]],{14:1}],307:[[[[18,1]],[[25,2]],[[52,1],[0,2]]],{18:1}],308:[[[[8,1],[137,2]],[[46,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],309:[[[[138,1]],[[139,0],[0,1]]],{6:1,7:1,8:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],310:[[[[35,1]],[[61,2],[140,3]],[[0,2]],[[61,2]]],{35:1}],311:[[[[28,1]],[[0,1]]],{28:1}],312:[[[[141,1]],[[53,2],[0,1]],[[120,3]],[[0,3]]],{6:1,7:1,9:1,11:1,12:1,19:1,25:1,29:1,33:1,35:1,38:1}],313:[[[[16,1]],[[49,2],[142,3],[0,1]],[[52,4],[0,2]],[[49,5]],[[49,2],[0,4]],[[52,6],[0,5]],[[49,7]],[[52,8],[0,7]],[[49,7],[0,8]]],{16:1}],314:[[[[5,1]],[[49,2],[0,1]],[[36,3],[52,3],[0,2]],[[49,4]],[[52,5],[0,4]],[[49,6]],[[0,6]]],{5:1}],315:[[[[23,1]],[[111,2],[0,1]],[[0,2]]],{23:1}],316:[[[[143,1]],[[144,0],[142,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],317:[[[[145,1]],[[2,2],[146,3]],[[0,2]],[[145,1],[2,2]]],{5:1,6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,16:1,17:1,18:1,19:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,35:1,36:1,38:1,39:1,40:1,43:1}],318:[[[[48,1]],[[49,2],[0,1]],[[0,2]]],{48:1}],319:[[[[147,1],[148,1],[149,1],[150,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1]],[[0,1]]],{5:1,6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,16:1,17:1,18:1,19:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,35:1,36:1,38:1,39:1,40:1,43:1}],320:[[[[15,1]],[[95,2]],[[0,2]]],{15:1}],321:[[[[1,1],[3,1]],[[0,1]]],{4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1}],322:[[[[49,1],[48,2]],[[48,2],[0,1]],[[49,3],[157,4],[0,2]],[[157,4],[0,3]],[[0,4]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,48:1}],323:[[[[158,1]],[[52,2],[0,1]],[[158,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,48:1}],324:[[[[1,1],[2,2]],[[0,1]],[[159,3]],[[121,4]],[[160,1],[121,4]]],{2:1,5:1,6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,16:1,17:1,18:1,19:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,35:1,36:1,38:1,39:1,40:1,43:1}],325:[[[[120,1]],[[161,0],[15,0],[162,0],[41,0],[163,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],326:[[[[84,1],[164,2]],[[37,3],[0,1]],[[0,2]],[[84,4]],[[127,5]],[[49,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],327:[[[[165,1],[84,1]],[[0,1]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],328:[[[[49,1]],[[52,2],[0,1]],[[49,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],329:[[[[49,1],[107,1]],[[54,2],[52,3],[0,1]],[[0,2]],[[49,4],[107,4],[0,3]],[[52,3],[0,4]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],330:[[[[49,1],[107,1]],[[52,2],[0,1]],[[49,1],[107,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],331:[[[[25,1]],[[48,2],[0,1]],[[49,3]],[[0,3]]],{25:1}],332:[[[[35,1],[110,2],[38,3]],[[61,4],[81,5]],[[25,4]],[[166,6]],[[0,4]],[[61,4]],[[64,4]]],{35:1,38:1,110:1}],333:[[[[20,1]],[[48,2]],[[80,3]],[[167,4],[168,5]],[[48,6]],[[48,7]],[[80,8]],[[80,9]],[[167,4],[127,10],[168,5],[0,8]],[[0,9]],[[48,11]],[[80,12]],[[168,5],[0,12]]],{20:1}],334:[[[[15,1],[169,2],[53,3]],[[169,4],[52,5],[0,1]],[[50,6],[52,7],[0,2]],[[169,8]],[[52,5],[0,4]],[[169,9],[53,3],[0,5]],[[49,10]],[[15,11],[169,2],[53,3],[0,7]],[[52,12],[0,8]],[[50,13],[52,5],[0,9]],[[52,7],[0,10]],[[169,14],[52,15],[0,11]],[[0,12]],[[49,4]],[[52,15],[0,14]],[[169,16],[53,3],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],{15:1,25:1,53:1}],335:[[[[15,1],[53,2],[170,3]],[[170,5],[52,4],[0,1]],[[170,6]],[[50,7],[52,8],[0,3]],[[53,2],[170,9],[0,4]],[[52,4],[0,5]],[[52,10],[0,6]],[[49,11]],[[15,12],[53,2],[170,3],[0,8]],[[50,13],[52,4],[0,9]],[[0,10]],[[52,8],[0,11]],[[52,15],[170,14],[0,12]],[[49,5]],[[52,15],[0,14]],[[53,2],[170,16],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],{15:1,25:1,53:1}],336:[[[[25,1]],[[0,1]]],{25:1}],337:[[[[21,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[0,4]],[[48,6]],[[80,7]],[[0,7]]],{21:1}],338:[[[[49,1]],[[108,2],[0,1]],[[95,3]],[[0,3]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],339:[[[[42,1]],[[171,2]],[[48,3],[52,1]],[[80,4]],[[0,4]]],{42:1}],340:[[[[172,1]],[[173,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],341:[[[[111,2],[36,1]],[[49,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,36:1,38:1,43:1}],342:[[[[31,1]],[[174,2],[0,1]],[[0,2]]],{31:1}],343:[[[[62,1]],[[0,1]]],{31:1}]},states:[[[[1,1],[2,1],[3,2]],[[0,1]],[[2,1]]],[[[44,1]],[[45,0],[0,1]]],[[[46,1]],[[47,0],[0,1]]],[[[48,1]],[[49,2]],[[50,3],[0,2]],[[49,4]],[[0,4]]],[[[51,1]],[[52,2],[0,1]],[[51,1],[0,2]]],[[[49,1],[15,2],[53,2]],[[50,2],[54,3],[0,1]],[[49,3]],[[0,3]]],[[[55,1]],[[30,0],[43,0],[0,1]]],[[[24,1]],[[49,2]],[[52,3],[0,2]],[[49,4]],[[0,4]]],[[[10,1]],[[56,2]],[[0,2]]],[[[10,1]],[[57,2],[56,2],[58,2]],[[0,2]]],[[[6,1],[25,1],[33,1],[9,1],[11,1],[12,2],[35,3],[38,4],[19,1],[7,5]],[[0,1]],[[59,1],[60,6]],[[61,1],[62,7],[63,7]],[[64,1],[63,8]],[[7,5],[0,5]],[[59,1]],[[61,1]],[[64,1]]],[[[29,1],[65,2]],[[65,2]],[[66,2],[0,2]]],[[[67,1],[68,1],[69,1],[70,1],[71,1],[72,1],[73,1],[74,1],[75,1],[76,1],[77,1],[78,1],[79,1]],[[0,1]]],[[[39,1]],[[0,1]]],[[[13,1]],[[25,2]],[[48,3],[35,4]],[[80,5]],[[61,6],[81,7]],[[0,5]],[[48,3]],[[61,6]]],[[[10,1],[34,2]],[[34,2]],[[82,3]],[[83,4]],[[84,5]],[[85,6],[0,5]],[[0,6]]],[[[37,1]],[[86,2]],[[85,3],[0,2]],[[0,3]]],[[[87,1],[54,1]],[[0,1]]],[[[88,1],[89,1],[8,2],[90,1],[88,1],[83,1],[91,1],[92,3],[93,1],[94,1]],[[0,1]],[[83,1]],[[8,1],[0,3]]],[[[95,1]],[[96,0],[0,1]]],[[[97,1],[98,1],[58,1],[99,1],[57,1],[100,1],[56,1],[101,1],[102,1]],[[0,1]]],[[[40,1]],[[0,1]]],[[[17,1]],[[0,1]]],[[[103,1]],[[56,2],[104,2],[99,2]],[[0,2]]],[[[41,1]],[[105,2]],[[2,4],[35,3]],[[61,5],[81,6]],[[0,4]],[[2,4]],[[61,5]]],[[[106,1]],[[106,1],[0,1]]],[[[27,1]],[[82,2]],[[0,2]]],[[[49,1],[107,2],[53,3]],[[48,4],[54,5],[52,6],[0,1]],[[54,5],[52,6],[0,2]],[[95,7]],[[49,7]],[[0,5]],[[49,8],[107,8],[0,6]],[[54,5],[52,9],[0,7]],[[52,6],[0,8]],[[49,10],[53,11],[0,9]],[[48,12]],[[95,13]],[[49,13]],[[52,9],[0,13]]],[[[105,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],[[[109,1]],[[52,0],[0,1]]],[[[25,1]],[[110,0],[0,1]]],[[[25,1]],[[0,1]]],[[[111,1]],[[2,1],[112,2]],[[0,2]]],[[[113,1]],[[49,2],[0,1]],[[108,3],[52,3],[0,2]],[[49,4]],[[0,4]]],[[[114,1]],[[115,0],[0,1]]],[[[116,1]],[[117,2],[50,3],[118,4],[0,1]],[[111,4],[62,4]],[[116,5],[62,5]],[[0,4]],[[50,3],[0,5]]],[[[95,1],[107,1]],[[52,2],[0,1]],[[95,1],[107,1],[0,2]]],[[[119,2],[30,1],[22,1],[43,1]],[[120,2]],[[0,2]]],[[[2,0],[112,1],[121,0]],[[0,1]]],[[[122,1],[123,1],[124,1],[125,1],[126,1]],[[0,1]]],[[[34,1]],[[82,2]],[[83,3]],[[111,4]],[[48,5]],[[80,6]],[[127,7],[0,6]],[[48,8]],[[80,9]],[[0,9]]],[[[4,1]],[[25,2]],[[128,3]],[[48,4],[129,5]],[[80,6]],[[49,7]],[[0,6]],[[48,4]]],[[[26,1]],[[25,2]],[[52,1],[0,2]]],[[[37,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[130,1],[0,4]],[[48,6]],[[80,7]],[[0,7]]],[[[25,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],[[[131,1]],[[52,2],[0,1]],[[131,1],[0,2]]],[[[36,1]],[[105,2],[19,3],[110,3]],[[32,4]],[[105,2],[19,3],[32,4],[110,3]],[[132,5],[15,5],[35,6]],[[0,5]],[[132,7]],[[61,5]]],[[[32,1]],[[133,2]],[[0,2]]],[[[134,1],[135,1]],[[0,1]]],[[[14,1]],[[48,2],[136,3]],[[49,4]],[[48,2]],[[0,4]]],[[[14,1]],[[48,2],[136,3]],[[86,4]],[[48,2]],[[0,4]]],[[[18,1]],[[25,2]],[[52,1],[0,2]]],[[[8,1],[137,2]],[[46,2]],[[0,2]]],[[[138,1]],[[139,0],[0,1]]],[[[35,1]],[[61,2],[140,3]],[[0,2]],[[61,2]]],[[[28,1]],[[0,1]]],[[[141,1]],[[53,2],[0,1]],[[120,3]],[[0,3]]],[[[16,1]],[[49,2],[142,3],[0,1]],[[52,4],[0,2]],[[49,5]],[[49,2],[0,4]],[[52,6],[0,5]],[[49,7]],[[52,8],[0,7]],[[49,7],[0,8]]],[[[5,1]],[[49,2],[0,1]],[[36,3],[52,3],[0,2]],[[49,4]],[[52,5],[0,4]],[[49,6]],[[0,6]]],[[[23,1]],[[111,2],[0,1]],[[0,2]]],[[[143,1]],[[144,0],[142,0],[0,1]]],[[[145,1]],[[2,2],[146,3]],[[0,2]],[[145,1],[2,2]]],[[[48,1]],[[49,2],[0,1]],[[0,2]]],[[[147,1],[148,1],[149,1],[150,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1]],[[0,1]]],[[[15,1]],[[95,2]],[[0,2]]],[[[1,1],[3,1]],[[0,1]]],[[[49,1],[48,2]],[[48,2],[0,1]],[[49,3],[157,4],[0,2]],[[157,4],[0,3]],[[0,4]]],[[[158,1]],[[52,2],[0,1]],[[158,1],[0,2]]],[[[1,1],[2,2]],[[0,1]],[[159,3]],[[121,4]],[[160,1],[121,4]]],[[[120,1]],[[161,0],[15,0],[162,0],[41,0],[163,0],[0,1]]],[[[84,1],[164,2]],[[37,3],[0,1]],[[0,2]],[[84,4]],[[127,5]],[[49,2]]],[[[165,1],[84,1]],[[0,1]]],[[[49,1]],[[52,2],[0,1]],[[49,1],[0,2]]],[[[49,1],[107,1]],[[54,2],[52,3],[0,1]],[[0,2]],[[49,4],[107,4],[0,3]],[[52,3],[0,4]]],[[[49,1],[107,1]],[[52,2],[0,1]],[[49,1],[107,1],[0,2]]],[[[25,1]],[[48,2],[0,1]],[[49,3]],[[0,3]]],[[[35,1],[110,2],[38,3]],[[61,4],[81,5]],[[25,4]],[[166,6]],[[0,4]],[[61,4]],[[64,4]]],[[[20,1]],[[48,2]],[[80,3]],[[167,4],[168,5]],[[48,6]],[[48,7]],[[80,8]],[[80,9]],[[167,4],[127,10],[168,5],[0,8]],[[0,9]],[[48,11]],[[80,12]],[[168,5],[0,12]]],[[[15,1],[169,2],[53,3]],[[169,4],[52,5],[0,1]],[[50,6],[52,7],[0,2]],[[169,8]],[[52,5],[0,4]],[[169,9],[53,3],[0,5]],[[49,10]],[[15,11],[169,2],[53,3],[0,7]],[[52,12],[0,8]],[[50,13],[52,5],[0,9]],[[52,7],[0,10]],[[169,14],[52,15],[0,11]],[[0,12]],[[49,4]],[[52,15],[0,14]],[[169,16],[53,3],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],[[[15,1],[53,2],[170,3]],[[170,5],[52,4],[0,1]],[[170,6]],[[50,7],[52,8],[0,3]],[[53,2],[170,9],[0,4]],[[52,4],[0,5]],[[52,10],[0,6]],[[49,11]],[[15,12],[53,2],[170,3],[0,8]],[[50,13],[52,4],[0,9]],[[0,10]],[[52,8],[0,11]],[[52,15],[170,14],[0,12]],[[49,5]],[[52,15],[0,14]],[[53,2],[170,16],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],[[[25,1]],[[0,1]]],[[[21,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[0,4]],[[48,6]],[[80,7]],[[0,7]]],[[[49,1]],[[108,2],[0,1]],[[95,3]],[[0,3]]],[[[42,1]],[[171,2]],[[48,3],[52,1]],[[80,4]],[[0,4]]],[[[172,1]],[[173,0],[0,1]]],[[[111,2],[36,1]],[[49,2]],[[0,2]]],[[[31,1]],[[174,2],[0,1]],[[0,2]]],[[[62,1]],[[0,1]]]],labels:[[0,"EMPTY"],[317,null],[4,null],[276,null],[1,"def"],[1,"raise"],[1,"True"],[3,null],[1,"not"],[1,"None"],[55,null],[2,null],[25,null],[1,"class"],[1,"lambda"],[16,null],[1,"print"],[1,"debugger"],[1,"nonlocal"],[52,null],[1,"try"],[1,"while"],[31,null],[1,"return"],[1,"assert"],[1,null],[1,"global"],[1,"del"],[1,"pass"],[54,null],[15,null],[1,"yield"],[1,"import"],[1,"False"],[1,"for"],[7,null],[1,"from"],[1,"if"],[9,null],[1,"break"],[1,"continue"],[49,null],[1,"with"],[14,null],[316,null],[19,null],[308,null],[1,"and"],[11,null],[326,null],[22,null],[261,null],[12,null],[35,null],[271,null],[325,null],[297,null],[339,null],[296,null],[26,null],[283,null],[8,null],[342,null],[329,null],[10,null],[266,null],[332,null],[45,null],[38,null],[40,null],[50,null],[46,null],[41,null],[42,null],[36,null],[43,null],[48,null],[44,null],[37,null],[39,null],[324,null],[260,null],[292,null],[1,"in"],[309,null],[273,null],[327,null],[272,null],[28,null],[21,null],[27,null],[29,null],[1,"is"],[30,null],[20,null],[290,null],[274,null],[333,null],[299,null],[270,null],[337,null],[279,null],[265,null],[281,null],[264,null],[286,null],[280,null],[320,null],[1,"as"],[284,null],[23,null],[328,null],[0,null],[1,"except"],[340,null],[18,null],[330,null],[268,null],[259,null],[312,null],[293,null],[321,null],[269,null],[277,null],[314,null],[315,null],[343,null],[1,"else"],[310,null],[51,null],[1,"elif"],[300,null],[301,null],[285,null],[303,null],[302,null],[335,null],[275,null],[258,null],[1,"or"],[334,null],[267,null],[34,null],[262,null],[33,null],[319,null],[13,null],[295,null],[263,null],[291,null],[311,null],[307,null],[313,null],[282,null],[298,null],[304,null],[278,null],[318,null],[322,null],[5,null],[6,null],[47,null],[17,null],[24,null],[305,null],[306,null],[323,null],[289,null],[1,"finally"],[331,null],[336,null],[338,null],[257,null],[32,null],[341,null]],keywords:{False:33,None:9,True:6,and:47,as:108,assert:24,break:39,class:13,continue:40,debugger:17,def:4,del:27,elif:130,else:127,except:113,finally:168,for:34,from:36,global:26,if:37,import:32,in:83,is:92,lambda:14,nonlocal:18,not:8,or:139,pass:28,print:16,raise:5,return:23,try:20,while:21,with:42,yield:31},tokens:{0:112,1:25,2:11,3:7,4:2,5:159,6:160,7:35,8:61,9:38,10:64,11:48,12:52,13:146,14:43,15:30,16:15,17:162,18:115,19:45,20:94,21:89,22:50,23:110,24:163,25:12,26:59,27:90,28:88,29:91,30:93,31:22,32:173,33:144,34:142,35:53,36:74,37:78,38:68,39:79,40:69,41:72,42:73,43:75,44:77,45:67,46:71,47:161,48:76,49:41,50:70,51:129,52:19,54:29,55:10},start:256}},function(t,e){function n(t,e){return this.filename=t,this.grammar=e,this.p_flags=0,this}n.FUTURE_PRINT_FUNCTION="print_function",n.FUTURE_UNICODE_LITERALS="unicode_literals",n.FUTURE_DIVISION="division",n.FUTURE_ABSOLUTE_IMPORT="absolute_import",n.FUTURE_WITH_STATEMENT="with_statement",n.FUTURE_NESTED_SCOPES="nested_scopes",n.FUTURE_GENERATORS="generators",n.CO_FUTURE_PRINT_FUNCTION=65536,n.CO_FUTURE_UNICODE_LITERALS=131072,n.CO_FUTURE_DIVISON=8192,n.CO_FUTURE_ABSOLUTE_IMPORT=16384,n.CO_FUTURE_WITH_STATEMENT=32768,n.prototype.setup=function(t){t=t||this.grammar.start,this.stack=[{dfa:this.grammar.dfas[t],state:0,node:{type:t,value:null,context:null,children:[]}}],this.used_names={}},n.prototype.addtoken=function(t,e,n){var i,s=this.classify(t,e,n);t:for(;;){var r=this.stack[this.stack.length-1],o=r.dfa[0],a=o[r.state];for(i=0;ic),this.shift(t,e,u,n),n=u;1===o[n].length&&0===o[n][0][0]&&o[n][0][1]===n;){if(this.pop(),0===this.stack.length)return!0;n=(r=this.stack[this.stack.length-1]).state,o=r.dfa[0]}return!1}if(256<=c&&(l=(l=this.grammar.dfas[c])[1]).hasOwnProperty(s)){this.push(c,this.grammar.dfas[c],u,n);continue t}}e:{for(o=[0,r.state],r=a.length;r--;)if(a[r][0]===o[0]&&a[r][1]===o[1]){a=!0;break e}a=!1}if(!a)throw t=n[0][0],new Sk.builtin.SyntaxError("bad input",this.filename,t,n);if(this.pop(),0===this.stack.length)throw new Sk.builtin.SyntaxError("too much input",this.filename)}},n.prototype.classify=function(t,e,i){if(t===Sk.token.tokens.T_NAME){this.used_names[e]=!0;var s=this.grammar.keywords.hasOwnProperty(e)&&this.grammar.keywords[e];if("print"===e&&(this.p_flags&n.CO_FUTURE_PRINT_FUNCTION||!0===Sk.__future__.print_function)&&(s=!1),s)return s}if(!(s=this.grammar.tokens.hasOwnProperty(t)&&this.grammar.tokens[t])){e="#"+t;for(let n in Sk.token.tokens)if(Sk.token.tokens[n]==t){e=n;break}throw new Sk.builtin.SyntaxError("bad token "+e,this.filename,i[0][0],i)}return s},n.prototype.shift=function(t,e,n,i){var s=this.stack[this.stack.length-1].dfa,r=this.stack[this.stack.length-1].node;r.children.push({type:t,value:e,lineno:i[0][0],col_offset:i[0][1],children:null}),this.stack[this.stack.length-1]={dfa:s,state:n,node:r}},n.prototype.push=function(t,e,n,i){t={type:t,value:null,lineno:i[0][0],col_offset:i[0][1],children:[]},this.stack[this.stack.length-1]={dfa:this.stack[this.stack.length-1].dfa,state:n,node:this.stack[this.stack.length-1].node},this.stack.push({dfa:e,state:0,node:t})},n.prototype.pop=function(){var t=this.stack.pop().node;if(t)if(0!==this.stack.length){this.stack[this.stack.length-1].node.children.push(t)}else this.rootnode=t,this.rootnode.used_names=this.used_names},Sk.parse=function(t,e){var i,s=Sk.token.tokens.T_COMMENT,r=Sk.token.tokens.T_NL,o=Sk.token.tokens.T_OP,a=Sk.token.tokens.T_ENDMARKER,l=Sk.token.tokens.T_ENCODING,u=!1,c=function(t,e){return void 0===e&&(e="file_input"),t=new n(t,Sk.ParseTables),"file_input"===e?t.setup(Sk.ParseTables.sym.file_input):Sk.asserts.fail("todo;"),t}(t);if(Sk._tokenize(t,(i=e.split("\n").reverse().map((function(t){return t+"\n"})),function(){if(0===i.length)throw new Sk.builtin.Exception("EOF");return i.pop()}),"utf-8",(function(t){var e=null;t.type!==s&&t.type!==r&&t.type!==l&&(t.type===o&&(e=Sk.OpMap[t.string]),c.addtoken(e||t.type,t.string,[t.start,t.end,t.line]),t.type===a&&(u=!0))})),!u)throw new Sk.builtin.SyntaxError("incomplete input",this.filename);return{cst:c.rootnode,flags:c.p_flags}},Sk.parseTreeDump=function(t,e){var n,i=""+(e=e||"");if(256<=t.type)for(i+=Sk.ParseTables.number2symbol[t.type]+"\n",n=0;n=i(e)||o+2==i(e)&&s(e,o+1).type==V.T_COMMA)throw new Sk.builtin.SyntaxError("named arguments must follow bare *",t.c_filename,e.lineno);(_=s(e,o+1)).type==V.T_COMMA?o=$(t,e,o+=2,u,c):(p=v(t,_),(o+=3)t.c_feature_version)return o(t,l,"Async functions are only supported in Python 3.5 and greater"),null;r(l,B.funcdef);var d=h(s(l,p));if(u(t,0,s(l,p),0))return null;var f=w(t,s(l,p+1));if(!f)return null;if(s(l,p+2).type==V.T_RARROW){if(!(c=F(t,s(l,p+3))))return null;p+=2}if(s(l,p+3).type==V.T_TYPE_COMMENT){if(!(_=V.T_NEW_TYPE_COMMENT(s(l,p+3))))return null;p+=1}var g=m(t,s(l,p+3));if(!g)return null;if(1":return Sk.astnodes.RShift;case"&":return Sk.astnodes.BitAnd;case"^":return Sk.astnodes.BitXor;case"|":return Sk.astnodes.BitOr;case"*":return"*"===e.value.charAt(1)?Sk.astnodes.Pow:Sk.astnodes.Mult;case"@":if(Sk.__future__.python3)return Sk.astnodes.MatMult;default:Sk.asserts.fail("invalid augassign")}}(0,s(e,1)),a,e.lineno,e.col_offset)}if(s(e,1).type===B.annassign){if(!Sk.__future__.python3)throw new Sk.builtin.SyntaxError("Annotated assignment is not supported in Python 2",t.c_filename,e.lineno);n=s(e,0);var l=s(e,1),p=1;for(o=n;1==i(o);)o=s(o,0);switch(0o(r,a,"f-string: expecting '}'");for(Sk.asserts.assert(e<=n);e=e),Sk.asserts.assert("{"==t.charAt(e-1)),Sk.asserts.assert("}"==t.charAt(n)||"!"==t.charAt(n)||":"==t.charAt(n)),t=t.substring(e,n),/^\s*$/.test(t)&&o(i,s,"f-string: empty expression not allowed");try{let e=Sk.parse("","("+t+")");var r=Sk.astFromParse(e.cst,"",e.flags)}catch(t){throw t.traceback&&t.traceback[0]&&((r=t.traceback[0]).lineno=(r.lineno||1)-1+s.lineno,r.filename=i.c_filename),t}return Sk.asserts.assert(1==r.body.length&&r.body[0].constructor===Sk.astnodes.Expr),r.body[0].value}(t,l,e,r,a),"!"==t.charAt(e)&&(++e>=n&&d(),c=t.charAt(e),e++,"s"!=c&&"r"!=c&&"a"!=c&&o(r,a,"f-string: invalid conversion character: expected 's', 'r', or 'a'")),e>=n&&d(),":"==t.charAt(e)&&(++e>=n&&d(),[u,e]=x(t,e,n,i,s+1,r,a)),(e>=n||"}"!=t.charAt(e))&&d(),e++,[new Sk.astnodes.FormattedValue(l,c,u,a.lineno,a.col_offset),e]}function x(t,e,n,i,s,r,o){let a=[],l=t=>{if(-1!==t.indexOf("}")){if(/(^|[^}])}(}})*($|[^}])/.test(t))throw new Sk.builtin.SyntaxError("f-string: single '}' is not allowed",r.c_filename,o.lineno,o.col_offset);t=t.replace(/}}/g,"}")}a.push(new Sk.astnodes.Str(new Sk.builtin.str(t),o.lineno,o.col_offset,r.end_lineno,o.end_col_offset))};for(;ei&&(u=-1,n=i))}if(-1===u){l(t.substring(e,n)),e=n;break}if(u+1=l.length){if("None"===l)return new Sk.astnodes.NameConstant(Sk.builtin.none.none$,e.lineno,e.col_offset);if("True"===l)return new Sk.astnodes.NameConstant(Sk.builtin.bool.true$,e.lineno,e.col_offset);if("False"===l)return new Sk.astnodes.NameConstant(Sk.builtin.bool.false$,e.lineno,e.col_offset)}return t=h(l),new Sk.astnodes.Name(t,Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset);case V.T_STRING:n=[];for(var u=0;u=T&&o(p,_,"Truncated \\xNN escape"),y+=String.fromCharCode(parseInt(b.substr(m+1,2),16)),m+=2):k||"u"!==g?k||"U"!==g?y+="\\"+g:(m+8>=T&&o(p,_,"Truncated \\UXXXXXXXX escape"),y+=String.fromCodePoint(parseInt(b.substr(m+1,8),16)),m+=8):(m+4>=T&&o(p,_,"Truncated \\uXXXX escape"),y+=String.fromCharCode(parseInt(b.substr(m+1,4),16)),m+=4))):k&&127l.charCodeAt(1)&&(l="0o"+l.substring(1)),n=!0,"l"!==u&&"L"!==u||(l=l.slice(0,-1),n=!1),l=(u=Number(l))>Number.MAX_SAFE_INTEGER?n?new Sk.builtin.int_(JSBI.BigInt(l)):new Sk.builtin.lng(JSBI.BigInt(l)):n?new Sk.builtin.int_(u):new Sk.builtin.lng(u)),new t(l,e.lineno,e.col_offset);case V.T_ELLIPSIS:return new Sk.astnodes.Ellipsis(e.lineno,e.col_offset,e.end_lineno,e.end_col_offset);case V.T_LPAR:return(n=s(e,1)).type==V.T_RPAR?new Sk.astnodes.Tuple([],Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset):n.type==B.yield_expr?F(t,n):1==i(n)?M(t,n):s(n,1).type==B.comp_for?d(S(t,n),e):d(M(t,n),e);case V.T_LSQB:return(n=s(e,1)).type==V.T_RSQB?new Sk.astnodes.List([],Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset):(r(n,B.testlist_comp),1==i(n)||s(n,1).type==V.T_COMMA?(t=f(t,n))?new Sk.astnodes.List(t,Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset):null:(l=n,Sk.asserts.assert(l.type==B.testlist_comp),d(t=O(t,l,1),e)));case V.T_LBRACE:if((n=s(e,1)).type==V.T_RBRACE)return new Sk.astnodes.Dict(null,null,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset);if(l=s(n,0).type==V.T_DOUBLESTAR,1==i(n)||13-l&&s(n,3-l).type==B.comp_for){if(l)return o(t,e,"dict unpacking cannot be used in dict comprehension"),null;l=n,Sk.asserts.assert(3>11&7,this.__namespaces=n||[]}function i(t,e,n,i,s){this.symFlags={},this.name=e,this.varnames=[],this.children=[],this.blockType=n,this.returnsValue=this.varkeywords=this.varargs=this.generator=this.childHasFree=this.hasFree=this.isNested=!1,this.lineno=s,this.table=t,t.cur&&(t.cur.nested||"function"===t.cur.blockType)&&(this.isNested=!0),i.scopeId=a++,t.stss[i.scopeId]=this,this.symbols={}}function s(t){this.filename=t,this.top=this.cur=null,this.stack=[],this.curClass=this.global=null,this.tmpname=0,this.stss={}}function r(t,e){var n;for(n=0;n>11&7)||2==t}))),this._funcGlobals},i.prototype.get_frees=function(){return Sk.asserts.assert("function"==this.get_type(),"get_frees only valid for function scopes"),this._funcFrees||(this._funcFrees=this._identsMatching((function(t){return 4==(t>>11&7)}))),this._funcFrees},i.prototype.get_methods=function(){var t;if(Sk.asserts.assert("class"==this.get_type(),"get_methods only valid for class scopes"),!this._classMethods){var e=[];for(t=0;t>11&7},s.prototype.getStsForAst=function(t){return Sk.asserts.assert(void 0!==t.scopeId,"ast wasn't added to st?"),t=this.stss[t.scopeId],Sk.asserts.assert(void 0!==t,"unknown sym tab entry"),t},s.prototype.SEQStmt=function(t){var e,n;if(null!==t){Sk.asserts.assert(Sk.isArrayLike(t),"SEQ: nodes isn't array? got "+t.toString());var i=t.length;for(n=0;n","").replace(" ","_"))};var a=Sk.builtin.str.reservedWords_;n.prototype.makeConstant=function(t){var e,n="";for(e=0;e Sk.execLimit) {throw new Sk.builtin.TimeoutError(Sk.timeoutMsg())}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(t=t+"if (!$waking && ($dateNow - Sk.lastYield > Sk.yieldLimit)) {var $susp = $saveSuspension({data: {type: 'Sk.yield'}, resume: function() {}}, '"+this.filename+"',$currLineNo,$currColNo);",t+="$susp.$blk = $blk;$susp.optional = true;return $susp;}$waking = false;",this.u.doesSuspend=!0)),t},n.prototype._jumpfalse=function(t,e){t=this._gr("jfalse","(",t,"===false||!Sk.misceval.isTrue(",t,"))"),o("if(",t,"){/*test failed */$blk=",e,";continue;}")},n.prototype._jumpundef=function(t,e){o("if(",t,"===undefined){$blk=",e,";continue;}")},n.prototype._jumpnotundef=function(t,e){o("if(",t,"!==undefined){$blk=",e,";continue;}")},n.prototype._jumptrue=function(t,e){t=this._gr("jtrue","(",t,"===true||Sk.misceval.isTrue(",t,"))"),o("if(",t,"){/*test passed */$blk=",e,";continue;}")},n.prototype._jump=function(t){null===this.u.blocks[this.u.curblock]._next&&(o("$blk=",t,";"),this.u.blocks[this.u.curblock]._next=t)},n.prototype._checkSuspension=function(t){if(this.u.canSuspend){var e=this.newBlock("function return or resume suspension");this._jump(e),this.setBlock(e),t=t||{lineno:"$currLineNo",col_offset:"$currColNo"},o("if ($ret && $ret.$isSuspension) { return $saveSuspension($ret,'"+this.filename+"',"+t.lineno+","+t.col_offset+"); }"),this.u.doesSuspend=!0,this.u.tempsToSave=this.u.tempsToSave.concat(this.u.localtemps)}else o("if ($ret && $ret.$isSuspension) { $ret = Sk.misceval.retryOptionalSuspensionOrThrow($ret); }")},n.prototype.cunpackstarstoarray=function(t,e){if(!t||0==t.length)return"[]";let n=!1;for(let i of t){if(e&&n)throw new Sk.builtin.SyntaxError("Extended argument unpacking is not permitted in Python 2");i.constructor===Sk.astnodes.Starred&&(n=!0)}if(n){e=this._gr("unpack","[]");for(let n of t)n.constructor!==Sk.astnodes.Starred?o(e,".push(",this.vexpr(n),");"):(o("$ret = Sk.misceval.iterFor(Sk.abstr.iter(",this.vexpr(n.value),"), function(e) { ",e,".push(e); });"),this._checkSuspension());return e}return"["+t.map((t=>this.vexpr(t))).join(",")+"]"},n.prototype.cunpackkwstoarray=function(t,e){var n="undefined";if(t&&0=n.length&&(n=this.vexpr(s),"dict"===t?(t=this.vexpr(r),o(e,".mp$ass_subscript(",t,",",n,");")):"list"===t?o(e,".v.push(",n,");"):"set"===t&&o(e,".v.mp$ass_subscript(",n,", true);"),this._jump(c),this.setBlock(c)),this._jump(u),this.setBlock(p),e},n.prototype.cyield=function(t){if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'yield' outside function",this.filename,t.lineno);var e="Sk.builtin.none.none$";return t.value&&(e=this.vexpr(t.value)),t=this.newBlock("after yield"),o("return [/*resume*/",t,",/*ret*/",e,"];"),this.setBlock(t),"$gen.gi$sentvalue"},n.prototype.cyieldfrom=function(t){if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'yield' outside function",this.filename,t.lineno);var e=this.vexpr(t.value);e=this._gr("iter","Sk.abstr.iter(",e,")"),o("$gen."+e+"=",e,";");var n=this.newBlock("after iter"),i=this.newBlock("after yield from");this._jump(n),this.setBlock(n);var s=this.gensym("retval");o(e,"=$gen.",e,";"),o("var ",s,";"),o("if ($gen.gi$sentvalue === Sk.builtin.none.none$ || "+e+".constructor === Sk.builtin.generator) {"),o("$ret=",e,".tp$iternext(true, $gen.gi$sentvalue);"),o("} else {");var r=this.makeConstant("new Sk.builtin.str('send');");return o("$ret=Sk.misceval.tryCatch("),o("function(){"),o("return Sk.misceval.callsimOrSuspendArray(Sk.abstr.gattr(",e,",",r,"), [$gen.gi$sentvalue]);},"),o("function (e) { "),o("if (e instanceof Sk.builtin.StopIteration) { "),o(e,".gi$ret = e.$value;"),o("return undefined;"),o("} else { throw e; }"),o("}"),o(");"),o("}"),this._checkSuspension(t),o(s,"=$ret;"),o("if(",s,"===undefined) {"),o("$gen.gi$sentvalue=$gen."+e+".gi$ret;"),o("$blk=",i,";continue;"),o("}"),o("return [/*resume*/",n,",/*ret*/",s,"];"),this.setBlock(i),"$gen.gi$sentvalue"},n.prototype.ccompare=function(t){var e;Sk.asserts.assert(t.ops.length===t.comparators.length);var n=this.vexpr(t.left),i=t.ops.length,s=this.newBlock("done"),r=this._gr("compareres","null");for(e=0;ethis.u.lineno&&(this.u.lineno=t.lineno,this.u.linenoSet=!1),t.constructor){case Sk.astnodes.BoolOp:return this.cboolop(t);case Sk.astnodes.BinOp:return this._gr("binop","Sk.abstr.numberBinOp(",this.vexpr(t.left),",",this.vexpr(t.right),",'",t.op.prototype._astname,"')");case Sk.astnodes.UnaryOp:return this._gr("unaryop","Sk.abstr.numberUnaryOp(",this.vexpr(t.operand),",'",t.op.prototype._astname,"')");case Sk.astnodes.Lambda:return this.clambda(t);case Sk.astnodes.IfExp:return this.cifexp(t);case Sk.astnodes.Dict:return this.cdict(t);case Sk.astnodes.ListComp:return this.clistcomp(t);case Sk.astnodes.DictComp:return this.cdictcomp(t);case Sk.astnodes.SetComp:return this.csetcomp(t);case Sk.astnodes.GeneratorExp:return this.cgenexp(t);case Sk.astnodes.Yield:return this.cyield(t);case Sk.astnodes.YieldFrom:return this.cyieldfrom(t);case Sk.astnodes.Compare:return this.ccompare(t);case Sk.astnodes.Call:return e=this.ccall(t),this.annotateSource(t),e;case Sk.astnodes.Num:if("number"==typeof t.n)return t.n;if(t.n instanceof Sk.builtin.lng)return this.makeConstant("new Sk.builtin.lng('"+t.n.v.toString()+"')");if(t.n instanceof Sk.builtin.int_)return"number"==typeof t.n.v?this.makeConstant("new Sk.builtin.int_("+t.n.v+")"):this.makeConstant("new Sk.builtin.int_('"+t.n.v.toString()+"')");if(t.n instanceof Sk.builtin.float_)return t=0===t.n.v&&-1/0==1/t.n.v?"-0":t.n.v,this.makeConstant("new Sk.builtin.float_("+t+")");if(t.n instanceof Sk.builtin.complex)return this.makeConstant("new Sk.builtin.complex("+(0===t.n.real&&-1/0==1/t.n.real?"-0":t.n.real)+", "+(0===t.n.imag&&-1/0==1/t.n.imag?"-0":t.n.imag)+")");Sk.asserts.fail("unhandled Num type");case Sk.astnodes.Bytes:if(Sk.__future__.python3){for(e=[],t=t.s.$jsstr(),n=0;ni||127<=i&&256>i?n+"\\x"+("0"+i.toString(16)).substr(-2):256<=i?n+"\\u"+("000"+i.toString(16)).substr(-4):n+t.charAt(s);return t=n+'"',e.call(this,"new Sk.builtin.str(",t,")");case Sk.astnodes.Attribute:switch(t.ctx!==Sk.astnodes.AugLoad&&t.ctx!==Sk.astnodes.AugStore&&(s=this.vexpr(t.value)),i=(i=t.attr.$r().v).substring(1,i.length-1),i=r(this.u.private_,new Sk.builtin.str(i)).v,i=this.makeConstant("new Sk.builtin.str('"+i+"')"),t.ctx){case Sk.astnodes.AugLoad:return o("$ret = ",n,".tp$getattr(",i,", true);"),this._checkSuspension(t),o("\nif ($ret === undefined) {"),o("\nthrow new Sk.builtin.AttributeError(",n,'.sk$attrError() + " has no attribute \'" + ',i,'.$jsstr() + "\'");'),o("\n};"),this._gr("lattr","$ret");case Sk.astnodes.Load:return o("$ret = ",s,".tp$getattr(",i,", true);"),this._checkSuspension(t),o("\nif ($ret === undefined) {"),o("\nthrow new Sk.builtin.AttributeError(",s,'.sk$attrError() + " has no attribute \'" + ',i,'.$jsstr() + "\'");'),o("\n};"),this._gr("lattr","$ret");case Sk.astnodes.AugStore:o("$ret = undefined;"),o("if(",e,"!==undefined){"),o("$ret = ",n,".tp$setattr(",i,",",e,", true);"),o("}"),this._checkSuspension(t);break;case Sk.astnodes.Store:o("$ret = ",s,".tp$setattr(",i,",",e,", true);"),this._checkSuspension(t);break;case Sk.astnodes.Del:o("$ret = ",s,".tp$setattr(",i,", undefined, true);"),this._checkSuspension(t);break;default:Sk.asserts.fail("invalid attribute expression")}break;case Sk.astnodes.Subscript:switch(t.ctx){case Sk.astnodes.AugLoad:return o("$ret = Sk.abstr.objectGetItem(",n,",",i,", true);"),this._checkSuspension(t),this._gr("gitem","$ret");case Sk.astnodes.Load:case Sk.astnodes.Store:case Sk.astnodes.Del:return this.vslice(t.slice,t.ctx,this.vexpr(t.value),e);case Sk.astnodes.AugStore:o("$ret=undefined;"),o("if(",e,"!==undefined){"),o("$ret=Sk.abstr.objectSetItem(",n,",",i,",",e,", true)"),o("}"),this._checkSuspension(t);break;default:Sk.asserts.fail("invalid subscript expression")}break;case Sk.astnodes.Name:return this.nameop(t.id,t.ctx,e);case Sk.astnodes.NameConstant:if(t.ctx===Sk.astnodes.Store||t.ctx===Sk.astnodes.AugStore||t.ctx===Sk.astnodes.Del)throw new Sk.builtin.SyntaxError("can not assign to a constant name");switch(t.value){case Sk.builtin.none.none$:return"Sk.builtin.none.none$";case Sk.builtin.bool.true$:return"Sk.builtin.bool.true$";case Sk.builtin.bool.false$:return"Sk.builtin.bool.false$";default:Sk.asserts.fail("invalid named constant")}break;case Sk.astnodes.List:return this.ctuplelistorset(t,e,"list");case Sk.astnodes.Tuple:return this.ctuplelistorset(t,e,"tuple");case Sk.astnodes.Set:return this.ctuplelistorset(t,e,"set");case Sk.astnodes.Starred:if(t.ctx===Sk.astnodes.Store)throw new Sk.builtin.SyntaxError("starred assignment target must be in a list or tuple",this.filename,t.lineno);throw new Sk.builtin.SyntaxError("can't use starred expression here",this.filename,t.lineno);case Sk.astnodes.JoinedStr:return this.cjoinedstr(t);case Sk.astnodes.FormattedValue:return this.cformattedvalue(t);case Sk.astnodes.Ellipsis:return this.makeConstant("Sk.builtin.Ellipsis");default:Sk.asserts.fail("unhandled case "+t.constructor.name+" vexpr")}},n.prototype.vseqexpr=function(t,e){var n;Sk.asserts.assert(void 0===e||t.length===e.length);var i=[];for(n=0;n",this.u.blocks[e]._next=null,e},n.prototype.setBlock=function(t){Sk.asserts.assert(0<=t&&t0) { $err=err; $blk=$exc.pop(); } else { throw err; } }};",o+="var $saveSuspension = function($child, $filename, $lineno, $colno) {var susp = new Sk.misceval.Suspension(); susp.child=$child;susp.resume=function(){"+t.scopename+".$wakingSuspension=susp; return "+t.scopename+"("+(t.ste.generator?"$gen":"")+"); };susp.data=susp.child.data;susp.$blk=$blk;susp.$loc=$loc;susp.$gbl=$gbl;susp.$exc=$exc;susp.$err=$err;susp.$postfinally=$postfinally;susp.$filename=$filename;susp.$lineno=$lineno;susp.$colno=$colno;susp.optional=susp.child.optional;"+(r?"susp.$cell=$cell;":""),s={},e=0;et?this.vexpr(t):"undefined"))),i&&i.vararg&&(d=i.vararg),i&&i.kwarg&&(f=i.kwarg),!Sk.__future__.python3&&i&&i.kwonlyargs&&0!=i.kwonlyargs.length)throw new Sk.builtin.SyntaxError("Keyword-only arguments are not supported in Python 2");var m=this.enterScope(e,t,t.lineno,this.canSuspend),g=this.u.ste.generator,b=this.u.ste.hasFree,S=this.u.ste.childHasFree,k=this.newBlock("codeobj entry");this.u.prefixCode="var "+m+"=(function "+this.niceName(e.v)+"$(";var T=[];if(g){if(f)throw new Sk.builtin.SyntaxError(e.v+"(): keyword arguments in generators not supported",this.filename,t.lineno);if(d)throw new Sk.builtin.SyntaxError(e.v+"(): variable number of arguments in generators not supported",this.filename,t.lineno);T.push("$gen")}else{for(f&&(T.push("$kwa"),this.u.tempsToSave.push("$kwa")),u=0;i&&u0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }} }});",a.call(this,m),i){for(let t of i.args)c.push(t.arg.v);for(let t of i.kwonlyargs||[])c.push(t.arg.v);this.u.argnames=c}if(this.exitScope(),0"),null,t.args,(function(e){e=this.vexpr(t.body),o("return ",e,";")}))},n.prototype.cifexp=function(t){var e=this.newBlock("next of ifexp"),n=this.newBlock("end of ifexp"),i=this._gr("res","null"),s=this.vexpr(t.test);return this._jumpfalse(s,e),o(i,"=",this.vexpr(t.body),";"),this._jump(n),this.setBlock(e),o(i,"=",this.vexpr(t.orelse),";"),this._jump(n),this.setBlock(n),i},n.prototype.cgenexpgen=function(t,e,n){var i=this.newBlock("start for "+e),s=this.newBlock("skip for "+e);this.newBlock("if cleanup for "+e);var r=this.newBlock("end for "+e),a=t[e];if(0===e)var l="$loc.$iter0";else{var u=this.vexpr(a.iter);l="$loc."+this.gensym("iter"),o(l,"=","Sk.abstr.iter(",u,");")}this._jump(i),this.setBlock(i),this.annotateSource(n),o("$ret = Sk.abstr.iternext(",l,this.u.canSuspend?", true":", false",");"),this._checkSuspension(n),u=this._gr("next","$ret"),this._jumpundef(u,r),this.vexpr(a.target,u);var c=a.ifs?a.ifs.length:0;for(l=0;l=t.length&&(this.annotateSource(n),t=this.vexpr(n),o("return [",s,"/*resume*/,",t,"/*ret*/];"),this.setBlock(s)),this._jump(i),this.setBlock(r),1===e&&o("return Sk.builtin.none.none$;")},n.prototype.cgenexp=function(t){var e=this.buildcodeobj(t,new Sk.builtin.str(""),null,null,(function(e){this.cgenexpgen(t.generators,0,t.elt)}));return e=this._gr("gener","Sk.misceval.callsimArray(",e,");"),o(e,".gi$locals.$iter0=Sk.abstr.iter(",this.vexpr(t.generators[0].iter),");"),e},n.prototype.cclass=function(t){Sk.asserts.assert(t instanceof Sk.astnodes.ClassDef);var e=this.vseqexpr(t.decorator_list),n=this.vseqexpr(t.bases);let i=this.cunpackkwstoarray(t.keywords);var s=this.enterScope(t.name,t,t.lineno),r=this.newBlock("class entry");this.u.prefixCode="var "+s+"=(function $"+t.name.v+"$class_outer($globals,$locals,$cell){var $gbl=$globals,$loc=$locals,$free=$globals;",this.u.switchCode+="(function $"+t.name.v+"$_closure($cell){",this.u.switchCode+="var $blk="+r+",$exc=[],$ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;",null!==Sk.execLimit&&(this.u.switchCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.switchCode+="if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}"),this.u.switchCode+="while(true){try{",this.u.switchCode+=this.outputInterruptTest(),this.u.switchCode+="switch($blk){",this.u.suffixCode="}}catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }}}",this.u.suffixCode+="}).call(null, $cell);});",this.u.private_=t.name,this.cbody(t.body,t.name),o("return;"),this.exitScope(),o("$ret = Sk.misceval.buildClass($gbl,",s,",",t.name.$r().v,",[",n,"], $cell, ",i,");"),this._checkSuspension();for(let t of e.reverse())o("$ret = Sk.misceval.callsimOrSuspendArray(",t,", [$ret]);"),this._checkSuspension();this.nameop(t.name,Sk.astnodes.Store,"$ret")},n.prototype.ccontinue=function(t){var e=this.peekFinallyBlock();if(0==this.u.continueBlocks.length)throw new Sk.builtin.SyntaxError("'continue' outside loop",this.filename,t.lineno);t=this.u.continueBlocks[this.u.continueBlocks.length-1],Sk.asserts.assert(this.u.breakBlocks.length===this.u.continueBlocks.length),e&&e.breakDepth==this.u.continueBlocks.length?o("$postfinally={isBreak:true,gotoBlock:",t,"};"):this._jump(t)},n.prototype.cbreak=function(t){var e=this.peekFinallyBlock();if(0===this.u.breakBlocks.length)throw new Sk.builtin.SyntaxError("'break' outside loop",this.filename,t.lineno);t=this.u.breakBlocks[this.u.breakBlocks.length-1],e&&e.breakDepth==this.u.breakBlocks.length?o("$postfinally={isBreak:true,gotoBlock:",t,"};"):this._jump(t)},n.prototype.vstmt=function(t,e){if(this.u.lineno=t.lineno,this.u.linenoSet=!1,this.u.localtemps=[],Sk.debugging&&this.u.canSuspend){var n=this.newBlock("debug breakpoint for line "+t.lineno);o("if (Sk.breakpoints('"+this.filename+"',"+t.lineno+","+t.col_offset+")) {","var $susp = $saveSuspension({data: {type: 'Sk.debug'}, resume: function() {}}, '"+this.filename+"',"+t.lineno+","+t.col_offset+");","$susp.$blk = "+n+";","$susp.optional = true;","return $susp;","}"),this._jump(n),this.setBlock(n),this.u.doesSuspend=!0}switch(this.annotateSource(t),t.constructor){case Sk.astnodes.FunctionDef:this.cfunction(t,e);break;case Sk.astnodes.ClassDef:this.cclass(t);break;case Sk.astnodes.Return:if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'return' outside function",this.filename,t.lineno);n=t.value?this.vexpr(t.value):"Sk.builtin.none.none$",0==this.u.finallyBlocks.length?o("return ",n,";"):(o("$postfinally={returning:",n,"};"),this._jump(this.peekFinallyBlock().blk));break;case Sk.astnodes.Delete:this.vseqexpr(t.targets);break;case Sk.astnodes.Assign:var i=t.targets.length;for(n=this.vexpr(t.value),e=0;e"!==t.name.v){var e=t.name.$r().v;e=e.substring(1,e.length-1),o(t.scopename,".co_name=new Sk.builtins['str']('",e,"');"),this.stack.length&&"class"==this.u.ste.blockType&&o(t.scopename,".co_qualname=new Sk.builtins['str']('"+this.u.name.v+"."+e+"');")}for(var n in t.consts)t.consts.hasOwnProperty(n)&&(t.suffixCode+=n+" = "+t.consts[n]+";")},n.prototype.cbody=function(t,e){var n=0;const i=this.maybeCDocstringOfBody(t);for(null!==i&&(o("$loc.__doc__ = ",i,";"),n=1);n"),t,0,this.canSuspend),n=this.newBlock("module entry");if(this.u.prefixCode="var "+e+"=(function($forcegbl, $forceloc){",this.u.varDeclsCode="var $gbl = $forcegbl || {}, $blk="+n+",$exc=[],$loc=$forceloc || $gbl,$cell={},$err=undefined;var $ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;",null!==Sk.execLimit&&(this.u.varDeclsCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.varDeclsCode+="if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}"),this.u.varDeclsCode+="var $waking=false; if ("+e+".$wakingSuspension!==undefined) { $wakeFromSuspension(); $waking=true; }if (Sk.retainGlobals) { if (Sk.globals) { $gbl = Sk.globals; Sk.globals = $gbl; $loc = $gbl; } else { Sk.globals = $gbl; }} else { Sk.globals = $gbl; }",this.u.switchCode="while(true){try{",this.u.switchCode+=this.outputInterruptTest(),this.u.switchCode+="switch($blk){",this.u.suffixCode="}",this.u.suffixCode+="}catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }} } });",t.constructor===Sk.astnodes.Module)this.cbody(t.body),o("return $loc;");else Sk.asserts.fail("todo; unhandled case in compilerMod");return this.exitScope(),this.result.push(this.outputAllUnits()),e},Sk.compile=function(t,e,i,s){i=Sk.__future__,Sk.__future__=Object.create(Sk.__future__);var r=Sk.parse(e,t),o=Sk.astFromParse(r.cst,e,r.flags);return r=r.flags,s=(t=new n(e,Sk.symboltable(o,e),r,s,t)).cmod(o),Sk.__future__=i,{funcname:"$compiledmod",code:`var $compiledmod = function() {${t.result.join("")}\nreturn ${s};}();\n$compiledmod;`,filename:e}},Sk.exportSymbol("Sk.compile",Sk.compile),Sk.resetCompiler=function(){Sk.gensymcount=0},Sk.exportSymbol("Sk.resetCompiler",Sk.resetCompiler),Sk.fixReserved=s,Sk.exportSymbol("Sk.fixReserved",Sk.fixReserved),Sk.unfixReserved=function(t){return t.replace(/_\$rw\$$/,"")},Sk.exportSymbol("Sk.unfixReserved",Sk.unfixReserved),Sk.mangleName=r,Sk.exportSymbol("Sk.mangleName",Sk.mangleName),Sk.reservedWords_=a,Sk.exportSymbol("Sk.reservedWords_",Sk.reservedWords_)},function(t,e){Sk.sysmodules=new Sk.builtin.dict([]),Sk.realsyspath=void 0,Sk.importSearchPathForName=function(t,e,n){var i=t.replace(/\./g,"/"),s=function(t,e){return Sk.misceval.chain(Sk.misceval.tryCatch((function(){return Sk.read(t)}),(function(t){})),(function(n){if(void 0!==n)return new Sk.misceval.Break({filename:t,code:n,packagePath:e})}))};return void 0===n&&(n=Sk.realsyspath),Sk.misceval.iterFor(n.tp$iter(),(function(t){return Sk.misceval.chain(s(t.v+"/"+i+e,!1),(function(n){return n||s(t.v+"/"+i+"/__init__"+e,t.v+"/"+i)}))}))},Sk.importSetUpPath=function(t){if(!Sk.realsyspath){var e=[new Sk.builtin.str("src/builtin"),new Sk.builtin.str("src/lib"),new Sk.builtin.str(".")];for(t=0;ti;++i)t+=" ";n[e-1]="/* "+t+e+" */ "+n[e-1]}return n.join("\n")}(r),Sk.debugout(r)}"$compiledmod"!==i.funcname&&(r+="\n"+i.funcname+";");var o=new Sk.builtin.str(n),l=new Sk.builtin.str(t);Sk.sysmodules.mp$ass_subscript(o,c),s&&s.tp$setattr(l,c);var u=Sk.global.eval(r);c.init$dict(o,Sk.builtin.none.none$),c.$d.__package__=i.packagePath?o:m?new Sk.builtin.str(_+m):h||Sk.builtin.none.none$,i.packagePath&&(c.$d.__path__=new Sk.builtin.tuple([new Sk.builtin.str(i.packagePath)])),i.filename&&"$builtinmodule"!==i.funcname&&(c.$d.__file__=new Sk.builtin.str(i.filename));var p=s&&s.$initializing;return c.$initializing=!0,s&&!p&&(s.$initializing=!0),Sk.misceval.tryCatch((()=>Sk.misceval.chain(u(c.$d),(t=>(c.$initializing=!1,s&&!p&&(s.$initializing=!1),t)))),(t=>{try{Sk.abstr.objectDelItem(Sk.sysmodules,o)}catch(t){}if(s)try{s.tp$setattr(l,void 0)}catch(t){}throw c.$initializing=!1,s&&!p&&(s.$initializing=!1),t}))}}),(function(e){var n;if(void 0===e){if(r&&!p)return;throw new Sk.builtin.ModuleNotFoundError("No module named "+Sk.misceval.objectRepr(new Sk.builtin.str(t)))}if(e!==c.$d){for(n in c.$d)e[n]||(e[n]=c.$d[n]);c.$d=e}if(Sk.onAfterImport&&"function"==typeof Sk.onAfterImport)try{Sk.onAfterImport(t)}catch(t){}return p?(u.tp$setattr(new Sk.builtin.str(f[f.length-1]),c),p):c}))}));return o?g:Sk.misceval.retryOptionalSuspensionOrThrow(g)},Sk.importModule=function(t,e,n){return Sk.importModuleInternal_(t,e,void 0,void 0,void 0,!1,n)},Sk.importMain=function(t,e,n){return Sk.dateSet=!1,Sk.filesLoaded=!1,Sk.sysmodules=new Sk.builtin.dict([]),Sk.realsyspath=void 0,Sk.resetCompiler(),Sk.importModuleInternal_(t,e,"__main__",void 0,void 0,!1,n)},Sk.importMainWithBody=function(t,e,n,i){return Sk.dateSet=!1,Sk.filesLoaded=!1,Sk.sysmodules=new Sk.builtin.dict([]),Sk.realsyspath=void 0,Sk.resetCompiler(),Sk.importModuleInternal_(t,e,"__main__",n,void 0,!1,i)},Sk.importBuiltinWithBody=function(t,e,n,i){return Sk.importModuleInternal_(t,e,"__builtin__."+t,n,void 0,!1,i)},Sk.builtin.__import__=function(t,e,n,i,s){t=t.toString();var r,o=Sk.globals;if(null==s&&(s=Sk.__future__.absolute_import?0:-1),0!==s&&e.__package__&&e.__package__!==Sk.builtin.none.none$){if((r=e.__package__.v)&&0=e.length)throw new Sk.builtin.ImportError("Attempted relative import beyond toplevel package");e.length-=s-1,r=e.join(".")}var a=Sk.sysmodules.quick$lookup(new Sk.builtin.str(r))}if(0Sk.importModuleInternal_(s,void 0,void 0,void 0,n,!0,!0)))}return Sk.misceval.chain(...e,(function(){return Sk.asserts.assert(n),n}))}return e}),(function(t){return o!==Sk.globals&&(Sk.globals=o),t}))},Sk.importStar=function(t,e,n){if(n=t.tp$getattr(new Sk.builtin.str("__all__")))for(let i=Sk.abstr.iter(n),s=i.tp$iternext();void 0!==s;s=i.tp$iternext())e[s.v]=Sk.abstr.gattr(t,s);else{n=Object.getOwnPropertyNames(t.$d);for(let i in n)"_"!=n[i].charAt(0)&&(e[n[i]]=t.$d[n[i]])}},Sk.exportSymbol("Sk.importMain",Sk.importMain),Sk.exportSymbol("Sk.importMainWithBody",Sk.importMainWithBody),Sk.exportSymbol("Sk.importBuiltinWithBody",Sk.importBuiltinWithBody),Sk.exportSymbol("Sk.builtin.__import__",Sk.builtin.__import__),Sk.exportSymbol("Sk.importStar",Sk.importStar)},function(t,e){Sk.builtin.timSort=function(t,e){this.list=new Sk.builtin.list(t.v),this.MIN_GALLOP=7,this.listlength=e||t.sq$length()},Sk.builtin.timSort.prototype.lt=function(t,e){return Sk.misceval.richCompareBool(t,e,"Lt")},Sk.builtin.timSort.prototype.le=function(t,e){return!this.lt(e,t)},Sk.builtin.timSort.prototype.setitem=function(t,e){this.list.v[t]=e},Sk.builtin.timSort.prototype.binary_sort=function(t,e){var n;for(n=t.base+e;n>1);this.lt(e,t.getitem(r))?s=r:i=r+1}for(Sk.asserts.assert(i===s),r=n;r>i;r--)t.setitem(r,t.getitem(r-1));t.setitem(i,e)}},Sk.builtin.timSort.prototype.count_run=function(t){var e;if(1>=t.len)var n=t.len,i=!1;else if(n=2,this.lt(t.getitem(t.base+1),t.getitem(t.base)))for(i=!0,e=t.base+2;ee.len)){for(this.merge_init(),t=this.merge_compute_minrun(e.len);0s&&(l=s),a+=n,l+=n}else{for(s=n+1;ls&&(l=s),o=n-a,a=n-l,l=o}for(Sk.asserts.assert(-1<=a>1),i(e.getitem(e.base+n),t)?a=n+1:l=n;return Sk.asserts.assert(a==l),l},Sk.builtin.timSort.prototype.merge_init=function(){this.min_gallop=this.MIN_GALLOP,this.pending=[]},Sk.builtin.timSort.prototype.merge_lo=function(t,e){var n,i,s;Sk.asserts.assert(0=r)break}else{if(this.setitem(o,t.popleft()),o++,1==t.len)return;if(i=0,++n>=r)break}for(r+=1;;){for(this.min_gallop=r-=1=t.len)return;if(this.setitem(o,e.popleft()),o++,0===e.len)return;for(i=this.gallop(t.getitem(t.base),e,0,!1),s=e.base;s=r)break}else{if(o--,this.setitem(o,l),e.len--,1==e.len)return;if(n=0,++i>=r)break}}for(r+=1;;){this.min_gallop=r-=1t.base+u-1;s--)o--,this.setitem(o,t.getitem(s));if(t.len-=n,0===t.len)return;if(o--,this.setitem(o,e.popright()),1==e.len)return;for(a=t.getitem(t.base+t.len-1),u=this.gallop(a,e,e.len-1,!1),i=e.len-u,s=e.base+e.len-1;s>e.base+u-1;s--)o--,this.setitem(o,e.getitem(s));if(e.len-=i,1>=e.len)return;if(o--,this.setitem(o,t.popright()),0===t.len)return;if(nt.base-1;s--)o--,this.setitem(o,t.getitem(s));for(s=e.base+e.len-1;s>e.base-1;s--)o--,this.setitem(o,e.getitem(s))}},Sk.builtin.timSort.prototype.merge_at=function(t){0>t&&(t=this.pending.length+t);var e=this.pending[t],n=this.pending[t+1];Sk.asserts.assert(0>=1;return t+e},Sk.builtin.listSlice=function(t,e,n){this.list=t,this.base=e,this.len=n},Sk.builtin.listSlice.prototype.copyitems=function(){var t=this.base,e=this.base+this.len;return Sk.asserts.assert(0<=t<=e),new Sk.builtin.listSlice(new Sk.builtin.list(this.list.v.slice(t,e)),0,this.len)},Sk.builtin.listSlice.prototype.advance=function(t){this.base+=t,this.len-=t,Sk.asserts.assert(this.base<=this.list.sq$length())},Sk.builtin.listSlice.prototype.getitem=function(t){return this.list.v[t]},Sk.builtin.listSlice.prototype.setitem=function(t,e){this.list.v[t]=e},Sk.builtin.listSlice.prototype.popleft=function(){var t=this.list.v[this.base];return this.base++,this.len--,t},Sk.builtin.listSlice.prototype.popright=function(){return this.len--,this.list.v[this.base+this.len]},Sk.builtin.listSlice.prototype.reverse=function(){for(var t,e,n=this.list,i=this.base,s=i+this.len-1;i same as super(__class__, )\nsuper(type) -> unbound super object\nsuper(type, obj) -> bound super object; requires isinstance(obj, type)\nsuper(type, type2) -> bound super object; requires issubclass(type2, type)\nTypical use to call a cooperative superclass method:\nclass C(B):\n def meth(self, arg):\n super().meth(arg)\nThis works for class methods too:\nclass C(B):\n @classmethod\n def cmeth(cls, arg):\n super().cmeth(arg)\n",tp$new:Sk.generic.new,tp$init(t,e){if(Sk.abstr.checkNoKwargs("super",e),Sk.abstr.checkArgsLen("super",t,1,2),e=t[0],t=t[1],!Sk.builtin.checkClass(e))throw new Sk.builtin.TypeError("must be type, not "+Sk.abstr.typeName(e));this.obj=t,this.type=e,null!=this.obj&&(this.obj_type=this.$supercheck(e,this.obj))},$r(){return this.obj?new Sk.builtin.str(", <"+Sk.abstr.typeName(this.obj)+" object>>"):new Sk.builtin.str(", NULL>")},tp$getattr(t,e){let n=this.obj_type;if(null==n)return Sk.generic.getAttr.call(this,t,e);var i=n.prototype.tp$mro;const s=i.length;if(t===Sk.builtin.str.$class)return Sk.generic.getAttr.call(this,t,e);let r,o;for(r=0;r+1=s)return Sk.generic.getAttr.call(this,t,e);for(t=t.$mangled;r(Sk.abstr.checkNoKwargs("GenericAlias",e),Sk.abstr.checkArgsLen("GenericAlias",t,2,2),new Sk.builtin.GenericAlias(t[0],t[1])),tp$getattr(t,e){return Sk.builtin.checkString(t)&&!this.attr$exc.includes(t)?this.$origin.tp$getattr(t,e):Sk.generic.getAttr.call(this,t,e)},$r(){const t=this.ga$repr(this.$origin);let e="";return this.$args.v.forEach(((t,n)=>{e+=0{this.is$typevar(e)&&0>this.tuple$index(t,e)&&t.push(e)})),this.$params=new Sk.builtin.tuple(t)},tuple$index:(t,e)=>t.indexOf(e),is$typevar(t){if("TypeVar"!==t.tp$name)return!1;if(void 0===(t=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$module)))throw Sk.builtin.RuntimeError("found object withought a __module__");return"typing"===t.toString()},ga$repr(t){if(t===Sk.builtin.Ellipsis)return"...";if(Sk.abstr.lookupSpecial(t,this.str$orig)&&Sk.abstr.lookupSpecial(t,this.str$args))return Sk.misceval.objectRepr(t);const e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$qualname);if(void 0===e)return Sk.misceval.objectRepr(t);const n=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$module);return void 0===n||Sk.builtin.checkNone(n)?Sk.misceval.objectRepr(t):"builtins"===n.toString()?e.toString():n.toString()+"."+e.toString()},str$orig:new Sk.builtin.str("__origin__"),str$args:new Sk.builtin.str("__args__"),attr$exc:"__origin__ __args__ __parameters__ __mro_entries__ __reduce_ex__ __reduce__".split(" ").map((t=>new Sk.builtin.str(t)))}})},function(t,e){function n(t,e){let n;if(void 0===t||Sk.builtin.checkNone(t))t=void 0;else{if(!(t instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError(e+" must be a dict or None, not "+Sk.abstr.typeName(t));n={},t.$items().forEach((t=>{var[e,i]=t;Sk.builtin.checkString(e)&&(n[e.$mangled]=i)}))}return n}function i(t,e){if(void 0!==t&&!Sk.builtin.checkNone(t))for(let n in e)t.mp$ass_subscript(new Sk.builtin.str(Sk.unfixReserved(n)),e[n])}Sk.builtins={round:null,len:null,min:null,max:null,sum:null,abs:null,fabs:null,ord:null,chr:null,hex:null,oct:null,bin:null,dir:null,repr:null,open:null,isinstance:null,hash:null,getattr:null,hasattr:null,id:null,sorted:null,any:null,all:null,enumerate:Sk.builtin.enumerate,filter:Sk.builtin.filter_,map:Sk.builtin.map_,range:Sk.builtin.range_,reversed:Sk.builtin.reversed,zip:Sk.builtin.zip_,BaseException:Sk.builtin.BaseException,AttributeError:Sk.builtin.AttributeError,ValueError:Sk.builtin.ValueError,Exception:Sk.builtin.Exception,ZeroDivisionError:Sk.builtin.ZeroDivisionError,AssertionError:Sk.builtin.AssertionError,ImportError:Sk.builtin.ImportError,ModuleNotFoundError:Sk.builtin.ModuleNotFoundError,IndentationError:Sk.builtin.IndentationError,IndexError:Sk.builtin.IndexError,LookupError:Sk.builtin.LookupError,KeyError:Sk.builtin.KeyError,TypeError:Sk.builtin.TypeError,UnicodeDecodeError:Sk.builtin.UnicodeDecodeError,UnicodeEncodeError:Sk.builtin.UnicodeEncodeError,NameError:Sk.builtin.NameError,UnboundLocalError:Sk.builtin.UnboundLocalError,IOError:Sk.builtin.IOError,NotImplementedError:Sk.builtin.NotImplementedError,SystemExit:Sk.builtin.SystemExit,OverflowError:Sk.builtin.OverflowError,OperationError:Sk.builtin.OperationError,NegativePowerError:Sk.builtin.NegativePowerError,RuntimeError:Sk.builtin.RuntimeError,RecursionError:Sk.builtin.RecursionError,StopIteration:Sk.builtin.StopIteration,SyntaxError:Sk.builtin.SyntaxError,SystemError:Sk.builtin.SystemError,KeyboardInterrupt:Sk.builtin.KeyboardInterrupt,float_$rw$:Sk.builtin.float_,int_$rw$:Sk.builtin.int_,bool:Sk.builtin.bool,complex:Sk.builtin.complex,dict:Sk.builtin.dict,file:Sk.builtin.file,frozenset:Sk.builtin.frozenset,function:Sk.builtin.func,generator:Sk.builtin.generator,list:Sk.builtin.list,long_$rw$:Sk.builtin.lng,method:Sk.builtin.method,object:Sk.builtin.object,slice:Sk.builtin.slice,str:Sk.builtin.str,set:Sk.builtin.set,tuple:Sk.builtin.tuple,type:Sk.builtin.type,input:null,raw_input:new Sk.builtin.func(Sk.builtin.raw_input),setattr:null,jseval:Sk.builtin.jseval,jsmillis:Sk.builtin.jsmillis,quit:new Sk.builtin.func(Sk.builtin.quit),exit:new Sk.builtin.func(Sk.builtin.quit),print:null,divmod:null,format:null,globals:null,issubclass:null,iter:null,execfile:Sk.builtin.execfile,help:Sk.builtin.help,memoryview:Sk.builtin.memoryview,reload:Sk.builtin.reload,super_$rw$:Sk.builtin.super_,unichr:new Sk.builtin.func(Sk.builtin.unichr),vars:Sk.builtin.vars,apply_$rw$:Sk.builtin.apply_,buffer:Sk.builtin.buffer,coerce:Sk.builtin.coerce,intern:Sk.builtin.intern,property:Sk.builtin.property,classmethod:Sk.builtin.classmethod,staticmethod:Sk.builtin.staticmethod,Ellipsis:Sk.builtin.Ellipsis},t=Sk.builtin.none.none$,e=new Sk.builtin.tuple;const s=new Sk.builtin.int_(0);Sk.abstr.setUpModuleMethods("builtins",Sk.builtins,{__import__:{$meth(t,e,i,s,r){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__import__() argument 1 must be str, not "+t.tp$name);if(t===Sk.builtin.str.$empty&&0===r.v)throw new Sk.builtin.ValueError("Empty module name");return e=n(e,"globals")||{},s=Sk.ffi.remapToJs(s),r=Sk.ffi.remapToJs(r),Sk.builtin.__import__(t,e,void 0,s,r)},$flags:{NamedArgs:["name","globals","locals","fromlist","level"],Defaults:[t,t,e,s]},$textsig:null,$doc:"__import__(name, globals=None, locals=None, fromlist=(), level=0) -> module\n\nImport a module. Because this function is meant for use by the Python\ninterpreter and not for general use, it is better to use\nimportlib.import_module() to programmatically import a module.\n\nThe globals argument is only used to determine the context;\nthey are not modified. The locals argument is unused. The fromlist\nshould be a list of names to emulate ``from name import ...'', or an\nempty list to emulate ``import name''.\nWhen importing a module from a package, note that __import__('A.B', ...)\nreturns package A when fromlist is empty, but its submodule B when\nfromlist is not empty. The level argument is used to determine whether to\nperform absolute or relative imports: 0 is absolute, while a positive number\nis the number of parent directories to search relative to the current module."},abs:{$meth:Sk.builtin.abs,$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the absolute value of the argument."},all:{$meth:Sk.builtin.all,$flags:{OneArg:!0},$textsig:"($module, iterable, /)",$doc:"Return True if bool(x) is True for all values x in the iterable.\n\nIf the iterable is empty, return True."},any:{$meth:Sk.builtin.any,$flags:{OneArg:!0},$textsig:"($module, iterable, /)",$doc:"Return True if bool(x) is True for any x in the iterable.\n\nIf the iterable is empty, return False."},ascii:{$meth:Sk.builtin.ascii,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return an ASCII-only representation of an object.\n\nAs repr(), return a string containing a printable representation of an\nobject, but escape the non-ASCII characters in the string returned by\nrepr() using \\\\x, \\\\u or \\\\U escapes. This generates a string similar\nto that returned by repr() in Python 2."},bin:{$meth:Sk.builtin.bin,$flags:{OneArg:!0},$textsig:"($module, number, /)",$doc:"Return the binary representation of an integer.\n\n >>> bin(2796202)\n '0b1010101010101010101010'"},callable:{$meth:Sk.builtin.callable,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return whether the object is callable (i.e., some kind of function).\n\nNote that classes are callable, as are instances of classes with a\n__call__() method."},chr:{$meth:Sk.builtin.chr,$flags:{OneArg:!0},$textsig:"($module, i, /)",$doc:"Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff."},compile:{$meth:Sk.builtin.compile,$flags:{MinArgs:3,MaxArgs:6},$textsig:"($module, /, source, filename, mode, flags=0,\n dont_inherit=False, optimize=-1)",$doc:"Compile source into a code object that can be executed by exec() or eval().\n\nThe source code may represent a Python module, statement or expression.\nThe filename will be used for run-time error messages.\nThe mode must be 'exec' to compile a module, 'single' to compile a\nsingle (interactive) statement, or 'eval' to compile an expression.\nThe flags argument, if present, controls which future statements influence\nthe compilation of the code.\nThe dont_inherit argument, if true, stops the compilation inheriting\nthe effects of any future statements in effect in the code calling\ncompile; if absent or false these statements do influence the compilation,\nin addition to any features explicitly specified."},delattr:{$meth:Sk.builtin.delattr,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, obj, name, /)",$doc:"Deletes the named attribute from the given object.\n\ndelattr(x, 'y') is equivalent to ``del x.y''"},dir:{$meth:Sk.builtin.dir,$flags:{MinArgs:0,MaxArgs:1},$textsig:null,$doc:"dir([object]) -> list of strings\n\nIf called without an argument, return the names in the current scope.\nElse, return an alphabetized list of names comprising (some of) the attributes\nof the given object, and of attributes reachable from it.\nIf the object supplies a method named __dir__, it will be used; otherwise\nthe default dir() logic is used and returns:\n for a module object: the module's attributes.\n for a class object: its attributes, and recursively the attributes\n of its bases.\n for any other object: its attributes, its class's attributes, and\n recursively the attributes of its class's base classes."},divmod:{$meth:Sk.builtin.divmod,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return the tuple (x//y, x%y). Invariant: div*y + mod == x."},eval_$rw$:{$name:"eval",$meth:function(t,e,s){const r=n(e,"globals"),o=n(s,"locals");return Sk.misceval.chain(Sk.builtin.eval(t,r,o),(t=>(i(e,r),i(s,o),t)))},$flags:{MinArgs:1,MaxArgs:3},$textsig:"($module, source, globals=None, locals=None, /)",$doc:"Evaluate the given source in the context of globals and locals.\n\nThe source may be a string representing a Python expression\nor a code object as returned by compile().\nThe globals must be a dictionary and locals can be any mapping,\ndefaulting to the current globals and locals.\nIf only globals is given, locals defaults to it."},exec:{$meth:function(t,e,s){const r=n(e,"globals"),o=n(s,"locals");return Sk.misceval.chain(Sk.builtin.exec(t,r,o),(t=>(i(e,r),i(s,o),Sk.builtin.none.none$)))},$flags:{MinArgs:1,MaxArgs:3},$textsig:"($module, source, globals=None, locals=None, /)",$doc:"Execute the given source in the context of globals and locals.\n\nThe source may be a string representing one or more Python statements\nor a code object as returned by compile().\nThe globals must be a dictionary and locals can be any mapping,\ndefaulting to the current globals and locals.\nIf only globals is given, locals defaults to it."},format:{$meth:Sk.builtin.format,$flags:{MinArgs:1,MaxArgs:2},$textsig:"($module, value, format_spec='', /)",$doc:"Return value.__format__(format_spec)\n\nformat_spec defaults to the empty string.\nSee the Format Specification Mini-Language section of help('FORMATTING') for\ndetails."},getattr:{$meth:Sk.builtin.getattr,$flags:{MinArgs:2,MaxArgs:3},$textsig:null,$doc:"getattr(object, name[, default]) -> value\n\nGet a named attribute from an object; getattr(x, 'y') is equivalent to x.y.\nWhen a default argument is given, it is returned when the attribute doesn't\nexist; without it, an exception is raised in that case."},globals:{$meth:Sk.builtin.globals,$flags:{NoArgs:!0},$textsig:"($module, /)",$doc:"Return the dictionary containing the current scope's global variables.\n\nNOTE: Updates to this dictionary *will* affect name lookups in the current\nglobal scope and vice-versa."},hasattr:{$meth:Sk.builtin.hasattr,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, obj, name, /)",$doc:"Return whether the object has an attribute with the given name.\n\nThis is done by calling getattr(obj, name) and catching AttributeError."},hash:{$meth:Sk.builtin.hash,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the hash value for the given object.\n\nTwo objects that compare equal must also have the same hash value, but the\nreverse is not necessarily true."},hex:{$meth:Sk.builtin.hex,$flags:{OneArg:!0},$textsig:"($module, number, /)",$doc:"Return the hexadecimal representation of an integer.\n\n >>> hex(12648430)\n '0xc0ffee'"},id:{$meth:Sk.builtin.id,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the identity of an object.\n\nThis is guaranteed to be unique among simultaneously existing objects.\n(CPython uses the object's memory address.)"},input:{$meth:Sk.builtin.input,$flags:{MinArgs:0,MaxArgs:1},$textsig:"($module, prompt=None, /)",$doc:"Read a string from standard input. The trailing newline is stripped.\n\nThe prompt string, if given, is printed to standard output without a\ntrailing newline before reading input.\n\nIf the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.\nOn *nix systems, readline is used if available."},isinstance:{$meth:Sk.builtin.isinstance,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, obj, class_or_tuple, /)",$doc:"Return whether an object is an instance of a class or of a subclass thereof.\n\nA tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to\ncheck against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)\nor ...`` etc."},issubclass:{$meth:Sk.builtin.issubclass,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, cls, class_or_tuple, /)",$doc:"Return whether 'cls' is a derived from another class or is the same class.\n\nA tuple, as in ``issubclass(x, (A, B, ...))``, may be given as the target to\ncheck against. This is equivalent to ``issubclass(x, A) or issubclass(x, B)\nor ...`` etc."},iter:{$meth:Sk.builtin.iter,$flags:{MinArgs:1,MaxArgs:2},$textsig:"($module, iterable /)",$doc:"iter(iterable) -> iterator\niter(callable, sentinel) -> iterator\n\nGet an iterator from an object. In the first form, the argument must\nsupply its own iterator, or be a sequence.\nIn the second form, the callable is called until it returns the sentinel."},len:{$meth:Sk.builtin.len,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the number of items in a container."},locals:{$meth:Sk.builtin.locals,$flags:{NoArgs:!0},$textsig:"($module, /)",$doc:"Return a dictionary containing the current scope's local variables.\n\nNOTE: Whether or not updates to this dictionary will affect name lookups in\nthe local scope and vice-versa is *implementation dependent* and not\ncovered by any backwards compatibility guarantees."},max:{$meth:Sk.builtin.max,$flags:{FastCall:!0},$textsig:null,$doc:"max(iterable, *[, default=obj, key=func]) -> value\nmax(arg1, arg2, *args, *[, key=func]) -> value\n\nWith a single iterable argument, return its biggest item. The\ndefault keyword-only argument specifies an object to return if\nthe provided iterable is empty.\nWith two or more arguments, return the largest argument."},min:{$meth:Sk.builtin.min,$flags:{FastCall:!0},$textsig:null,$doc:"min(iterable, *[, default=obj, key=func]) -> value\nmin(arg1, arg2, *args, *[, key=func]) -> value\n\nWith a single iterable argument, return its smallest item. The\ndefault keyword-only argument specifies an object to return if\nthe provided iterable is empty.\nWith two or more arguments, return the smallest argument."},next:{$name:"next",$meth:Sk.builtin.next_,$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"next(iterator[, default])\n\nReturn the next item from the iterator. If default is given and the iterator\nis exhausted, it is returned instead of raising StopIteration."},oct:{$meth:Sk.builtin.oct,$flags:{OneArg:!0},$textsig:"($module, number, /)",$doc:"Return the octal representation of an integer.\n\n >>> oct(342391)\n '0o1234567'"},open:{$meth:Sk.builtin.open,$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"open(name[, mode[, buffering]]) -> file object\n\nOpen a file using the file() type, returns a file object. This is the\npreferred way to open a file. See file.__doc__ for further information."},ord:{$meth:Sk.builtin.ord,$flags:{OneArg:!0},$textsig:"($module, c, /)",$doc:"Return the Unicode code point for a one-character string."},pow:{$meth:Sk.builtin.pow,$flags:{MinArgs:2,MaxArgs:3},$textsig:"($module, x, y, z=None, /)",$doc:"Equivalent to x**y (with two arguments) or x**y % z (with three arguments)\n\nSome types, such as ints, are able to use a more efficient algorithm when\ninvoked using the three argument form."},print:{$meth:Sk.builtin.print,$flags:{FastCall:!0},$textsig:null,$doc:"print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n\nPrints the values to a stream, or to sys.stdout by default.\nOptional keyword arguments:\nfile: a file-like object (stream); defaults to the current sys.stdout.\nsep: string inserted between values, default a space.\nend: string appended after the last value, default a newline.\nflush: whether to forcibly flush the stream."},repr:{$meth:Sk.builtin.repr,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the canonical string representation of the object.\n\nFor many object types, including most builtins, eval(repr(obj)) == obj."},round:{$meth:Sk.builtin.round,$flags:{NamedArgs:["number","ndigits"]},$textsig:"($module, /, number, ndigits=None)",$doc:"Round a number to a given precision in decimal digits.\n\nThe return value is an integer if ndigits is omitted or None. Otherwise\nthe return value has the same type as the number. ndigits may be negative."},setattr:{$meth:Sk.builtin.setattr,$flags:{MinArgs:3,MaxArgs:3},$textsig:"($module, obj, name, value, /)",$doc:"Sets the named attribute on the given object to the specified value.\n\nsetattr(x, 'y', v) is equivalent to ``x.y = v''"},sorted:{$meth:Sk.builtin.sorted,$flags:{NamedArgs:[null,"cmp","key","reverse"],Defaults:[Sk.builtin.none.none$,Sk.builtin.none.none$,Sk.builtin.bool.false$]},$textsig:"($module, iterable, /, *, key=None, reverse=False)",$doc:"Return a new list containing all items from the iterable in ascending order.\n\nA custom key function can be supplied to customize the sort order, and the\nreverse flag can be set to request the result in descending order."},sum:{$meth:Sk.builtin.sum,$flags:{NamedArgs:[null,"start"],Defaults:[new Sk.builtin.int_(0)]},$textsig:"($module, iterable, /, start=0)",$doc:"Return the sum of a 'start' value (default: 0) plus an iterable of numbers\n\nWhen the iterable is empty, return the start value.\nThis function is intended specifically for use with numeric values and may\nreject non-numeric types."},vars:{$meth:Sk.builtin.vars,$flags:{MinArgs:0,MaxArgs:1},$textsig:null,$doc:"vars([object]) -> dictionary\n\nWithout arguments, equivalent to locals().\nWith an argument, equivalent to object.__dict__."}}),Sk.setupObjects=function(t){t?(Sk.builtins.filter=Sk.builtin.filter_,Sk.builtins.map=Sk.builtin.map_,Sk.builtins.zip=Sk.builtin.zip_,Sk.builtins.range=Sk.builtin.range_,delete Sk.builtins.reduce,delete Sk.builtins.xrange,delete Sk.builtins.StandardError,delete Sk.builtins.unicode,delete Sk.builtins.basestring,delete Sk.builtins.long_$rw$,Sk.builtin.int_.prototype.$r=function(){return new Sk.builtin.str(this.v.toString())},delete Sk.builtin.int_.prototype.tp$str,delete Sk.builtin.bool.prototype.tp$str,delete Sk.builtins.raw_input,delete Sk.builtins.unichr,delete Sk.builtin.str.prototype.decode,Sk.builtins.bytes=Sk.builtin.bytes,Sk.builtins.ascii=new Sk.builtin.sk_method({$meth:Sk.builtin.ascii,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return an ASCII-only representation of an object.\n\nAs repr(), return a string containing a printable representation of an\nobject, but escape the non-ASCII characters in the string returned by\nrepr() using \\\\x, \\\\u or \\\\U escapes. This generates a string similar\nto that returned by repr() in Python 2."},null,"builtins")):(Sk.builtins.range=new Sk.builtin.sk_method({$meth:Sk.builtin.range,$name:"range",$flags:{MinArgs:1,MaxArgs:3}},void 0,"builtins"),Sk.builtins.xrange=new Sk.builtin.sk_method({$meth:Sk.builtin.xrange,$name:"xrange",$flags:{MinArgs:1,MaxArgs:3}},null,"builtins"),Sk.builtins.reduce=new Sk.builtin.sk_method({$meth:Sk.builtin.reduce,$name:"reduce",$flags:{MinArgs:2,MaxArgs:3}},null,"builtins"),Sk.builtins.filter=new Sk.builtin.func(Sk.builtin.filter),Sk.builtins.map=new Sk.builtin.func(Sk.builtin.map),Sk.builtins.zip=new Sk.builtin.func(Sk.builtin.zip),Sk.builtins.StandardError=Sk.builtin.Exception,Sk.builtins.unicode=Sk.builtin.str,Sk.builtins.basestring=Sk.builtin.str,Sk.builtins.long_$rw$=Sk.builtin.lng,Sk.builtin.int_.prototype.$r=function(){const t=this.v;return"number"==typeof t?new Sk.builtin.str(t.toString()):new Sk.builtin.str(t.toString()+"L")},Sk.builtin.int_.prototype.tp$str=function(){return new Sk.builtin.str(this.v.toString())},Sk.builtin.bool.prototype.tp$str=function(){return this.$r()},Sk.builtins.raw_input=new Sk.builtin.func(Sk.builtin.raw_input),Sk.builtins.unichr=new Sk.builtin.func(Sk.builtin.unichr),Sk.builtin.str.prototype.decode=Sk.builtin.str.$py2decode,delete Sk.builtins.bytes,delete Sk.builtins.ascii)},Sk.exportSymbol("Sk.setupObjects",Sk.setupObjects),Sk.exportSymbol("Sk.builtins",Sk.builtins)},function(t,e){Sk.builtin.str.$empty=new Sk.builtin.str(""),Sk.builtin.str.$emptystr=Sk.builtin.str.$empty,Sk.builtin.str.$utf8=new Sk.builtin.str("utf-8"),Sk.builtin.str.$ascii=new Sk.builtin.str("ascii"),Sk.builtin.str.$default_factory=new Sk.builtin.str("default_factory"),Sk.builtin.str.$imag=new Sk.builtin.str("imag"),Sk.builtin.str.$real=new Sk.builtin.str("real"),Sk.builtin.str.$abs=new Sk.builtin.str("__abs__"),Sk.builtin.str.$bases=new Sk.builtin.str("__bases__"),Sk.builtin.str.$bytes=new Sk.builtin.str("__bytes__"),Sk.builtin.str.$call=new Sk.builtin.str("__call__"),Sk.builtin.str.$class=new Sk.builtin.str("__class__"),Sk.builtin.str.$class_getitem=new Sk.builtin.str("__class_getitem__"),Sk.builtin.str.$cmp=new Sk.builtin.str("__cmp__"),Sk.builtin.str.$complex=new Sk.builtin.str("__complex__"),Sk.builtin.str.$contains=new Sk.builtin.str("__contains__"),Sk.builtin.str.$copy=new Sk.builtin.str("__copy__"),Sk.builtin.str.$dict=new Sk.builtin.str("__dict__"),Sk.builtin.str.$dir=new Sk.builtin.str("__dir__"),Sk.builtin.str.$doc=new Sk.builtin.str("__doc__"),Sk.builtin.str.$enter=new Sk.builtin.str("__enter__"),Sk.builtin.str.$eq=new Sk.builtin.str("__eq__"),Sk.builtin.str.$exit=new Sk.builtin.str("__exit__"),Sk.builtin.str.$index=new Sk.builtin.str("__index__"),Sk.builtin.str.$init=new Sk.builtin.str("__init__"),Sk.builtin.str.$initsubclass=new Sk.builtin.str("__init_subclass__"),Sk.builtin.str.$int_=new Sk.builtin.str("__int__"),Sk.builtin.str.$iter=new Sk.builtin.str("__iter__"),Sk.builtin.str.$file=new Sk.builtin.str("__file__"),Sk.builtin.str.$float_=new Sk.builtin.str("__float__"),Sk.builtin.str.$format=new Sk.builtin.str("__format__"),Sk.builtin.str.$ge=new Sk.builtin.str("__ge__"),Sk.builtin.str.$getattr=new Sk.builtin.str("__getattr__"),Sk.builtin.str.$getattribute=new Sk.builtin.str("__getattribute__"),Sk.builtin.str.$getitem=new Sk.builtin.str("__getitem__"),Sk.builtin.str.$gt=new Sk.builtin.str("__gt__"),Sk.builtin.str.$keys=new Sk.builtin.str("keys"),Sk.builtin.str.$le=new Sk.builtin.str("__le__"),Sk.builtin.str.$len=new Sk.builtin.str("__len__"),Sk.builtin.str.$length_hint=new Sk.builtin.str("__length_hint__"),Sk.builtin.str.$loader=new Sk.builtin.str("__loader__"),Sk.builtin.str.$lt=new Sk.builtin.str("__lt__"),Sk.builtin.str.$module=new Sk.builtin.str("__module__"),Sk.builtin.str.$missing=new Sk.builtin.str("__missing__"),Sk.builtin.str.$name=new Sk.builtin.str("__name__"),Sk.builtin.str.$ne=new Sk.builtin.str("__ne__"),Sk.builtin.str.$new=new Sk.builtin.str("__new__"),Sk.builtin.str.$next=new Sk.builtin.str("__next__"),Sk.builtin.str.$path=new Sk.builtin.str("__path__"),Sk.builtin.str.$prepare=new Sk.builtin.str("__prepare__"),Sk.builtin.str.$qualname=new Sk.builtin.str("__qualname__"),Sk.builtin.str.$repr=new Sk.builtin.str("__repr__"),Sk.builtin.str.$reversed=new Sk.builtin.str("__reversed__"),Sk.builtin.str.$round=new Sk.builtin.str("__round__"),Sk.builtin.str.$setattr=new Sk.builtin.str("__setattr__"),Sk.builtin.str.$setitem=new Sk.builtin.str("__setitem__"),Sk.builtin.str.$slots=new Sk.builtin.str("__slots__"),Sk.builtin.str.$str=new Sk.builtin.str("__str__"),Sk.builtin.str.$setname=new Sk.builtin.str("__set_name__"),Sk.builtin.str.$trunc=new Sk.builtin.str("__trunc__"),Sk.builtin.str.$write=new Sk.builtin.str("write"),Sk.misceval.op2method_={Eq:Sk.builtin.str.$eq,NotEq:Sk.builtin.str.$ne,Gt:Sk.builtin.str.$gt,GtE:Sk.builtin.str.$ge,Lt:Sk.builtin.str.$lt,LtE:Sk.builtin.str.$le}},function(t,e,n){function i(t,e,n,i,s){this.type=t,this.string=e,this.start=n,this.end=i,this.line=s}function s(t){return"("+Array.prototype.slice.call(arguments).join("|")+")"}function r(t){return s.apply(null,arguments)+"?"}function o(t,e){for(var n=t.length;n--;)if(t[n]===e)return!0;return!1}function a(t){return t=t.normalize("NFKC"),E.test(t)}function l(){return" FR RF Br BR Fr r B R b bR f rb rB F Rf U rF u RB br fR fr rf Rb".split(" ")}function u(t){t?delete Sk.token.EXACT_TOKEN_TYPES["<>"]:Sk.token.EXACT_TOKEN_TYPES["<>"]=Sk.token.tokens.T_NOTEQUAL,I=Object.keys(Sk.token.EXACT_TOKEN_TYPES).sort(),A=s.apply(this,I.reverse().map((function(t){return t&&d.test(t)?t.replace(_,"\\$&"):t}))),O=s("\\r?\\n",A)}n.r(e),(t={Cc:"\\0-\\x1F\\x7F-\\x9F",Cf:"\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB",Co:"\\uE000-\\uF8FF",Cs:"\\uD800-\\uDFFF",Ll:"a-z\\xB5\\xDF-\\xF6\\xF8-\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0529\\u052B\\u052D\\u052F\\u0560-\\u0588\\u10D0-\\u10FA\\u10FD-\\u10FF\\u13F8-\\u13FD\\u1C80-\\u1C88\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA699\\uA69B\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793-\\uA795\\uA797\\uA799\\uA79B\\uA79D\\uA79F\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7AF\\uA7B5\\uA7B7\\uA7B9\\uA7BB\\uA7BD\\uA7BF\\uA7C3\\uA7C8\\uA7CA\\uA7F6\\uA7FA\\uAB30-\\uAB5A\\uAB60-\\uAB68\\uAB70-\\uABBF\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A",Lm:"\\u02B0-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u081A\\u0824\\u0828\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1AA7\\u1C78-\\u1C7D\\u1D2C-\\u1D6A\\u1D78\\u1D9B-\\u1DBF\\u2071\\u207F\\u2090-\\u209C\\u2C7C\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031-\\u3035\\u303B\\u309D\\u309E\\u30FC-\\u30FE\\uA015\\uA4F8-\\uA4FD\\uA60C\\uA67F\\uA69C\\uA69D\\uA717-\\uA71F\\uA770\\uA788\\uA7F8\\uA7F9\\uA9CF\\uA9E6\\uAA70\\uAADD\\uAAF3\\uAAF4\\uAB5C-\\uAB5F\\uAB69\\uFF70\\uFF9E\\uFF9F",Lo:"\\xAA\\xBA\\u01BB\\u01C0-\\u01C3\\u0294\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u0800-\\u0815\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0972-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E45\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1100-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17DC\\u1820-\\u1842\\u1844-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C77\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u2135-\\u2138\\u2D30-\\u2D67\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3006\\u303C\\u3041-\\u3096\\u309F\\u30A1-\\u30FA\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA014\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA500-\\uA60B\\uA610-\\uA61F\\uA62A\\uA62B\\uA66E\\uA6A0-\\uA6E5\\uA78F\\uA7F7\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9E0-\\uA9E4\\uA9E7-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA6F\\uAA71-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB\\uAADC\\uAAE0-\\uAAEA\\uAAF2\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF66-\\uFF6F\\uFF71-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC",Lt:"\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88-\\u1F8F\\u1F98-\\u1F9F\\u1FA8-\\u1FAF\\u1FBC\\u1FCC\\u1FFC",Lu:"A-Z\\xC0-\\xD6\\xD8-\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AE\\uA7B0-\\uA7B4\\uA7B6\\uA7B8\\uA7BA\\uA7BC\\uA7BE\\uA7C2\\uA7C4-\\uA7C7\\uA7C9\\uA7F5\\uFF21-\\uFF3A",M:"\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1AC0\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F",Mc:"\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u094F\\u0982\\u0983\\u09BE-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062-\\u1064\\u1067-\\u106D\\u1083\\u1084\\u1087-\\u108C\\u108F\\u109A-\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1A19\\u1A1A\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF7\\u302E\\u302F\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BE-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAA7B\\uAA7D\\uAAEB\\uAAEE\\uAAEF\\uAAF5\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC",Me:"\\u0488\\u0489\\u1ABE\\u20DD-\\u20E0\\u20E2-\\u20E4\\uA670-\\uA672",Mn:"\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABD\\u1ABF\\u1AC0\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F",Nd:"0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19",Nl:"\\u16EE-\\u16F0\\u2160-\\u2182\\u2185-\\u2188\\u3007\\u3021-\\u3029\\u3038-\\u303A\\uA6E6-\\uA6EF",No:"\\xB2\\xB3\\xB9\\xBC-\\xBE\\u09F4-\\u09F9\\u0B72-\\u0B77\\u0BF0-\\u0BF2\\u0C78-\\u0C7E\\u0D58-\\u0D5E\\u0D70-\\u0D78\\u0F2A-\\u0F33\\u1369-\\u137C\\u17F0-\\u17F9\\u19DA\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u215F\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA830-\\uA835",Pc:"_\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F",Pd:"\\-\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E17\\u2E1A\\u2E3A\\u2E3B\\u2E40\\u301C\\u3030\\u30A0\\uFE31\\uFE32\\uFE58\\uFE63\\uFF0D",Pe:"\\)\\]\\}\\u0F3B\\u0F3D\\u169C\\u2046\\u207E\\u208E\\u2309\\u230B\\u232A\\u2769\\u276B\\u276D\\u276F\\u2771\\u2773\\u2775\\u27C6\\u27E7\\u27E9\\u27EB\\u27ED\\u27EF\\u2984\\u2986\\u2988\\u298A\\u298C\\u298E\\u2990\\u2992\\u2994\\u2996\\u2998\\u29D9\\u29DB\\u29FD\\u2E23\\u2E25\\u2E27\\u2E29\\u3009\\u300B\\u300D\\u300F\\u3011\\u3015\\u3017\\u3019\\u301B\\u301E\\u301F\\uFD3E\\uFE18\\uFE36\\uFE38\\uFE3A\\uFE3C\\uFE3E\\uFE40\\uFE42\\uFE44\\uFE48\\uFE5A\\uFE5C\\uFE5E\\uFF09\\uFF3D\\uFF5D\\uFF60\\uFF63",Pf:"\\xBB\\u2019\\u201D\\u203A\\u2E03\\u2E05\\u2E0A\\u2E0D\\u2E1D\\u2E21",Pi:"\\xAB\\u2018\\u201B\\u201C\\u201F\\u2039\\u2E02\\u2E04\\u2E09\\u2E0C\\u2E1C\\u2E20",Po:"!-#%-'\\*,\\.\\/:;\\?@\\xA1\\xA7\\xB6\\xB7\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u166E\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u1805\\u1807-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2016\\u2017\\u2020-\\u2027\\u2030-\\u2038\\u203B-\\u203E\\u2041-\\u2043\\u2047-\\u2051\\u2053\\u2055-\\u205E\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00\\u2E01\\u2E06-\\u2E08\\u2E0B\\u2E0E-\\u2E16\\u2E18\\u2E19\\u2E1B\\u2E1E\\u2E1F\\u2E2A-\\u2E2E\\u2E30-\\u2E39\\u2E3C-\\u2E3F\\u2E41\\u2E43-\\u2E4F\\u2E52\\u3001-\\u3003\\u303D\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFE10-\\uFE16\\uFE19\\uFE30\\uFE45\\uFE46\\uFE49-\\uFE4C\\uFE50-\\uFE52\\uFE54-\\uFE57\\uFE5F-\\uFE61\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF07\\uFF0A\\uFF0C\\uFF0E\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3C\\uFF61\\uFF64\\uFF65",Ps:"\\(\\[\\{\\u0F3A\\u0F3C\\u169B\\u201A\\u201E\\u2045\\u207D\\u208D\\u2308\\u230A\\u2329\\u2768\\u276A\\u276C\\u276E\\u2770\\u2772\\u2774\\u27C5\\u27E6\\u27E8\\u27EA\\u27EC\\u27EE\\u2983\\u2985\\u2987\\u2989\\u298B\\u298D\\u298F\\u2991\\u2993\\u2995\\u2997\\u29D8\\u29DA\\u29FC\\u2E22\\u2E24\\u2E26\\u2E28\\u2E42\\u3008\\u300A\\u300C\\u300E\\u3010\\u3014\\u3016\\u3018\\u301A\\u301D\\uFD3F\\uFE17\\uFE35\\uFE37\\uFE39\\uFE3B\\uFE3D\\uFE3F\\uFE41\\uFE43\\uFE47\\uFE59\\uFE5B\\uFE5D\\uFF08\\uFF3B\\uFF5B\\uFF5F\\uFF62",Sc:"\\$\\xA2-\\xA5\\u058F\\u060B\\u07FE\\u07FF\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20BF\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6",Sk:"\\^`\\xA8\\xAF\\xB4\\xB8\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u309B\\u309C\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uAB5B\\uAB6A\\uAB6B\\uFBB2-\\uFBC1\\uFF3E\\uFF40\\uFFE3",Sm:"\\+<->\\|~\\xAC\\xB1\\xD7\\xF7\\u03F6\\u0606-\\u0608\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u2118\\u2140-\\u2144\\u214B\\u2190-\\u2194\\u219A\\u219B\\u21A0\\u21A3\\u21A6\\u21AE\\u21CE\\u21CF\\u21D2\\u21D4\\u21F4-\\u22FF\\u2320\\u2321\\u237C\\u239B-\\u23B3\\u23DC-\\u23E1\\u25B7\\u25C1\\u25F8-\\u25FF\\u266F\\u27C0-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u27FF\\u2900-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2AFF\\u2B30-\\u2B44\\u2B47-\\u2B4C\\uFB29\\uFE62\\uFE64-\\uFE66\\uFF0B\\uFF1C-\\uFF1E\\uFF5C\\uFF5E\\uFFE2\\uFFE9-\\uFFEC",So:"\\xA6\\xA9\\xAE\\xB0\\u0482\\u058D\\u058E\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u09FA\\u0B70\\u0BF3-\\u0BF8\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116\\u2117\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u214A\\u214C\\u214D\\u214F\\u218A\\u218B\\u2195-\\u2199\\u219C-\\u219F\\u21A1\\u21A2\\u21A4\\u21A5\\u21A7-\\u21AD\\u21AF-\\u21CD\\u21D0\\u21D1\\u21D3\\u21D5-\\u21F3\\u2300-\\u2307\\u230C-\\u231F\\u2322-\\u2328\\u232B-\\u237B\\u237D-\\u239A\\u23B4-\\u23DB\\u23E2-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u25B6\\u25B8-\\u25C0\\u25C2-\\u25F7\\u2600-\\u266E\\u2670-\\u2767\\u2794-\\u27BF\\u2800-\\u28FF\\u2B00-\\u2B2F\\u2B45\\u2B46\\u2B4D-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA828-\\uA82B\\uA836\\uA837\\uA839\\uAA77-\\uAA79\\uFDFD\\uFFE4\\uFFE8\\uFFED\\uFFEE\\uFFFC\\uFFFD",Zl:"\\u2028",Zp:"\\u2029",Zs:" \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000"}).C=t.Cc+t.Cf+t.Cs+t.Co,t.L=t.Lu+t.Ll+t.Lt+t.Lm+t.Mn+t.Lo,t.LC=t.Lu+t.Ll+t.Lt,t.M=t.Mn+t.Mc+t.Me,t.N=t.Nd+t.Nl+t.No,t.P=t.Pc+t.Pd+t.Ps+t.Pe+t.Pi+t.Pf+t.Po,t.S=t.Sm+t.Sc+t.Sk+t.So,t.Z=t.Zs+t.Zl+t.Zp,t.w="_"+t.L+t.N,t.b="(?:["+t.w+"](?:[^"+t.w+"]|$)|(?:^|[^"+t.w+"])["+t.w+"])",t.bOut="(?=[^"+t.w+"]|$)",t.bIn="(?:^|[^"+t.w+"])",t.bInCapture="(?:^|([^"+t.w+"]))",t.B="(?:["+t.w+"]["+t.w+"]|[^"+t.w+"][^"+t.w+"])",t.d=t.N;var c=Sk.token.tokens;const p=Sk.builtin.SyntaxError,h=Sk.builtin.SyntaxError;i.prototype.exact_type=function(){return this.type==c.T_OP&&this.string in Sk.token.EXACT_TOKEN_TYPES?Sk.token.EXACT_TOKEN_TYPES[this.string]:this.type};var _=/[\\^$.*+?()[\]{}|]/g,d=RegExp(_.source);const{Lu:f,Ll:m,Lt:g,Lm:b,Lo:S,Nl:k,Mn:T,Mc:y,Nd:v,Pc:$}=t,w="["+(t=f+m+g+b+S+k+"_\\u1885-\\u1886\\u2118\\u212E\\u309B-\\u309C")+"]+["+(t+T+y+v+$)+"\\u00B7\\u0387\\u1369-\\u1371\\u19DA]*",E=new RegExp("^"+w+"$");Sk.token.isIdentifier=a,function(t){s.apply(null,arguments)}("\\\\\\r?\\n[ \\f\\t]*"),r("#[^\\r\\n]*"),t=s("[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?","\\.[0-9](?:_?[0-9])*")+r("[eE][-+]?[0-9](?:_?[0-9])*");var I,A,O,M=s(t,"[0-9](?:_?[0-9])*[eE][-+]?[0-9](?:_?[0-9])*"),C=s("[0-9](?:_?[0-9])*[jJ]",M+"[jJ]");t=s.apply(null,l()),e=s(t+"'''",t+'"""'),s(t+"'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*'",t+'"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*"'),u(!0),Sk.token.setupTokens=u;var R=s(t+"'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*"+s("'","\\\\\\r?\\n"),t+'"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*'+s('"',"\\\\\\r?\\n")),x=s("\\\\\\r?\\n|$","#[^\\r\\n]*",e),N={};t=l();for(let e of t)N[e+"'"]="^[^'\\\\]*(?:\\\\.[^'\\\\]*)*'",N[e+'"']='^[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',N[e+"'''"]="^[^'\\\\]*(?:(?:\\\\.|'(?!''))[^'\\\\]*)*'''",N[e+'"""']='^[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*"""';let L=[],D=[];for(let e of t)L.push(e+'"'),L.push(e+"'"),D.push(e+'"""'),D.push(e+"'''");Sk._tokenize=function(t,e,n,r){var l=Sk.__future__.python3?"":"(?:L?)";l=s("0[xX](?:_?[0-9a-fA-F])+"+l,"0[bB](?:_?[01])+"+l,Sk.__future__.silent_octal_literal?"0([oO]?)(?:_?[0-7])+"+l:"0([oO])(?:_?[0-7])+"+l,"(?:0(?:_?0)*|[1-9](?:_?[0-9])*)"+l),l=s(C,M,l),l="[ \\f\\t]*"+s(x,l,O,R,w),l=new RegExp(l);var u,_,d,f=0,m=0,g=0,b="",S=0,k=null,T=[0],y=void 0,v=void 0;void 0!==n&&("utf-8-sig"==n&&(n="utf-8"),r(new i(c.T_ENCODING,n,[0,0],[0,0],"")));for(var $=n="";;){try{n=$,$=e()}catch(t){$=""}f+=1;var E=0,I=$.length;if(b){if(!$)throw new p("EOF in multi-line string",t,v[0],v[1]);y.lastIndex=0;var A=y.exec($);if(!A){S&&"\\\n"!==$.substring($.length-2)&&"\\\r\n"!==$.substring($.length-3)?(r(new i(c.T_ERRORTOKEN,b+$,v,[f,$.length],k)),b="",k=null):(b+=$,k+=$);continue}E=_=A[0].length,r(new i(c.T_STRING,b+$.substring(0,_),v,[f,_],k+$)),b="",S=0,k=null}else if(0!=m||g){if(!$)throw new p("EOF in multi-line statement",t,f,0);g=0}else{if(!$)break;for(u=0;ET[T.length-1]&&(T.push(u),r(new i(c.T_INDENT,$.substring(E),[f,0],[f,E],$)));u{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{"use strict";var t={};n.r(t),n.d(t,{controls_type:()=>nt,controls_typeLists:()=>it,lists_zip:()=>st,lists_zip_container:()=>rt,lists_zip_item:()=>ot,unpack_iterable_object:()=>at,variables_change:()=>tt,variables_get:()=>Q,variables_global:()=>et,variables_set:()=>Z});var e={};n.r(e),n.d(e,{base_setup:()=>ct,controls_delay:()=>pt,controls_end_program:()=>ht,controls_except:()=>wt,controls_finally:()=>Et,controls_flow_statements:()=>bt,controls_for:()=>St,controls_forEach:()=>ft,controls_for_range:()=>kt,controls_if:()=>_t,controls_if_else:()=>vt,controls_if_elseif:()=>yt,controls_if_if:()=>Tt,controls_lambda:()=>At,controls_main:()=>ut,controls_pass:()=>Ot,controls_range:()=>dt,controls_repeat_ext:()=>It,controls_thread:()=>Mt,controls_try:()=>$t,controls_try_finally:()=>gt,controls_whileUntil:()=>mt,datetime_fromtimestamp:()=>Dt,do_while:()=>Ct,garbage_collection:()=>Rt,gene_unique_identifier:()=>Ft,get_mem_alloc:()=>xt,get_mem_free:()=>Nt,get_unique_identifier:()=>Lt});var i={};n.r(i),n.d(i,{base_map:()=>se,generate_cartesian_product:()=>oe,math_arithmetic:()=>Yt,math_bit:()=>Gt,math_constant:()=>Vt,math_constant_mp:()=>Ut,math_constrain:()=>Kt,math_dec:()=>Ht,math_indexer_number:()=>Zt,math_map:()=>Qt,math_max_min:()=>zt,math_number:()=>Bt,math_number_base_conversion:()=>Wt,math_random:()=>Jt,math_random_seed:()=>te,math_round:()=>ee,math_selfcalcu:()=>jt,math_to_int:()=>qt,math_trig:()=>Xt,text_to_number:()=>ne,text_to_number_skulpt:()=>ie,turn_to_int:()=>re});var s={};n.r(s),n.d(s,{ascii_to_char:()=>he,char_to_ascii:()=>_e,number_to_text:()=>de,os_system:()=>Be,text:()=>le,text_capital:()=>ve,text_center:()=>$e,text_char:()=>ce,text_char_at:()=>ge,text_char_at2:()=>me,text_char_at3:()=>Le,text_compareTo:()=>Ne,text_compare_to:()=>ye,text_create_with_container:()=>Ce,text_create_with_item:()=>Re,text_encode:()=>Fe,text_equals_starts_ends:()=>Te,text_eval:()=>Pe,text_find:()=>we,text_format:()=>Me,text_format_noreturn:()=>De,text_join:()=>pe,text_join_seq:()=>Ee,text_length:()=>fe,text_random_char:()=>be,text_replace:()=>Ie,text_split:()=>Ae,text_strip:()=>Oe,text_substring:()=>ke,text_substring2:()=>Se,text_substring3:()=>xe,text_textarea:()=>ue});var r={};n.r(r),n.d(r,{ENUMERATE:()=>yn,content_in_lists:()=>$n,enumerate:()=>vn,list_many_input:()=>un,list_tolist:()=>_n,list_tolist2:()=>Tn,list_trig:()=>on,lists_2d_get_col_row_data:()=>Ge,lists_2d_get_data_with_col_row:()=>je,lists_append_extend:()=>Je,lists_change_to:()=>ln,lists_change_to_general:()=>pn,lists_clear:()=>en,lists_create_with:()=>Xe,lists_create_with2:()=>dn,lists_create_with_container:()=>qe,lists_create_with_item:()=>ze,lists_create_with_noreturn:()=>cn,lists_create_with_text:()=>He,lists_create_with_text2:()=>fn,lists_del_general:()=>hn,lists_find:()=>rn,lists_getIndex3:()=>mn,lists_getSublist3:()=>gn,lists_get_index:()=>Ue,lists_get_random_item:()=>Ke,lists_get_random_sublist:()=>Qe,lists_get_sublist:()=>Ye,lists_insert_value:()=>Ze,lists_insert_value2:()=>Sn,lists_pop:()=>sn,lists_remove_at:()=>nn,lists_remove_at2:()=>kn,lists_reverse:()=>tn,lists_setIndex3:()=>bn,lists_set_index:()=>We,lists_sort:()=>an});var o={};n.r(o),n.d(o,{dicts_add_change_del:()=>Vn,dicts_add_or_change:()=>Rn,dicts_clear:()=>Ln,dicts_create_with:()=>En,dicts_create_with_container:()=>In,dicts_create_with_item:()=>An,dicts_create_with_noreturn:()=>jn,dicts_deldict:()=>Bn,dicts_delete:()=>xn,dicts_get:()=>Mn,dicts_get_default:()=>Cn,dicts_items:()=>Dn,dicts_keys:()=>On,dicts_length:()=>Pn,dicts_pop:()=>Un,dicts_setdefault:()=>Yn,dicts_to_json:()=>Xn,dicts_to_json2:()=>zn,dicts_to_to:()=>qn,dicts_todict:()=>Gn,dicts_update:()=>Nn,dicts_values:()=>Fn,json_to_dicts:()=>Hn});var a={};n.r(a),n.d(a,{logic_boolean:()=>ti,logic_compare:()=>Jn,logic_compare_continous:()=>Kn,logic_is:()=>si,logic_is_in:()=>ii,logic_negate:()=>Zn,logic_null:()=>ei,logic_operation:()=>Qn,logic_tobool:()=>ri,logic_true_or_false:()=>ni});var l={};n.r(l),n.d(l,{sdcard_mount:()=>Ai,sdcard_use_spi_init:()=>Ii,storage_can_write_ornot:()=>di,storage_change_dir:()=>wi,storage_close_file:()=>mi,storage_delete_file:()=>bi,storage_file_seek:()=>Ti,storage_file_tell:()=>ki,storage_file_write:()=>ci,storage_fileopen:()=>ai,storage_fileopen_new:()=>li,storage_fileopen_new_encoding:()=>ui,storage_get_a_line:()=>_i,storage_get_contents:()=>hi,storage_get_contents_without_para:()=>pi,storage_get_current_dir:()=>yi,storage_get_file_size:()=>Si,storage_get_filename:()=>fi,storage_is_file:()=>Ei,storage_list_all_files:()=>gi,storage_make_dir:()=>vi,storage_open_file_with_os:()=>oi,storage_rename:()=>$i});var u={};n.r(u),n.d(u,{procedures_callnoreturn:()=>xi,procedures_callreturn:()=>Ni,procedures_defnoreturn:()=>Oi,procedures_defreturn:()=>Mi,procedures_ifreturn:()=>Li,procedures_mutatorarg:()=>Ri,procedures_mutatorcontainer:()=>Ci,procedures_return:()=>Di});var c={};n.r(c),n.d(c,{tuple_change_to:()=>zi,tuple_create_with:()=>Pi,tuple_create_with_container:()=>Bi,tuple_create_with_item:()=>Vi,tuple_create_with_noreturn:()=>Qi,tuple_create_with_text2:()=>Ui,tuple_create_with_text_return:()=>Yi,tuple_del:()=>Xi,tuple_find:()=>Wi,tuple_getIndex:()=>ji,tuple_getSublist:()=>Ki,tuple_get_random_item:()=>ts,tuple_get_sublist:()=>Zi,tuple_input:()=>ns,tuple_join:()=>Hi,tuple_length:()=>Gi,tuple_max:()=>qi,tuple_totuple:()=>es,tuple_trig:()=>Ji});var p={};n.r(p),n.d(p,{set_add_discard:()=>hs,set_clear:()=>us,set_create_with:()=>ss,set_create_with_container:()=>rs,set_create_with_item:()=>os,set_create_with_text_return:()=>fs,set_length:()=>as,set_operate:()=>cs,set_operate_update:()=>ps,set_pop:()=>ls,set_sub:()=>_s,set_toset:()=>ms,set_update:()=>ds});var h={};n.r(h),n.d(h,{html_content:()=>Ts,html_content_more:()=>ys,html_document:()=>bs,html_form:()=>$s,html_head_body:()=>ks,html_style:()=>vs,html_style_color:()=>Es,html_style_content:()=>ws,html_text:()=>Is,html_title:()=>Ss});var _={};n.r(_),n.d(_,{attribute_access:()=>Us,function_call:()=>Ps,function_call_container:()=>Bs,function_call_item:()=>Vs,raw_block:()=>Ms,raw_empty:()=>Rs,raw_expression:()=>Cs,raw_table:()=>Os,text_comment:()=>xs,text_print_multiple:()=>Ls,text_print_multiple_container:()=>Ds,text_print_multiple_item:()=>Fs,type_check:()=>Ns});var d={};n.r(d),n.d(d,{algorithm_add_path:()=>zs,algorithm_add_school:()=>Gs,algorithm_all_books:()=>cr,algorithm_all_books_sequence:()=>pr,algorithm_book_scale:()=>vr,algorithm_check_feet:()=>Nr,algorithm_chick_calculate:()=>xr,algorithm_color_seclet:()=>Qr,algorithm_current_school:()=>tr,algorithm_del_path:()=>Ws,algorithm_delete_book:()=>Sr,algorithm_delete_books:()=>kr,algorithm_delete_books2:()=>Tr,algorithm_divide_books:()=>gr,algorithm_find_path:()=>Xs,algorithm_first_book:()=>hr,algorithm_fz_calc:()=>Pr,algorithm_fz_calc_first_min:()=>Br,algorithm_fz_compare:()=>Vr,algorithm_fz_move:()=>Yr,algorithm_fz_set_min:()=>Ur,algorithm_get_book_num:()=>Ir,algorithm_get_current_location:()=>Jr,algorithm_get_half_books:()=>br,algorithm_hxdb_add:()=>qr,algorithm_hxdb_init_soldier:()=>Gr,algorithm_hxdb_last_line:()=>Hr,algorithm_hxdb_result:()=>zr,algorithm_hxdb_stand_in_line:()=>Xr,algorithm_init_fzsf:()=>Fr,algorithm_init_hxdb:()=>jr,algorithm_init_jttl:()=>Mr,algorithm_move_recent:()=>sr,algorithm_new_path:()=>Hs,algorithm_next_book:()=>fr,algorithm_no_left:()=>Ks,algorithm_no_path:()=>er,algorithm_no_ring2:()=>_r,algorithm_not_home:()=>rr,algorithm_not_school:()=>or,algorithm_number_add:()=>wr,algorithm_number_zero:()=>$r,algorithm_prepare:()=>js,algorithm_prepare2:()=>Zs,algorithm_prepare_2_1:()=>nr,algorithm_prepare_2_2:()=>ir,algorithm_print_book2:()=>yr,algorithm_print_divide:()=>Or,algorithm_print_jttl_answer:()=>Lr,algorithm_print_number:()=>Er,algorithm_print_path:()=>Qs,algorithm_print_path2:()=>ar,algorithm_print_sequence:()=>Ar,algorithm_rabbit_add:()=>Dr,algorithm_rabbit_number_in_range:()=>Rr,algorithm_rabbit_zero:()=>Cr,algorithm_return_path:()=>Js,algorithm_set_path:()=>qs,algorithm_two_left:()=>mr,algorithm_void_path:()=>Kr,algorithm_yes_ring2:()=>dr,hanoi_init:()=>lr,hanoi_init_offline:()=>Wr,hanoi_move:()=>ur});var f={};n.r(f),n.d(f,{factory_block:()=>uo,factory_block_return:()=>co,factory_block_return_with_textarea:()=>ho,factory_block_with_textarea:()=>po,factory_callMethod_noreturn:()=>ao,factory_callMethod_return:()=>lo,factory_create_with_container:()=>io,factory_create_with_item:()=>so,factory_declare:()=>oo,factory_from_import:()=>to,factory_function_noreturn:()=>no,factory_function_return:()=>ro,factory_import:()=>eo});var m={};n.r(m),n.d(m,{array_create:()=>Mo,array_toarray:()=>Go,dataframe_create:()=>go,dataframe_create_from_index:()=>So,dataframe_create_from_one_index:()=>bo,dataframe_get:()=>Uo,numpy_trig:()=>Po,pandas_readcsv:()=>Vo,pl_axes:()=>Eo,pl_bar:()=>No,pl_hist:()=>Do,pl_label:()=>Oo,pl_legend:()=>Io,pl_pie:()=>Lo,pl_plot:()=>$o,pl_plot_bar:()=>Co,pl_plot_easy:()=>vo,pl_plot_scatter:()=>Ro,pl_plot_xy:()=>xo,pl_savefig:()=>Yo,pl_show:()=>wo,pl_subplot:()=>Bo,pl_text:()=>jo,pl_ticks:()=>Fo,pl_title:()=>Ao,plot_axes:()=>zo,plot_bar:()=>ea,plot_hist:()=>ia,plot_label:()=>Ko,plot_legend:()=>Wo,plot_pie:()=>na,plot_plot:()=>Ho,plot_plot_bar:()=>Qo,plot_plot_easy:()=>Xo,plot_plot_scatter:()=>Zo,plot_plot_xy:()=>ta,plot_savefig:()=>oa,plot_show:()=>qo,plot_subplot:()=>ra,plot_text:()=>aa,plot_ticks:()=>sa,plot_title:()=>Jo,series_create:()=>fo,series_create_from_index:()=>mo,series_create_from_text:()=>ko,series_get_num:()=>yo,series_index_value:()=>To});var g={};n.r(g),n.d(g,{inout_input:()=>ua,inout_print:()=>ca,inout_print_container:()=>fa,inout_print_end:()=>ha,inout_print_inline:()=>pa,inout_print_item:()=>ma,inout_print_many:()=>da,inout_type_input:()=>_a});var b={};n.r(b),n.d(b,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Ra,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Ca,IOT_EMQX_PING:()=>Oa,IOT_FORMATTING:()=>Ia,IOT_FORMAT_STRING:()=>Aa,IOT_MIXIO_NTP:()=>Ma,IOT_MIXIO_PUBLISH:()=>Sa,IOT_MIXIO_SUBSCRIBE:()=>ka,IOT_MIXIO_UNSUBSCRIBE:()=>Ta,iot_mixio_check:()=>$a,iot_mixio_connect:()=>ba,iot_mixio_connect_only:()=>va,iot_mixio_disconnect:()=>ya,iot_mixio_format_msg:()=>Ea,iot_mixio_format_topic:()=>wa,iot_mixly_key:()=>xa,iot_mixly_key_py:()=>Na});var S={};n.r(S),n.d(S,{Panic_with_status_code:()=>Ba,base_delay:()=>Da,controls_millis:()=>Fa,controls_mstimer2:()=>Ua,controls_mstimer2_start:()=>Ya,controls_mstimer2_stop:()=>ja,reset:()=>Va,time_localtime:()=>Pa,time_sleep:()=>Ga});var k={};n.r(k),n.d(k,{turtle_bgcolor:()=>pl,turtle_bgcolor_hex:()=>kl,turtle_bgcolor_hex_new:()=>fl,turtle_circle:()=>ll,turtle_circle_advanced:()=>ul,turtle_clear:()=>nl,turtle_clone:()=>dl,turtle_color:()=>bl,turtle_color_hex:()=>Sl,turtle_color_seclet:()=>Ml,turtle_create:()=>Ha,turtle_done:()=>qa,turtle_exitonclick:()=>za,turtle_fill:()=>sl,turtle_fillcolor:()=>_l,turtle_fillcolor_hex:()=>yl,turtle_fillcolor_hex_new:()=>gl,turtle_getscreen:()=>Cl,turtle_goto:()=>Za,turtle_listen:()=>Ll,turtle_move:()=>Wa,turtle_numinput:()=>wl,turtle_onclick:()=>xl,turtle_onkey:()=>Rl,turtle_ontimer:()=>Nl,turtle_pencolor:()=>hl,turtle_pencolor_hex:()=>Tl,turtle_pencolor_hex_new:()=>ml,turtle_penup:()=>il,turtle_pos_shape:()=>el,turtle_rotate:()=>Ja,turtle_screen_delay:()=>Qa,turtle_screen_savefig:()=>Dl,turtle_setheading:()=>Ka,turtle_setxy:()=>tl,turtle_shape:()=>vl,turtle_shapesize:()=>$l,turtle_size:()=>ol,turtle_size_speed:()=>rl,turtle_speed:()=>al,turtle_textinput:()=>El,turtle_visible:()=>cl,turtle_write:()=>Il,turtle_write_format:()=>Al,turtle_write_format_skulpt:()=>Ol});var T={};n.r(T),n.d(T,{controls_type:()=>Ul,controls_typeLists:()=>Yl,lists_zip:()=>jl,unpack_iterable_object:()=>Gl,variables_change:()=>Bl,variables_get:()=>Fl,variables_global:()=>Vl,variables_set:()=>Pl});var y={};n.r(y),n.d(y,{Panic_with_status_code:()=>tu,base_setup:()=>Hl,controls_delay:()=>Zl,controls_flow_statements:()=>Ql,controls_for:()=>Wl,controls_forEach:()=>ru,controls_for_range:()=>Jl,controls_if:()=>ql,controls_interrupts:()=>iu,controls_lambda:()=>au,controls_main:()=>Xl,controls_millis:()=>eu,controls_nointerrupts:()=>su,controls_pass:()=>uu,controls_range:()=>ou,controls_repeat:()=>gu,controls_repeat_ext:()=>hu,controls_thread:()=>cu,controls_try_finally:()=>zl,controls_whileUntil:()=>Kl,datetime_fromtimestamp:()=>bu,do_while:()=>pu,garbage_collection:()=>_u,gene_unique_identifier:()=>Su,get_mem_alloc:()=>du,get_mem_free:()=>fu,get_unique_identifier:()=>mu,reset:()=>nu,time_sleep:()=>lu});var v={};n.r(v),n.d(v,{base_map:()=>Vu,generate_cartesian_product:()=>Yu,math_arithmetic:()=>$u,math_bit:()=>vu,math_constant:()=>Tu,math_constant_mp:()=>yu,math_constrain:()=>xu,math_dec:()=>Au,math_indexer_number:()=>Du,math_map:()=>Ru,math_max_min:()=>Mu,math_number:()=>ku,math_number_base_conversion:()=>Nu,math_random:()=>Cu,math_random_seed:()=>Lu,math_round:()=>Fu,math_selfcalcu:()=>wu,math_single:()=>Eu,math_to_int:()=>Ou,math_trig:()=>Iu,text_to_number:()=>Pu,text_to_number_skulpt:()=>Bu,turn_to_int:()=>Uu});var w={};n.r(w),n.d(w,{ascii_to_char:()=>qu,char_to_ascii:()=>zu,number_to_text:()=>Wu,os_system:()=>bc,text:()=>ju,text_capital:()=>sc,text_center:()=>rc,text_char:()=>Xu,text_char_at:()=>Qu,text_char_at2:()=>Ku,text_char_at3:()=>fc,text_compareTo:()=>dc,text_compare_to:()=>ec,text_encode:()=>mc,text_equals_starts_ends:()=>tc,text_eval:()=>gc,text_find:()=>oc,text_format:()=>pc,text_format_noreturn:()=>hc,text_join:()=>Hu,text_join_seq:()=>ac,text_length:()=>Ju,text_random_char:()=>Zu,text_replace:()=>lc,text_split:()=>uc,text_strip:()=>cc,text_substring:()=>ic,text_substring2:()=>nc,text_substring3:()=>_c,text_textarea:()=>Gu});var E={};n.r(E),n.d(E,{content_in_lists:()=>Qc,enumerate:()=>Kc,list_many_input:()=>Pc,list_tolist:()=>Wc,list_tolist2:()=>Jc,list_trig:()=>Lc,lists_2d_get_col_row_data:()=>Tc,lists_2d_get_data_with_col_row:()=>kc,lists_append_extend:()=>Ec,lists_change_to:()=>Fc,lists_change_to_general:()=>Vc,lists_clear:()=>Cc,lists_create_with:()=>yc,lists_create_with2:()=>Yc,lists_create_with_noreturn:()=>Bc,lists_create_with_text:()=>vc,lists_create_with_text2:()=>jc,lists_del_general:()=>Uc,lists_find:()=>Rc,lists_getIndex3:()=>Gc,lists_getSublist3:()=>Xc,lists_get_index:()=>$c,lists_get_random_item:()=>Ic,lists_get_random_sublist:()=>Ac,lists_get_sublist:()=>Sc,lists_insert_value:()=>Oc,lists_insert_value2:()=>qc,lists_pop:()=>Nc,lists_remove_at:()=>xc,lists_remove_at2:()=>zc,lists_reverse:()=>Mc,lists_setIndex3:()=>Hc,lists_set_index:()=>wc,lists_sort:()=>Dc});var I={};n.r(I),n.d(I,{dicts_add_change_del:()=>pp,dicts_add_or_change:()=>ip,dicts_clear:()=>op,dicts_create_with:()=>Zc,dicts_create_with_noreturn:()=>dp,dicts_deldict:()=>cp,dicts_delete:()=>sp,dicts_get:()=>ep,dicts_get_default:()=>np,dicts_items:()=>ap,dicts_keys:()=>tp,dicts_length:()=>up,dicts_pop:()=>hp,dicts_setdefault:()=>_p,dicts_to_json:()=>mp,dicts_to_json2:()=>Sp,dicts_to_to:()=>bp,dicts_todict:()=>fp,dicts_update:()=>rp,dicts_values:()=>lp,json_to_dicts:()=>gp});var A={};n.r(A),n.d(A,{logic_boolean:()=>$p,logic_compare:()=>kp,logic_compare_continous:()=>Tp,logic_is:()=>Ap,logic_is_in:()=>Ip,logic_negate:()=>vp,logic_null:()=>wp,logic_operation:()=>yp,logic_tobool:()=>Op,logic_true_or_false:()=>Ep});var O={};n.r(O),n.d(O,{sdcard_mount:()=>Qp,sdcard_use_spi_init:()=>Kp,storage_can_write_ornot:()=>Pp,storage_change_dir:()=>Hp,storage_close_file:()=>Vp,storage_delete_file:()=>Yp,storage_file_seek:()=>Xp,storage_file_tell:()=>Gp,storage_file_write:()=>Np,storage_fileopen:()=>Cp,storage_fileopen_new:()=>Rp,storage_fileopen_new_encoding:()=>xp,storage_get_a_line:()=>Fp,storage_get_contents:()=>Dp,storage_get_contents_without_para:()=>Lp,storage_get_current_dir:()=>qp,storage_get_file_size:()=>jp,storage_get_filename:()=>Bp,storage_is_file:()=>Jp,storage_list_all_files:()=>Up,storage_make_dir:()=>zp,storage_open_file_with_os:()=>Mp,storage_rename:()=>Wp});var M={};n.r(M),n.d(M,{procedures_callnoreturn:()=>nh,procedures_callreturn:()=>eh,procedures_defnoreturn:()=>th,procedures_defreturn:()=>Zp,procedures_ifreturn:()=>ih,procedures_return:()=>sh});var C={};n.r(C),n.d(C,{tuple_change_to:()=>_h,tuple_create_with:()=>rh,tuple_create_with_noreturn:()=>gh,tuple_create_with_text2:()=>oh,tuple_create_with_text_return:()=>ah,tuple_del:()=>ch,tuple_find:()=>dh,tuple_getIndex:()=>lh,tuple_getSublist:()=>mh,tuple_get_random_item:()=>Sh,tuple_get_sublist:()=>bh,tuple_input:()=>Th,tuple_join:()=>ph,tuple_length:()=>uh,tuple_max:()=>hh,tuple_totuple:()=>kh,tuple_trig:()=>fh});var R={};n.r(R),n.d(R,{set_add_discard:()=>Ah,set_clear:()=>wh,set_create_with:()=>yh,set_create_with_text_return:()=>Ch,set_length:()=>vh,set_operate:()=>Eh,set_operate_update:()=>Ih,set_pop:()=>$h,set_sub:()=>Oh,set_toset:()=>Rh,set_update:()=>Mh});var x={};n.r(x),n.d(x,{html_content:()=>Dh,html_content_more:()=>Fh,html_document:()=>xh,html_form:()=>Bh,html_head_body:()=>Lh,html_style:()=>Ph,html_style_content:()=>Vh,html_text:()=>Uh,html_title:()=>Nh});var N={};n.r(N),n.d(N,{attribute_access:()=>zh,function_call:()=>qh,raw_block:()=>Yh,raw_empty:()=>Gh,raw_expression:()=>jh,raw_table:()=>Xh,type_check:()=>Hh});var L={};n.r(L),n.d(L,{algorithm_add_path:()=>t_,algorithm_add_school:()=>Jh,algorithm_all_books:()=>g_,algorithm_all_books_sequence:()=>m_,algorithm_book_scale:()=>I_,algorithm_check_feet:()=>L_,algorithm_chick_calculate:()=>N_,algorithm_color_seclet:()=>Q_,algorithm_current_school:()=>o_,algorithm_del_path:()=>e_,algorithm_delete_book:()=>w_,algorithm_divide_books:()=>v_,algorithm_find_path:()=>Kh,algorithm_first_book:()=>b_,algorithm_fz_calc:()=>B_,algorithm_fz_compare:()=>V_,algorithm_fz_move:()=>Y_,algorithm_fz_set_min:()=>U_,algorithm_get_current_location:()=>J_,algorithm_get_half_books:()=>$_,algorithm_hxdb_add:()=>q_,algorithm_hxdb_init_soldier:()=>G_,algorithm_hxdb_last_line:()=>H_,algorithm_hxdb_result:()=>z_,algorithm_hxdb_stand_in_line:()=>X_,algorithm_init_fzsf:()=>P_,algorithm_init_hxdb:()=>j_,algorithm_init_jttl:()=>C_,algorithm_move_recent:()=>c_,algorithm_new_path:()=>Qh,algorithm_next_book:()=>T_,algorithm_no_left:()=>i_,algorithm_no_path:()=>a_,algorithm_no_ring2:()=>S_,algorithm_not_home:()=>p_,algorithm_not_school:()=>h_,algorithm_number_add:()=>O_,algorithm_number_zero:()=>A_,algorithm_prepare:()=>Wh,algorithm_prepare2:()=>r_,algorithm_prepare_2_1:()=>l_,algorithm_prepare_2_2:()=>u_,algorithm_print_book2:()=>E_,algorithm_print_jttl_answer:()=>D_,algorithm_print_number:()=>M_,algorithm_print_path:()=>s_,algorithm_print_path2:()=>__,algorithm_rabbit_add:()=>F_,algorithm_rabbit_number_in_range:()=>x_,algorithm_rabbit_zero:()=>R_,algorithm_return_path:()=>n_,algorithm_set_path:()=>Zh,algorithm_two_left:()=>y_,algorithm_void_path:()=>K_,algorithm_yes_ring2:()=>k_,hanoi_init:()=>d_,hanoi_init_offline:()=>W_,hanoi_move:()=>f_});var D={};n.r(D),n.d(D,{factory_block:()=>od,factory_block_return:()=>ad,factory_block_return_with_textarea:()=>ud,factory_block_with_textarea:()=>ld,factory_callMethod_noreturn:()=>sd,factory_callMethod_return:()=>rd,factory_declare:()=>id,factory_from_import:()=>Z_,factory_function_noreturn:()=>ed,factory_function_return:()=>nd,factory_import:()=>td});var F={};n.r(F),n.d(F,{array_create:()=>wd,array_toarray:()=>Bd,dataframe_create:()=>hd,dataframe_create_from_index:()=>_d,dataframe_create_from_one_index:()=>dd,dataframe_get:()=>Dd,numpy_trig:()=>xd,pandas_readcsv:()=>Ld,pl_axes:()=>Sd,pl_bar:()=>Od,pl_hist:()=>Cd,pl_label:()=>$d,pl_legend:()=>yd,pl_pie:()=>Md,pl_plot:()=>Td,pl_plot_bar:()=>Ed,pl_plot_easy:()=>kd,pl_plot_scatter:()=>Id,pl_plot_xy:()=>Ad,pl_savefig:()=>Fd,pl_show:()=>bd,pl_subplot:()=>Nd,pl_text:()=>Pd,pl_ticks:()=>Rd,pl_title:()=>vd,plot_axes:()=>Ud,plot_bar:()=>Jd,plot_hist:()=>Qd,plot_label:()=>Hd,plot_legend:()=>Gd,plot_pie:()=>Kd,plot_plot:()=>jd,plot_plot_bar:()=>qd,plot_plot_easy:()=>Yd,plot_plot_scatter:()=>zd,plot_plot_xy:()=>Wd,plot_savefig:()=>ef,plot_show:()=>Vd,plot_subplot:()=>tf,plot_text:()=>nf,plot_ticks:()=>Zd,plot_title:()=>Xd,series_create:()=>cd,series_create_from_index:()=>pd,series_create_from_text:()=>fd,series_get_num:()=>gd,series_index_value:()=>md});var P={};n.r(P),n.d(P,{inout_input:()=>sf,inout_print:()=>rf,inout_print_end:()=>af,inout_print_inline:()=>of,inout_print_many:()=>uf,inout_type_input:()=>lf});var B={};n.r(B),n.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Tf,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>vf,IOT_EMQX_PING:()=>$f,IOT_FORMATTING:()=>Sf,IOT_FORMAT_STRING:()=>kf,IOT_MIXIO_PUBLISH:()=>pf,IOT_MIXIO_SUBSCRIBE:()=>hf,IOT_MIXIO_UNSUBSCRIBE:()=>_f,iot_mixio_check:()=>mf,iot_mixio_connect:()=>cf,iot_mixio_connect_only:()=>ff,iot_mixio_disconnect:()=>df,iot_mixio_format_msg:()=>bf,iot_mixio_format_topic:()=>gf,iot_mixly_key:()=>yf,iot_mixly_key_py:()=>wf});var V={};n.r(V),n.d(V,{controls_end_program:()=>If,controls_millis:()=>Ef,time_localtime:()=>Af});var U={};n.r(U),n.d(U,{turtle_bgcolor:()=>zf,turtle_bgcolor_hex:()=>Qf,turtle_bgcolor_hex_new:()=>em,turtle_circle:()=>Gf,turtle_circle_advanced:()=>Hf,turtle_clear:()=>Pf,turtle_clone:()=>Kf,turtle_color:()=>rm,turtle_color_hex:()=>sm,turtle_color_seclet:()=>_m,turtle_create:()=>Of,turtle_done:()=>Mf,turtle_exitonclick:()=>Cf,turtle_fill:()=>Vf,turtle_fillcolor:()=>Jf,turtle_fillcolor_hex:()=>tm,turtle_fillcolor_hex_new:()=>im,turtle_getscreen:()=>dm,turtle_goto:()=>Df,turtle_listen:()=>bm,turtle_move:()=>Rf,turtle_numinput:()=>um,turtle_onclick:()=>mm,turtle_onkey:()=>fm,turtle_ontimer:()=>gm,turtle_pencolor:()=>Wf,turtle_pencolor_hex:()=>Zf,turtle_pencolor_hex_new:()=>nm,turtle_penup:()=>Bf,turtle_pos_shape:()=>Ff,turtle_rotate:()=>xf,turtle_screen_delay:()=>Lf,turtle_screen_savefig:()=>Sm,turtle_setheading:()=>Nf,turtle_setxy:()=>Xf,turtle_shape:()=>om,turtle_shapesize:()=>am,turtle_size:()=>Yf,turtle_size_speed:()=>Uf,turtle_speed:()=>jf,turtle_textinput:()=>lm,turtle_visible:()=>qf,turtle_write:()=>cm,turtle_write_format:()=>pm,turtle_write_format_skulpt:()=>hm});const Y=Blockly,j=Mixly,G={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var n=Object.create(null),i=0;i1&&(o+=i)):n=o}else n="i";return n}},X=G,H={};H.NAME_TYPE=Y.PROCEDURE_CATEGORY_NAME,H.allProcedures=function(t){for(var e=t.getAllBlocks(!1),n=[],i=[],s=0;s{var t={23:()=>{Sk.builtinFiles={files:{"src/builtin/this.py":'s = """Gur Mra bs Clguba, ol Gvz Crgref\n\nOrnhgvshy vf orggre guna htyl.\nRkcyvpvg vf orggre guna vzcyvpvg.\nFvzcyr vf orggre guna pbzcyrk.\nPbzcyrk vf orggre guna pbzcyvpngrq.\nSyng vf orggre guna arfgrq.\nFcnefr vf orggre guna qrafr.\nErnqnovyvgl pbhagf.\nFcrpvny pnfrf nera\'g fcrpvny rabhtu gb oernx gur ehyrf.\nNygubhtu cenpgvpnyvgl orngf chevgl.\nReebef fubhyq arire cnff fvyragyl.\nHayrff rkcyvpvgyl fvyraprq.\nVa gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.\nGurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.\nNygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh\'er Qhgpu.\nAbj vf orggre guna arire.\nNygubhtu arire vf bsgra orggre guna *evtug* abj.\nVs gur vzcyrzragngvba vf uneq gb rkcynva, vg\'f n onq vqrn.\nVs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.\nAnzrfcnprf ner bar ubaxvat terng vqrn -- yrg\'f qb zber bs gubfr!"""\n\nd = {}\nfor c in (65, 97):\n for i in range(26):\n d[chr(i+c)] = chr((i+13) % 26 + c)\n\nprint("".join([d.get(c, c) for c in s]))\n',"src/lib/abc.py":'import _sk_fail; _sk_fail._("abc")\n',"src/lib/aifc.py":'import _sk_fail; _sk_fail._("aifc")\n',"src/lib/antigravity.py":'import webbrowser\n\nwebbrowser.open("https://xkcd.com/353/")\n',"src/lib/anydbm.py":'import _sk_fail; _sk_fail._("anydbm")\n',"src/lib/ast.py":'import _sk_fail; _sk_fail._("ast")\n',"src/lib/asynchat.py":'import _sk_fail; _sk_fail._("asynchat")\n',"src/lib/asyncore.py":'import _sk_fail; _sk_fail._("asyncore")\n',"src/lib/atexit.py":'import _sk_fail; _sk_fail._("atexit")\n',"src/lib/audiodev.py":'import _sk_fail; _sk_fail._("audiodev")\n',"src/lib/base64.py":'import _sk_fail; _sk_fail._("base64")\n',"src/lib/BaseHTTPServer.py":'import _sk_fail; _sk_fail._("BaseHTTPServer")\n',"src/lib/Bastion.py":'import _sk_fail; _sk_fail._("Bastion")\n',"src/lib/bdb.py":'import _sk_fail; _sk_fail._("bdb")\n',"src/lib/binhex.py":'import _sk_fail; _sk_fail._("binhex")\n',"src/lib/bisect.py":'"""Bisection algorithms."""\n\ndef insort_right(a, x, lo=0, hi=None):\n """Insert item x in list a, and keep it sorted assuming a is sorted.\n\n If x is already in a, insert it to the right of the rightmost x.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if x < a[mid]: hi = mid\n else: lo = mid+1\n a.insert(lo, x)\n\ndef bisect_right(a, x, lo=0, hi=None):\n """Return the index where to insert item x in list a, assuming a is sorted.\n\n The return value i is such that all e in a[:i] have e <= x, and all e in\n a[i:] have e > x. So if x already appears in the list, a.insert(x) will\n insert just after the rightmost x already there.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if x < a[mid]: hi = mid\n else: lo = mid+1\n return lo\n\ndef insort_left(a, x, lo=0, hi=None):\n """Insert item x in list a, and keep it sorted assuming a is sorted.\n\n If x is already in a, insert it to the left of the leftmost x.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if a[mid] < x: lo = mid+1\n else: hi = mid\n a.insert(lo, x)\n\n\ndef bisect_left(a, x, lo=0, hi=None):\n """Return the index where to insert item x in list a, assuming a is sorted.\n\n The return value i is such that all e in a[:i] have e < x, and all e in\n a[i:] have e >= x. So if x already appears in the list, a.insert(x) will\n insert just before the leftmost x already there.\n\n Optional args lo (default 0) and hi (default len(a)) bound the\n slice of a to be searched.\n """\n\n if lo < 0:\n raise ValueError(\'lo must be non-negative\')\n if hi is None:\n hi = len(a)\n while lo < hi:\n mid = (lo+hi)//2\n if a[mid] < x: lo = mid+1\n else: hi = mid\n return lo\n\n# Overwrite above definitions with a fast C implementation\ntry:\n from _bisect import *\nexcept ImportError:\n pass\n\n# Create aliases\nbisect = bisect_right\ninsort = insort_right\n',"src/lib/bsddb/__init__.py":'import _sk_fail; _sk_fail._("bsddb")\n',"src/lib/cgi.py":'import _sk_fail; _sk_fail._("cgi")\n',"src/lib/CGIHTTPServer.py":'import _sk_fail; _sk_fail._("CGIHTTPServer")\n',"src/lib/cgitb.py":'import _sk_fail; _sk_fail._("cgitb")\n',"src/lib/chunk.py":'import _sk_fail; _sk_fail._("chunk")\n',"src/lib/cmd.py":'import _sk_fail; _sk_fail._("cmd")\n',"src/lib/code.py":'import _sk_fail; _sk_fail._("code")\n',"src/lib/codecs.py":'import _sk_fail; _sk_fail._("codecs")\n',"src/lib/codeop.py":'import _sk_fail; _sk_fail._("codeop")\n',"src/lib/colorsys.py":'import _sk_fail; _sk_fail._("colorsys")\n',"src/lib/commands.py":'import _sk_fail; _sk_fail._("commands")\n',"src/lib/compileall.py":'import _sk_fail; _sk_fail._("compileall")\n',"src/lib/compiler/__init__.py":'import _sk_fail; _sk_fail._("compiler")\n',"src/lib/config/__init__.py":'import _sk_fail; _sk_fail._("config")\n',"src/lib/ConfigParser.py":'import _sk_fail; _sk_fail._("ConfigParser")\n',"src/lib/contextlib.py":'import _sk_fail; _sk_fail._("contextlib")\n',"src/lib/Cookie.py":'import _sk_fail; _sk_fail._("Cookie")\n',"src/lib/cookielib.py":'import _sk_fail; _sk_fail._("cookielib")\n',"src/lib/copy.py":'"""\nThis file was modified from CPython.\nCopyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,\n2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved\n"""\nimport types\nclass Error(Exception):\n pass\nerror = Error \nclass _EmptyClass:\n pass\ntry:\n long\nexcept NameError:\n long = int\ntry:\n bytes\nexcept NameError:\n bytes = str\n\ndef check_notimplemented_state(x):\n getstate = getattr(x, "__getstate__", None)\n setstate = getattr(x, "__setstate__", None)\n initargs = getattr(x, "__getinitargs__", None)\n if getstate or setstate or initargs:\n raise NotImplementedError("Skulpt does not yet support copying with user-defined __getstate__, __setstate__ or __getinitargs__()")\n\n\ndef copy(x):\n cls = type(x)\n if callable(x):\n return x\n copier = getattr(cls, "__copy__", None)\n if copier:\n return copier(x)\n if cls in (type(None), int, float, bool, str, bytes, tuple, type, frozenset, long):\n return x\n if (cls == list) or (cls == dict) or (cls == set) or (cls == slice):\n return cls(x)\n reductor = getattr(x, "__reduce_ex__", None)\n if reductor:\n rv = reductor(4)\n else:\n reductor = getattr(x, "__reduce__", None)\n if reductor:\n rv = reductor()\n elif str(cls)[1:6] == "class":\n check_notimplemented_state(x)\n copier = _copy_inst\n return copier(x)\n else:\n raise Error("un(shallow)copyable object of type %s" % cls)\n if isinstance(rv, str):\n return x\n return _reconstruct(x, rv, 0)\n\ndef _copy_inst(x):\n if hasattr(x, \'__copy__\'):\n return x.__copy__()\n if hasattr(x, \'__getinitargs__\'):\n args = x.__getinitargs__()\n y = x.__class__(*args)\n else:\n y = _EmptyClass()\n y.__class__ = x.__class__\n if hasattr(x, \'__getstate__\'):\n state = x.__getstate__()\n else:\n state = x.__dict__\n if hasattr(y, \'__setstate__\'):\n y.__setstate__(state)\n else:\n y.__dict__.update(state)\n return y\n\nd = _deepcopy_dispatch = {}\n\ndef deepcopy(x, memo=None, _nil=[]):\n """Deep copy operation on arbitrary Python objects.\n See the module\'s __doc__ string for more info.\n """\n if memo is None:\n memo = {}\n idx = id(x)\n y = memo.get(idx, _nil)\n if y is not _nil:\n return y\n cls = type(x)\n copier = _deepcopy_dispatch.get(cls)\n if copier:\n y = copier(x, memo)\n else:\n try:\n issc = issubclass(cls, type)\n except TypeError: # cls is not a class (old Boost; see SF #502085)\n issc = 0\n if issc:\n y = _deepcopy_atomic(x, memo)\n else:\n copier = getattr(x, "__deepcopy__", None)\n if copier:\n y = copier(memo)\n else:\n reductor = getattr(x, "__reduce_ex__", None)\n if reductor:\n rv = reductor(2)\n else:\n rv = None\n reductor = getattr(x, "__reduce__", None)\n if reductor:\n rv = reductor()\n elif str(cls)[1:6] == "class":\n check_notimplemented_state(x)\n copier = _deepcopy_dispatch["InstanceType"]\n y = copier(x, memo)\n else:\n raise Error(\n "un(deep)copyable object of type %s" % cls)\n if rv is not None:\n y = _reconstruct(x, rv, 1, memo)\n memo[idx] = y\n _keep_alive(x, memo) # Make sure x lives at least as long as d\n return y\n\ndef _deepcopy_atomic(x, memo):\n return x\nd[type(None)] = _deepcopy_atomic\n# d[type(Ellipsis)] = _deepcopy_atomic\nd[type(NotImplemented)] = _deepcopy_atomic\nd[int] = _deepcopy_atomic\nd[float] = _deepcopy_atomic\nd[bool] = _deepcopy_atomic\nd[complex] = _deepcopy_atomic\nd[bytes] = _deepcopy_atomic\nd[str] = _deepcopy_atomic\n# try:\n# d[types.CodeType] = _deepcopy_atomic\n# except AttributeError:\n# pass\nd[type] = _deepcopy_atomic\n# d[types.BuiltinFunctionType] = _deepcopy_atomic\nd[types.FunctionType] = _deepcopy_atomic\n# d[weakref.ref] = _deepcopy_atomic\n\ndef _deepcopy_list(x, memo):\n y = []\n memo[id(x)] = y\n for a in x:\n y.append(deepcopy(a, memo))\n return y\nd[list] = _deepcopy_list\n\ndef _deepcopy_set(x, memo):\n result = set([]) # make empty set\n memo[id(x)] = result # register this set in the memo for loop checking\n for a in x: # go through elements of set\n result.add(deepcopy(a, memo)) # add the copied elements into the new set\n return result # return the new set\nd[set] = _deepcopy_set\n\ndef _deepcopy_frozenset(x, memo):\n result = frozenset(_deepcopy_set(x,memo)) \n memo[id(x)] = result \n return result\nd[frozenset] = _deepcopy_frozenset\n\ndef _deepcopy_tuple(x, memo):\n y = [deepcopy(a, memo) for a in x]\n # We\'re not going to put the tuple in the memo, but it\'s still important we\n # check for it, in case the tuple contains recursive mutable structures.\n try:\n return memo[id(x)]\n except KeyError:\n pass\n for k, j in zip(x, y):\n if k is not j:\n y = tuple(y)\n break\n else:\n y = x\n return y\nd[tuple] = _deepcopy_tuple\n\ndef _deepcopy_dict(x, memo):\n y = {}\n memo[id(x)] = y\n for key, value in x.items():\n y[deepcopy(key, memo)] = deepcopy(value, memo)\n return y\nd[dict] = _deepcopy_dict\n\n# def _deepcopy_method(x, memo): # Copy instance methods\n# y = type(x)(x.im_func, deepcopy(x.im_self, memo), x.im_class);\n# return y\nd[types.MethodType] = _deepcopy_atomic\n\ndef _deepcopy_inst(x, memo):\n if hasattr(x, \'__deepcopy__\'):\n return x.__deepcopy__(memo)\n if hasattr(x, \'__getinitargs__\'):\n args = x.__getinitargs__()\n args = deepcopy(args, memo)\n y = x.__class__(*args)\n else:\n y = _EmptyClass()\n y.__class__ = x.__class__\n memo[id(x)] = y\n if hasattr(x, \'__getstate__\'):\n state = x.__getstate__()\n else:\n state = x.__dict__\n state = deepcopy(state, memo)\n if hasattr(y, \'__setstate__\'):\n y.__setstate__(state)\n else:\n y.__dict__.update(state)\n return y\nd["InstanceType"] = _deepcopy_inst\n\ndef _keep_alive(x, memo):\n """Keeps a reference to the object x in the memo.\n Because we remember objects by their id, we have\n to assure that possibly temporary objects are kept\n alive by referencing them.\n We store a reference at the id of the memo, which should\n normally not be used unless someone tries to deepcopy\n the memo itself...\n """\n try:\n memo[id(memo)].append(x)\n except KeyError:\n # aha, this is the first one :-)\n memo[id(memo)]=[x]\n\ndef _reconstruct(x, info, deep, memo=None):\n if isinstance(info, str):\n return x\n assert isinstance(info, tuple)\n if memo is None:\n memo = {}\n n = len(info)\n assert n in (2, 3, 4, 5)\n callable, args = info[:2]\n if n > 2:\n state = info[2]\n else:\n state = None\n if n > 3:\n listiter = info[3]\n else:\n listiter = None\n if n > 4:\n dictiter = info[4]\n else:\n dictiter = None\n if deep:\n args = deepcopy(args, memo)\n y = callable(*args)\n memo[id(x)] = y\n\n if state is not None:\n if deep:\n state = deepcopy(state, memo)\n if hasattr(y, \'__setstate__\'):\n y.__setstate__(state)\n else:\n if isinstance(state, tuple) and len(state) == 2:\n state, slotstate = state\n else:\n slotstate = None\n if state is not None:\n y.__dict__.update(state)\n if slotstate is not None:\n for key, value in slotstate.items():\n setattr(y, key, value)\n\n if listiter is not None:\n for item in listiter:\n if deep:\n item = deepcopy(item, memo)\n y.append(item)\n if dictiter is not None:\n for key, value in dictiter:\n if deep:\n key = deepcopy(key, memo)\n value = deepcopy(value, memo)\n y[key] = value\n return y\n\ndel d\n\ndel types\n\n# Helper for instance creation without calling __init__\nclass _EmptyClass:\n pass',"src/lib/copy_reg.py":'import _sk_fail; _sk_fail._("copy_reg")\n',"src/lib/cProfile.py":'import _sk_fail; _sk_fail._("cProfile")\n',"src/lib/csv.py":'import _sk_fail; _sk_fail._("csv")\n',"src/lib/ctypes/macholib/__init__.py":'import _sk_fail; _sk_fail._("macholib")\n',"src/lib/ctypes/__init__.py":'import _sk_fail; _sk_fail._("ctypes")\n',"src/lib/curses/__init__.py":'import _sk_fail; _sk_fail._("curses")\n',"src/lib/dbhash.py":'import _sk_fail; _sk_fail._("dbhash")\n',"src/lib/decimal.py":'import _sk_fail; _sk_fail._("decimal")\n',"src/lib/difflib.py":'import _sk_fail; _sk_fail._("difflib")\n',"src/lib/dircache.py":'import _sk_fail; _sk_fail._("dircache")\n',"src/lib/dis.py":'import _sk_fail; _sk_fail._("dis")\n',"src/lib/distutils/command/__init__.py":'import _sk_fail; _sk_fail._("command")\n',"src/lib/distutils/tests/__init__.py":'import _sk_fail; _sk_fail._("tests")\n',"src/lib/distutils/__init__.py":'import _sk_fail; _sk_fail._("distutils")\n',"src/lib/doctest.py":'import _sk_fail; _sk_fail._("doctest")\n',"src/lib/DocXMLRPCServer.py":'import _sk_fail; _sk_fail._("DocXMLRPCServer")\n',"src/lib/dumbdbm.py":'import _sk_fail; _sk_fail._("dumbdbm")\n',"src/lib/dummy_thread.py":'import _sk_fail; _sk_fail._("dummy_thread")\n',"src/lib/dummy_threading.py":'import _sk_fail; _sk_fail._("dummy_threading")\n',"src/lib/email/mime/__init__.py":'import _sk_fail; _sk_fail._("mime")\n',"src/lib/email/test/data/__init__.py":'import _sk_fail; _sk_fail._("data")\n',"src/lib/email/__init__.py":'import _sk_fail; _sk_fail._("email")\n',"src/lib/encodings/__init__.py":'import _sk_fail; _sk_fail._("encodings")\n',"src/lib/filecmp.py":'import _sk_fail; _sk_fail._("filecmp")\n',"src/lib/fileinput.py":'import _sk_fail; _sk_fail._("fileinput")\n',"src/lib/fnmatch.py":'import _sk_fail; _sk_fail._("fnmatch")\n',"src/lib/formatter.py":'import _sk_fail; _sk_fail._("formatter")\n',"src/lib/fpformat.py":'import _sk_fail; _sk_fail._("fpformat")\n',"src/lib/fractions.py":'import _sk_fail; _sk_fail._("fractions")\n',"src/lib/ftplib.py":'import _sk_fail; _sk_fail._("ftplib")\n',"src/lib/genericpath.py":'import _sk_fail; _sk_fail._("genericpath")\n',"src/lib/getopt.py":'import _sk_fail; _sk_fail._("getopt")\n',"src/lib/getpass.py":'import _sk_fail; _sk_fail._("getpass")\n',"src/lib/gettext.py":'import _sk_fail; _sk_fail._("gettext")\n',"src/lib/glob.py":'import _sk_fail; _sk_fail._("glob")\n',"src/lib/gzip.py":'import _sk_fail; _sk_fail._("gzip")\n',"src/lib/hashlib.py":'import _sk_fail; _sk_fail._("hashlib")\n',"src/lib/heapq.py":'import _sk_fail; _sk_fail._("heapq")\n',"src/lib/hmac.py":'import _sk_fail; _sk_fail._("hmac")\n',"src/lib/hotshot/__init__.py":'import _sk_fail; _sk_fail._("hotshot")\n',"src/lib/htmlentitydefs.py":'import _sk_fail; _sk_fail._("htmlentitydefs")\n',"src/lib/htmllib.py":'import _sk_fail; _sk_fail._("htmllib")\n',"src/lib/HTMLParser.py":'import _sk_fail; _sk_fail._("HTMLParser")\n',"src/lib/httplib.py":'import _sk_fail; _sk_fail._("httplib")\n',"src/lib/idlelib/Icons/__init__.py":'import _sk_fail; _sk_fail._("Icons")\n',"src/lib/idlelib/__init__.py":'import _sk_fail; _sk_fail._("idlelib")\n',"src/lib/ihooks.py":'import _sk_fail; _sk_fail._("ihooks")\n',"src/lib/imaplib.py":'import _sk_fail; _sk_fail._("imaplib")\n',"src/lib/imghdr.py":'import _sk_fail; _sk_fail._("imghdr")\n',"src/lib/imputil.py":'import _sk_fail; _sk_fail._("imputil")\n',"src/lib/io.py":'import _sk_fail; _sk_fail._("io")\n',"src/lib/lib-dynload/__init__.py":'import _sk_fail; _sk_fail._("lib-dynload")\n',"src/lib/lib-tk/__init__.py":'import _sk_fail; _sk_fail._("lib-tk")\n',"src/lib/lib2to3/fixes/__init__.py":'import _sk_fail; _sk_fail._("fixes")\n',"src/lib/lib2to3/pgen2/__init__.py":'import _sk_fail; _sk_fail._("pgen2")\n',"src/lib/lib2to3/tests/__init__.py":'import _sk_fail; _sk_fail._("tests")\n',"src/lib/lib2to3/__init__.py":'import _sk_fail; _sk_fail._("lib2to3")\n',"src/lib/linecache.py":'import _sk_fail; _sk_fail._("linecache")\n',"src/lib/locale.py":'import _sk_fail; _sk_fail._("locale")\n',"src/lib/logging/__init__.py":'import _sk_fail; _sk_fail._("logging")\n',"src/lib/macpath.py":'import _sk_fail; _sk_fail._("macpath")\n',"src/lib/macurl2path.py":'import _sk_fail; _sk_fail._("macurl2path")\n',"src/lib/mailbox.py":'import _sk_fail; _sk_fail._("mailbox")\n',"src/lib/mailcap.py":'import _sk_fail; _sk_fail._("mailcap")\n',"src/lib/markupbase.py":'import _sk_fail; _sk_fail._("markupbase")\n',"src/lib/md5.py":'import _sk_fail; _sk_fail._("md5")\n',"src/lib/mhlib.py":'import _sk_fail; _sk_fail._("mhlib")\n',"src/lib/mimetools.py":'import _sk_fail; _sk_fail._("mimetools")\n',"src/lib/mimetypes.py":'import _sk_fail; _sk_fail._("mimetypes")\n',"src/lib/MimeWriter.py":'import _sk_fail; _sk_fail._("MimeWriter")\n',"src/lib/mimify.py":'import _sk_fail; _sk_fail._("mimify")\n',"src/lib/modulefinder.py":'import _sk_fail; _sk_fail._("modulefinder")\n',"src/lib/multifile.py":'import _sk_fail; _sk_fail._("multifile")\n',"src/lib/multiprocessing/dummy/__init__.py":'import _sk_fail; _sk_fail._("dummy")\n',"src/lib/multiprocessing/__init__.py":'import _sk_fail; _sk_fail._("multiprocessing")\n',"src/lib/mutex.py":'import _sk_fail; _sk_fail._("mutex")\n',"src/lib/netrc.py":'import _sk_fail; _sk_fail._("netrc")\n',"src/lib/new.py":'import _sk_fail; _sk_fail._("new")\n',"src/lib/nntplib.py":'import _sk_fail; _sk_fail._("nntplib")\n',"src/lib/ntpath.py":'import _sk_fail; _sk_fail._("ntpath")\n',"src/lib/nturl2path.py":'import _sk_fail; _sk_fail._("nturl2path")\n',"src/lib/numbers.py":"Number = (int, float, complex)\nIntegral = int\nComplex = complex\n","src/lib/opcode.py":'import _sk_fail; _sk_fail._("opcode")\n',"src/lib/optparse.py":'import _sk_fail; _sk_fail._("optparse")\n',"src/lib/os.py":'import _sk_fail; _sk_fail._("os")\n',"src/lib/os2emxpath.py":'import _sk_fail; _sk_fail._("os2emxpath")\n',"src/lib/pdb.py":'import _sk_fail; _sk_fail._("pdb")\n',"src/lib/pickle.py":'import _sk_fail; _sk_fail._("pickle")\n',"src/lib/pickletools.py":'import _sk_fail; _sk_fail._("pickletools")\n',"src/lib/pipes.py":'import _sk_fail; _sk_fail._("pipes")\n',"src/lib/pkgutil.py":'import _sk_fail; _sk_fail._("pkgutil")\n',"src/lib/platform.py":'import _sk_fail; _sk_fail._("platform")\n',"src/lib/plistlib.py":'import _sk_fail; _sk_fail._("plistlib")\n',"src/lib/popen2.py":'import _sk_fail; _sk_fail._("popen2")\n',"src/lib/poplib.py":'import _sk_fail; _sk_fail._("poplib")\n',"src/lib/posixfile.py":'import _sk_fail; _sk_fail._("posixfile")\n',"src/lib/posixpath.py":'import _sk_fail; _sk_fail._("posixpath")\n',"src/lib/pprint.py":'import _sk_fail; _sk_fail._("pprint")\n',"src/lib/profile.py":'import _sk_fail; _sk_fail._("profile")\n',"src/lib/pstats.py":'import _sk_fail; _sk_fail._("pstats")\n',"src/lib/pty.py":'import _sk_fail; _sk_fail._("pty")\n',"src/lib/pyclbr.py":'import _sk_fail; _sk_fail._("pyclbr")\n',"src/lib/pydoc.py":'import _sk_fail; _sk_fail._("pydoc")\n',"src/lib/pydoc_topics.py":'import _sk_fail; _sk_fail._("pydoc_topics")\n',"src/lib/pythonds/basic/deque.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n#deque.py\n\n\nclass Deque:\n def __init__(self):\n self.items = []\n\n def isEmpty(self):\n return self.items == []\n\n def addFront(self, item):\n self.items.append(item)\n\n def addRear(self, item):\n self.items.insert(0,item)\n\n def removeFront(self):\n return self.items.pop()\n\n def removeRear(self):\n return self.items.pop(0)\n\n def size(self):\n return len(self.items)\n","src/lib/pythonds/basic/queue.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n#queue.py\n\nclass Queue:\n def __init__(self):\n self.items = []\n\n def isEmpty(self):\n return self.items == []\n\n def enqueue(self, item):\n self.items.insert(0,item)\n\n def dequeue(self):\n return self.items.pop()\n\n def size(self):\n return len(self.items)\n","src/lib/pythonds/basic/stack.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n#stack.py\n\nclass Stack:\n def __init__(self):\n self.items = []\n\n def isEmpty(self):\n return self.items == []\n\n def push(self, item):\n self.items.append(item)\n\n def pop(self):\n return self.items.pop()\n\n def peek(self):\n return self.items[len(self.items)-1]\n\n def size(self):\n return len(self.items)\n\n","src/lib/pythonds/basic/__init__.py":'\n#__all__ = ["stack"]\n\n\n#from .stack import Stack\n#from .queue import Queue\n\n\n\n',"src/lib/pythonds/graphs/adjGraph.py":'#\n# adjGraph\n#\n# Created by Brad Miller on 2005-02-24.\n# Copyright (c) 2005 Brad Miller, David Ranum, Luther College. All rights reserved.\n#\n\nimport sys\nimport os\nimport unittest\n\nclass Graph:\n def __init__(self):\n self.vertices = {}\n self.numVertices = 0\n \n def addVertex(self,key):\n self.numVertices = self.numVertices + 1\n newVertex = Vertex(key)\n self.vertices[key] = newVertex\n return newVertex\n \n def getVertex(self,n):\n if n in self.vertices:\n return self.vertices[n]\n else:\n return None\n\n def __contains__(self,n):\n return n in self.vertices\n \n def addEdge(self,f,t,cost=0):\n if f not in self.vertices:\n nv = self.addVertex(f)\n if t not in self.vertices:\n nv = self.addVertex(t)\n self.vertices[f].addNeighbor(self.vertices[t],cost)\n \n def getVertices(self):\n return list(self.vertices.keys())\n \n def __iter__(self):\n return iter(self.vertices.values())\n \nclass Vertex:\n def __init__(self,num):\n self.id = num\n self.connectedTo = {}\n self.color = \'white\'\n self.dist = sys.maxsize\n self.pred = None\n self.disc = 0\n self.fin = 0\n\n # def __lt__(self,o):\n # return self.id < o.id\n \n def addNeighbor(self,nbr,weight=0):\n self.connectedTo[nbr] = weight\n \n def setColor(self,color):\n self.color = color\n \n def setDistance(self,d):\n self.dist = d\n\n def setPred(self,p):\n self.pred = p\n\n def setDiscovery(self,dtime):\n self.disc = dtime\n \n def setFinish(self,ftime):\n self.fin = ftime\n \n def getFinish(self):\n return self.fin\n \n def getDiscovery(self):\n return self.disc\n \n def getPred(self):\n return self.pred\n \n def getDistance(self):\n return self.dist\n \n def getColor(self):\n return self.color\n \n def getConnections(self):\n return self.connectedTo.keys()\n \n def getWeight(self,nbr):\n return self.connectedTo[nbr]\n \n def __str__(self):\n return str(self.id) + ":color " + self.color + ":disc " + str(self.disc) + ":fin " + str(self.fin) + ":dist " + str(self.dist) + ":pred \\n\\t[" + str(self.pred)+ "]\\n"\n \n def getId(self):\n return self.id\n\nclass adjGraphTests(unittest.TestCase):\n def setUp(self):\n self.tGraph = Graph()\n \n def testMakeGraph(self):\n gFile = open("test.dat")\n for line in gFile:\n fVertex, tVertex = line.split(\'|\')\n fVertex = int(fVertex)\n tVertex = int(tVertex)\n self.tGraph.addEdge(fVertex,tVertex)\n for i in self.tGraph:\n adj = i.getAdj()\n for k in adj:\n print(i, k)\n\n \nif __name__ == \'__main__\':\n unittest.main()\n \n',"src/lib/pythonds/graphs/priorityQueue.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \nimport unittest\n\n# this implementation of binary heap takes key value pairs,\n# we will assume that the keys are all comparable\n\nclass PriorityQueue:\n def __init__(self):\n self.heapArray = [(0,0)]\n self.currentSize = 0\n\n def buildHeap(self,alist):\n self.currentSize = len(alist)\n self.heapArray = [(0,0)]\n for i in alist:\n self.heapArray.append(i)\n i = len(alist) // 2 \n while (i > 0):\n self.percDown(i)\n i = i - 1\n \n def percDown(self,i):\n while (i * 2) <= self.currentSize:\n mc = self.minChild(i)\n if self.heapArray[i][0] > self.heapArray[mc][0]:\n tmp = self.heapArray[i]\n self.heapArray[i] = self.heapArray[mc]\n self.heapArray[mc] = tmp\n i = mc\n \n def minChild(self,i):\n if i*2 > self.currentSize:\n return -1\n else:\n if i*2 + 1 > self.currentSize:\n return i*2\n else:\n if self.heapArray[i*2][0] < self.heapArray[i*2+1][0]:\n return i*2\n else:\n return i*2+1\n\n def percUp(self,i):\n while i // 2 > 0:\n if self.heapArray[i][0] < self.heapArray[i//2][0]:\n tmp = self.heapArray[i//2]\n self.heapArray[i//2] = self.heapArray[i]\n self.heapArray[i] = tmp\n i = i//2\n \n def add(self,k):\n self.heapArray.append(k)\n self.currentSize = self.currentSize + 1\n self.percUp(self.currentSize)\n\n def delMin(self):\n retval = self.heapArray[1][1]\n self.heapArray[1] = self.heapArray[self.currentSize]\n self.currentSize = self.currentSize - 1\n self.heapArray.pop()\n self.percDown(1)\n return retval\n \n def isEmpty(self):\n if self.currentSize == 0:\n return True\n else:\n return False\n\n def decreaseKey(self,val,amt):\n # this is a little wierd, but we need to find the heap thing to decrease by\n # looking at its value\n done = False\n i = 1\n myKey = 0\n while not done and i <= self.currentSize:\n if self.heapArray[i][1] == val:\n done = True\n myKey = i\n else:\n i = i + 1\n if myKey > 0:\n self.heapArray[myKey] = (amt,self.heapArray[myKey][1])\n self.percUp(myKey)\n \n def __contains__(self,vtx):\n for pair in self.heapArray:\n if pair[1] == vtx:\n return True\n return False\n \nclass TestBinHeap(unittest.TestCase):\n def setUp(self):\n self.theHeap = PriorityQueue()\n self.theHeap.add((2,'x'))\n self.theHeap.add((3,'y'))\n self.theHeap.add((5,'z'))\n self.theHeap.add((6,'a'))\n self.theHeap.add((4,'d'))\n\n\n def testInsert(self):\n assert self.theHeap.currentSize == 5\n\n def testDelmin(self):\n assert self.theHeap.delMin() == 'x'\n assert self.theHeap.delMin() == 'y'\n \n def testDecKey(self):\n self.theHeap.decreaseKey('d',1)\n assert self.theHeap.delMin() == 'd'\n \nif __name__ == '__main__':\n unittest.main()\n","src/lib/pythonds/graphs/__init__.py":"\n\nfrom .adjGraph import Graph\nfrom .adjGraph import Vertex\nfrom .priorityQueue import PriorityQueue\n","src/lib/pythonds/trees/balance.py":"#!/bin/env python3.1\n# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005, 2010\n# \n\nfrom .bst import BinarySearchTree, TreeNode\n\nclass AVLTree(BinarySearchTree):\n '''\n Author: Brad Miller\n Date: 1/15/2005\n Description: Imlement a binary search tree with the following interface\n functions: \n __contains__(y) <==> y in x\n __getitem__(y) <==> x[y]\n __init__()\n __len__() <==> len(x)\n __setitem__(k,v) <==> x[k] = v\n clear()\n get(k)\n has_key(k)\n items() \n keys() \n values()\n put(k,v)\n '''\n\n\n def _put(self,key,val,currentNode):\n if key < currentNode.key:\n if currentNode.hasLeftChild():\n self._put(key,val,currentNode.leftChild)\n else:\n currentNode.leftChild = TreeNode(key,val,parent=currentNode)\n self.updateBalance(currentNode.leftChild)\n else:\n if currentNode.hasRightChild():\n self._put(key,val,currentNode.rightChild)\n else:\n currentNode.rightChild = TreeNode(key,val,parent=currentNode)\n self.updateBalance(currentNode.rightChild) \n\n def updateBalance(self,node):\n if node.balanceFactor > 1 or node.balanceFactor < -1:\n self.rebalance(node)\n return\n if node.parent != None:\n if node.isLeftChild():\n node.parent.balanceFactor += 1\n elif node.isRightChild():\n node.parent.balanceFactor -= 1\n\n if node.parent.balanceFactor != 0:\n self.updateBalance(node.parent)\n\n def rebalance(self,node):\n if node.balanceFactor < 0:\n if node.rightChild.balanceFactor > 0:\n # Do an LR Rotation\n self.rotateRight(node.rightChild)\n self.rotateLeft(node)\n else:\n # single left\n self.rotateLeft(node)\n elif node.balanceFactor > 0:\n if node.leftChild.balanceFactor < 0:\n # Do an RL Rotation\n self.rotateLeft(node.leftChild)\n self.rotateRight(node)\n else:\n # single right\n self.rotateRight(node)\n\n def rotateLeft(self,rotRoot):\n newRoot = rotRoot.rightChild\n rotRoot.rightChild = newRoot.leftChild\n if newRoot.leftChild != None:\n newRoot.leftChild.parent = rotRoot\n newRoot.parent = rotRoot.parent\n if rotRoot.isRoot():\n self.root = newRoot\n else:\n if rotRoot.isLeftChild():\n rotRoot.parent.leftChild = newRoot\n else:\n rotRoot.parent.rightChild = newRoot\n newRoot.leftChild = rotRoot\n rotRoot.parent = newRoot\n rotRoot.balanceFactor = rotRoot.balanceFactor + 1 - min(newRoot.balanceFactor, 0)\n newRoot.balanceFactor = newRoot.balanceFactor + 1 + max(rotRoot.balanceFactor, 0)\n\n\n def rotateRight(self,rotRoot):\n newRoot = rotRoot.leftChild\n rotRoot.leftChild = newRoot.rightChild\n if newRoot.rightChild != None:\n newRoot.rightChild.parent = rotRoot\n newRoot.parent = rotRoot.parent\n if rotRoot.isRoot():\n self.root = newRoot\n else:\n if rotRoot.isRightChild():\n rotRoot.parent.rightChild = newRoot\n else:\n rotRoot.parent.leftChild = newRoot\n newRoot.rightChild = rotRoot\n rotRoot.parent = newRoot\n rotRoot.balanceFactor = rotRoot.balanceFactor - 1 - max(newRoot.balanceFactor, 0)\n newRoot.balanceFactor = newRoot.balanceFactor - 1 + min(rotRoot.balanceFactor, 0)\n \n","src/lib/pythonds/trees/binaryTree.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n\nclass BinaryTree:\n \"\"\"\n A recursive implementation of Binary Tree\n Using links and Nodes approach.\n \"\"\" \n def __init__(self,rootObj):\n self.key = rootObj\n self.leftChild = None\n self.rightChild = None\n\n def insertLeft(self,newNode):\n if self.leftChild == None:\n self.leftChild = BinaryTree(newNode)\n else:\n t = BinaryTree(newNode)\n t.left = self.leftChild\n self.leftChild = t\n \n def insertRight(self,newNode):\n if self.rightChild == None:\n self.rightChild = BinaryTree(newNode)\n else:\n t = BinaryTree(newNode)\n t.right = self.rightChild\n self.rightChild = t\n\n def isLeaf(self):\n return ((not self.leftChild) and (not self.rightChild))\n\n def getRightChild(self):\n return self.rightChild\n\n def getLeftChild(self):\n return self.leftChild\n\n def setRootVal(self,obj):\n self.key = obj\n\n def getRootVal(self,):\n return self.key\n\n def inorder(self):\n if self.leftChild:\n self.leftChild.inorder()\n print(self.key)\n if self.rightChild:\n self.rightChild.inorder()\n\n def postorder(self):\n if self.leftChild:\n self.leftChild.postorder()\n if self.rightChild:\n self.rightChild.postorder()\n print(self.key)\n\n\n def preorder(self):\n print(self.key)\n if self.leftChild:\n self.leftChild.preorder()\n if self.rightChild:\n self.rightChild.preorder()\n\n def printexp(self):\n if self.leftChild:\n print('(')\n self.leftChild.printexp()\n print(self.key)\n if self.rightChild:\n self.rightChild.printexp()\n print(')')\n\n def postordereval(self):\n opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv}\n res1 = None\n res2 = None\n if self.leftChild:\n res1 = self.leftChild.postordereval() #// \\label{peleft}\n if self.rightChild:\n res2 = self.rightChild.postordereval() #// \\label{peright}\n if res1 and res2:\n return opers[self.key](res1,res2) #// \\label{peeval}\n else:\n return self.key\n\ndef inorder(tree):\n if tree != None:\n inorder(tree.getLeftChild())\n print(tree.getRootVal())\n inorder(tree.getRightChild())\n\ndef printexp(tree):\n if tree.leftChild:\n print('(')\n printexp(tree.getLeftChild())\n print(tree.getRootVal())\n if tree.rightChild:\n printexp(tree.getRightChild())\n print(')') \n\ndef printexp(tree):\n sVal = \"\"\n if tree:\n sVal = '(' + printexp(tree.getLeftChild())\n sVal = sVal + str(tree.getRootVal())\n sVal = sVal + printexp(tree.getRightChild()) + ')'\n return sVal\n\ndef postordereval(tree):\n opers = {'+':operator.add, '-':operator.sub, '*':operator.mul, '/':operator.truediv}\n res1 = None\n res2 = None\n if tree:\n res1 = postordereval(tree.getLeftChild()) #// \\label{peleft}\n res2 = postordereval(tree.getRightChild()) #// \\label{peright}\n if res1 and res2:\n return opers[tree.getRootVal()](res1,res2) #// \\label{peeval}\n else:\n return tree.getRootVal()\n\ndef height(tree):\n if tree == None:\n return -1\n else:\n return 1 + max(height(tree.leftChild),height(tree.rightChild))\n\n# t = BinaryTree(7)\n# t.insertLeft(3)\n# t.insertRight(9)\n# inorder(t)\n# import operator\n# x = BinaryTree('*')\n# x.insertLeft('+')\n# l = x.getLeftChild()\n# l.insertLeft(4)\n# l.insertRight(5)\n# x.insertRight(7)\n# print(printexp(x))\n# print(postordereval(x))\n# print(height(x))\n","src/lib/pythonds/trees/binheap.py":"# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005\n# \n\n# this heap takes key value pairs, we will assume that the keys are integers\nclass BinHeap:\n def __init__(self):\n self.heapList = [0]\n self.currentSize = 0\n\n\n def buildHeap(self,alist):\n i = len(alist) // 2\n self.currentSize = len(alist)\n self.heapList = [0] + alist[:]\n print(len(self.heapList), i)\n while (i > 0):\n print(self.heapList, i)\n self.percDown(i)\n i = i - 1\n print(self.heapList,i)\n \n def percDown(self,i):\n while (i * 2) <= self.currentSize:\n mc = self.minChild(i)\n if self.heapList[i] > self.heapList[mc]:\n tmp = self.heapList[i]\n self.heapList[i] = self.heapList[mc]\n self.heapList[mc] = tmp\n i = mc\n \n def minChild(self,i):\n if i * 2 + 1 > self.currentSize:\n return i * 2\n else:\n if self.heapList[i * 2] < self.heapList[i * 2 + 1]:\n return i * 2\n else:\n return i * 2 + 1\n\n def percUp(self,i):\n while i // 2 > 0:\n if self.heapList[i] < self.heapList[i//2]:\n tmp = self.heapList[i // 2]\n self.heapList[i // 2] = self.heapList[i]\n self.heapList[i] = tmp\n i = i // 2\n \n def insert(self,k):\n self.heapList.append(k)\n self.currentSize = self.currentSize + 1\n self.percUp(self.currentSize)\n\n def delMin(self):\n retval = self.heapList[1]\n self.heapList[1] = self.heapList[self.currentSize]\n self.currentSize = self.currentSize - 1\n self.heapList.pop()\n self.percDown(1)\n return retval\n \n def isEmpty(self):\n if currentSize == 0:\n return True\n else:\n return False\n","src/lib/pythonds/trees/bst.py":"#!/bin/env python3.1\n# Bradley N. Miller, David L. Ranum\n# Introduction to Data Structures and Algorithms in Python\n# Copyright 2005, 2010\n# \n\nclass BinarySearchTree:\n '''\n Author: Brad Miller\n Date: 1/15/2005\n Description: Imlement a binary search tree with the following interface\n functions: \n __contains__(y) <==> y in x\n __getitem__(y) <==> x[y]\n __init__()\n __len__() <==> len(x)\n __setitem__(k,v) <==> x[k] = v\n clear()\n get(k)\n items() \n keys() \n values()\n put(k,v)\n in\n del <==> \n '''\n\n def __init__(self):\n self.root = None\n self.size = 0\n \n def put(self,key,val):\n if self.root:\n self._put(key,val,self.root)\n else:\n self.root = TreeNode(key,val)\n self.size = self.size + 1\n\n def _put(self,key,val,currentNode):\n if key < currentNode.key:\n if currentNode.hasLeftChild():\n self._put(key,val,currentNode.leftChild)\n else:\n currentNode.leftChild = TreeNode(key,val,parent=currentNode)\n else:\n if currentNode.hasRightChild():\n self._put(key,val,currentNode.rightChild)\n else:\n currentNode.rightChild = TreeNode(key,val,parent=currentNode)\n \n def __setitem__(self,k,v):\n self.put(k,v)\n\n def get(self,key):\n if self.root:\n res = self._get(key,self.root)\n if res:\n return res.payload\n else:\n return None\n else:\n return None\n \n def _get(self,key,currentNode):\n if not currentNode:\n return None\n elif currentNode.key == key:\n return currentNode\n elif key < currentNode.key:\n return self._get(key,currentNode.leftChild)\n else:\n return self._get(key,currentNode.rightChild)\n \n \n def __getitem__(self,key):\n res = self.get(key)\n if res:\n return res\n else:\n raise KeyError('Error, key not in tree')\n \n\n def __contains__(self,key):\n if self._get(key,self.root):\n return True\n else:\n return False\n \n def length(self):\n return self.size\n\n def __len__(self):\n return self.size\n\n def __iter__(self):\n return self.root.__iter__()\n \n def delete(self,key):\n if self.size > 1:\n nodeToRemove = self._get(key,self.root)\n if nodeToRemove:\n self.remove(nodeToRemove)\n self.size = self.size-1\n else:\n raise KeyError('Error, key not in tree')\n elif self.size == 1 and self.root.key == key:\n self.root = None\n self.size = self.size - 1\n else:\n raise KeyError('Error, key not in tree')\n\n def __delitem__(self,key):\n self.delete(key)\n \n def remove(self,currentNode):\n if currentNode.isLeaf(): #leaf\n if currentNode == currentNode.parent.leftChild:\n currentNode.parent.leftChild = None\n else:\n currentNode.parent.rightChild = None\n elif currentNode.hasBothChildren(): #interior\n succ = currentNode.findSuccessor()\n succ.spliceOut()\n currentNode.key = succ.key\n currentNode.payload = succ.payload\n else: # this node has one child\n if currentNode.hasLeftChild():\n if currentNode.isLeftChild():\n currentNode.leftChild.parent = currentNode.parent\n currentNode.parent.leftChild = currentNode.leftChild\n elif currentNode.isRightChild():\n currentNode.leftChild.parent = currentNode.parent\n currentNode.parent.rightChild = currentNode.leftChild\n else:\n currentNode.replaceNodeData(currentNode.leftChild.key,\n currentNode.leftChild.payload,\n currentNode.leftChild.leftChild,\n currentNode.leftChild.rightChild)\n else:\n if currentNode.isLeftChild():\n currentNode.rightChild.parent = currentNode.parent\n currentNode.parent.leftChild = currentNode.rightChild\n elif currentNode.isRightChild():\n currentNode.rightChild.parent = currentNode.parent\n currentNode.parent.rightChild = currentNode.rightChild\n else:\n currentNode.replaceNodeData(currentNode.rightChild.key,\n currentNode.rightChild.payload,\n currentNode.rightChild.leftChild,\n currentNode.rightChild.rightChild)\n\n def inorder(self):\n self._inorder(self.root)\n\n def _inorder(self,tree):\n if tree != None:\n self._inorder(tree.leftChild)\n print(tree.key)\n self._inorder(tree.rightChild)\n\n def postorder(self):\n self._postorder(self.root)\n\n def _postorder(self, tree):\n if tree:\n self._postorder(tree.rightChild)\n self._postorder(tree.leftChild)\n print(tree.key) \n\n def preorder(self):\n self._preorder(self,self.root)\n\n def _preorder(self,tree):\n if tree:\n print(tree.key) \n self._preorder(tree.leftChild)\n self._preorder(tree.rightChild)\n\n \nclass TreeNode:\n def __init__(self,key,val,left=None,right=None,parent=None):\n self.key = key\n self.payload = val\n self.leftChild = left\n self.rightChild = right\n self.parent = parent\n self.balanceFactor = 0\n \n def hasLeftChild(self):\n return self.leftChild\n\n def hasRightChild(self):\n return self.rightChild\n \n def isLeftChild(self):\n return self.parent and self.parent.leftChild == self\n\n def isRightChild(self):\n return self.parent and self.parent.rightChild == self\n\n def isRoot(self):\n return not self.parent\n\n def isLeaf(self):\n return not (self.rightChild or self.leftChild)\n\n def hasAnyChildren(self):\n return self.rightChild or self.leftChild\n\n def hasBothChildren(self):\n return self.rightChild and self.leftChild\n \n def replaceNodeData(self,key,value,lc,rc):\n self.key = key\n self.payload = value\n self.leftChild = lc\n self.rightChild = rc\n if self.hasLeftChild():\n self.leftChild.parent = self\n if self.hasRightChild():\n self.rightChild.parent = self\n \n def findSuccessor(self):\n succ = None\n if self.hasRightChild():\n succ = self.rightChild.findMin()\n else:\n if self.parent:\n if self.isLeftChild():\n succ = self.parent\n else:\n self.parent.rightChild = None\n succ = self.parent.findSuccessor()\n self.parent.rightChild = self\n return succ\n\n\n def spliceOut(self):\n if self.isLeaf():\n if self.isLeftChild():\n self.parent.leftChild = None\n else:\n self.parent.rightChild = None\n elif self.hasAnyChildren():\n if self.hasLeftChild():\n if self.isLeftChild():\n self.parent.leftChild = self.leftChild\n else:\n self.parent.rightChild = self.leftChild\n self.leftChild.parent = self.parent\n else:\n if self.isLeftChild():\n self.parent.leftChild = self.rightChild\n else:\n self.parent.rightChild = self.rightChild\n self.rightChild.parent = self.parent\n\n def findMin(self):\n current = self\n while current.hasLeftChild():\n current = current.leftChild\n return current\n\n def __iter__(self):\n \"\"\"The standard inorder traversal of a binary tree.\"\"\"\n if self:\n if self.hasLeftChild():\n for elem in self.leftChild:\n yield elem\n yield self.key\n if self.hasRightChild():\n for elem in self.rightChild:\n yield elem\n\n \n","src/lib/pythonds/trees/__init__.py":"\n# from .binaryTree import BinaryTree\n# from .balance import AVLTree\n# from .bst import BinarySearchTree\n# from .binheap import BinHeap\n\n\n","src/lib/pythonds/__init__.py":"","src/lib/py_compile.py":'import _sk_fail; _sk_fail._("py_compile")\n',"src/lib/Queue.py":'import _sk_fail; _sk_fail._("Queue")\n',"src/lib/quopri.py":'import _sk_fail; _sk_fail._("quopri")\n',"src/lib/repr.py":'import _sk_fail; _sk_fail._("repr")\n',"src/lib/rexec.py":'import _sk_fail; _sk_fail._("rexec")\n',"src/lib/rfc822.py":'import _sk_fail; _sk_fail._("rfc822")\n',"src/lib/rlcompleter.py":'import _sk_fail; _sk_fail._("rlcompleter")\n',"src/lib/robotparser.py":'import _sk_fail; _sk_fail._("robotparser")\n',"src/lib/runpy.py":'import _sk_fail; _sk_fail._("runpy")\n',"src/lib/sched.py":'import _sk_fail; _sk_fail._("sched")\n',"src/lib/sets.py":'import _sk_fail; _sk_fail._("sets")\n',"src/lib/sgmllib.py":'import _sk_fail; _sk_fail._("sgmllib")\n',"src/lib/sha.py":'import _sk_fail; _sk_fail._("sha")\n',"src/lib/shelve.py":'import _sk_fail; _sk_fail._("shelve")\n',"src/lib/shlex.py":'import _sk_fail; _sk_fail._("shlex")\n',"src/lib/shutil.py":'import _sk_fail; _sk_fail._("shutil")\n',"src/lib/SimpleHTTPServer.py":'import _sk_fail; _sk_fail._("SimpleHTTPServer")\n',"src/lib/SimpleXMLRPCServer.py":'import _sk_fail; _sk_fail._("SimpleXMLRPCServer")\n',"src/lib/site.py":'import _sk_fail; _sk_fail._("site")\n',"src/lib/smtpd.py":'import _sk_fail; _sk_fail._("smtpd")\n',"src/lib/smtplib.py":'import _sk_fail; _sk_fail._("smtplib")\n',"src/lib/sndhdr.py":'import _sk_fail; _sk_fail._("sndhdr")\n',"src/lib/socket.py":'import _sk_fail; _sk_fail._("socket")\n',"src/lib/SocketServer.py":'import _sk_fail; _sk_fail._("SocketServer")\n',"src/lib/sqlite3/__init__.py":'import _sk_fail; _sk_fail._("sqlite3")\n',"src/lib/sre.py":'import _sk_fail; _sk_fail._("sre")\n',"src/lib/sre_compile.py":'import _sk_fail; _sk_fail._("sre_compile")\n',"src/lib/sre_constants.py":'import _sk_fail; _sk_fail._("sre_constants")\n',"src/lib/sre_parse.py":'import _sk_fail; _sk_fail._("sre_parse")\n',"src/lib/ssl.py":'import _sk_fail; _sk_fail._("ssl")\n',"src/lib/stat.py":'import _sk_fail; _sk_fail._("stat")\n',"src/lib/statvfs.py":'import _sk_fail; _sk_fail._("statvfs")\n',"src/lib/StringIO.py":'r"""File-like objects that read from or write to a string buffer.\n\nThis implements (nearly) all stdio methods.\n\nf = StringIO() # ready for writing\nf = StringIO(buf) # ready for reading\nf.close() # explicitly release resources held\nflag = f.isatty() # always false\npos = f.tell() # get current position\nf.seek(pos) # set current position\nf.seek(pos, mode) # mode 0: absolute; 1: relative; 2: relative to EOF\nbuf = f.read() # read until EOF\nbuf = f.read(n) # read up to n bytes\nbuf = f.readline() # read until end of line (\'\\n\') or EOF\nlist = f.readlines()# list of f.readline() results until EOF\nf.truncate([size]) # truncate file at to at most size (default: current pos)\nf.write(buf) # write at current position\nf.writelines(list) # for line in list: f.write(line)\nf.getvalue() # return whole file\'s contents as a string\n\nNotes:\n- Using a real file is often faster (but less convenient).\n- There\'s also a much faster implementation in C, called cStringIO, but\n it\'s not subclassable.\n- fileno() is left unimplemented so that code which uses it triggers\n an exception early.\n- Seeking far beyond EOF and then writing will insert real null\n bytes that occupy space in the buffer.\n- There\'s a simple test set (see end of this file).\n"""\n\n__all__ = ["StringIO"]\n\ndef _complain_ifclosed(closed):\n if closed:\n raise ValueError("I/O operation on closed file")\n\nclass StringIO:\n """class StringIO([buffer])\n\n When a StringIO object is created, it can be initialized to an existing\n string by passing the string to the constructor. If no string is given,\n the StringIO will start empty.\n\n The StringIO object can accept either Unicode or 8-bit strings, but\n mixing the two may take some care. If both are used, 8-bit strings that\n cannot be interpreted as 7-bit ASCII (that use the 8th bit) will cause\n a UnicodeError to be raised when getvalue() is called.\n """\n def __init__(self, buf = \'\'):\n # Force self.buf to be a string or unicode\n if not isinstance(buf, str):\n buf = str(buf)\n self.buf = buf\n self.len = len(buf)\n self.buflist = []\n self.pos = 0\n self.closed = False\n self.softspace = 0\n\n def __iter__(self):\n return self\n\n def next(self):\n """A file object is its own iterator, for example iter(f) returns f\n (unless f is closed). When a file is used as an iterator, typically\n in a for loop (for example, for line in f: print line), the next()\n method is called repeatedly. This method returns the next input line,\n or raises StopIteration when EOF is hit.\n """\n _complain_ifclosed(self.closed)\n r = self.readline()\n if not r:\n raise StopIteration\n return r\n\n def close(self):\n """Free the memory buffer.\n """\n if not self.closed:\n self.closed = True\n self.buf = None\n self.pos = None\n\n def isatty(self):\n """Returns False because StringIO objects are not connected to a\n tty-like device.\n """\n _complain_ifclosed(self.closed)\n return False\n\n def seek(self, pos, mode = 0):\n """Set the file\'s current position.\n\n The mode argument is optional and defaults to 0 (absolute file\n positioning); other values are 1 (seek relative to the current\n position) and 2 (seek relative to the file\'s end).\n\n There is no return value.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n if mode == 1:\n pos += self.pos\n elif mode == 2:\n pos += self.len\n self.pos = max(0, pos)\n\n def tell(self):\n """Return the file\'s current position."""\n _complain_ifclosed(self.closed)\n return self.pos\n\n def read(self, n = -1):\n """Read at most size bytes from the file\n (less if the read hits EOF before obtaining size bytes).\n\n If the size argument is negative or omitted, read all data until EOF\n is reached. The bytes are returned as a string object. An empty\n string is returned when EOF is encountered immediately.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n if n is None or n < 0:\n newpos = self.len\n else:\n newpos = min(self.pos+n, self.len)\n r = self.buf[self.pos:newpos]\n self.pos = newpos\n return r\n\n def readline(self, length=None):\n r"""Read one entire line from the file.\n\n A trailing newline character is kept in the string (but may be absent\n when a file ends with an incomplete line). If the size argument is\n present and non-negative, it is a maximum byte count (including the\n trailing newline) and an incomplete line may be returned.\n\n An empty string is returned only when EOF is encountered immediately.\n\n Note: Unlike stdio\'s fgets(), the returned string contains null\n characters (\'\\0\') if they occurred in the input.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n i = self.buf.find(\'\\n\', self.pos)\n if i < 0:\n newpos = self.len\n else:\n newpos = i+1\n if length is not None and length >= 0:\n if self.pos + length < newpos:\n newpos = self.pos + length\n r = self.buf[self.pos:newpos]\n self.pos = newpos\n return r\n\n def readlines(self, sizehint = 0):\n """Read until EOF using readline() and return a list containing the\n lines thus read.\n\n If the optional sizehint argument is present, instead of reading up\n to EOF, whole lines totalling approximately sizehint bytes (or more\n to accommodate a final whole line).\n """\n total = 0\n lines = []\n line = self.readline()\n while line:\n lines.append(line)\n total += len(line)\n if 0 < sizehint <= total:\n break\n line = self.readline()\n return lines\n\n def truncate(self, size=None):\n """Truncate the file\'s size.\n\n If the optional size argument is present, the file is truncated to\n (at most) that size. The size defaults to the current position.\n The current file position is not changed unless the position\n is beyond the new file size.\n\n If the specified size exceeds the file\'s current size, the\n file remains unchanged.\n """\n _complain_ifclosed(self.closed)\n if size is None:\n size = self.pos\n elif size < 0:\n raise IOError(22, "Negative size not allowed")\n elif size < self.pos:\n self.pos = size\n self.buf = self.getvalue()[:size]\n self.len = size\n\n def write(self, s):\n """Write a string to the file.\n\n There is no return value.\n """\n _complain_ifclosed(self.closed)\n if not s: return\n # Force s to be a string or unicode\n if not isinstance(s, str):\n s = str(s)\n spos = self.pos\n slen = self.len\n if spos == slen:\n self.buflist.append(s)\n self.len = self.pos = spos + len(s)\n return\n if spos > slen:\n self.buflist.append(\'\\0\'*(spos - slen))\n slen = spos\n newpos = spos + len(s)\n if spos < slen:\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = [self.buf[:spos], s, self.buf[newpos:]]\n self.buf = \'\'\n if newpos > slen:\n slen = newpos\n else:\n self.buflist.append(s)\n slen = newpos\n self.len = slen\n self.pos = newpos\n\n def writelines(self, iterable):\n """Write a sequence of strings to the file. The sequence can be any\n iterable object producing strings, typically a list of strings. There\n is no return value.\n\n (The name is intended to match readlines(); writelines() does not add\n line separators.)\n """\n write = self.write\n for line in iterable:\n write(line)\n\n def flush(self):\n """Flush the internal buffer\n """\n _complain_ifclosed(self.closed)\n\n def getvalue(self):\n """\n Retrieve the entire contents of the "file" at any time before\n the StringIO object\'s close() method is called.\n\n The StringIO object can accept either Unicode or 8-bit strings,\n but mixing the two may take some care. If both are used, 8-bit\n strings that cannot be interpreted as 7-bit ASCII (that use the\n 8th bit) will cause a UnicodeError to be raised when getvalue()\n is called.\n """\n _complain_ifclosed(self.closed)\n if self.buflist:\n self.buf += \'\'.join(self.buflist)\n self.buflist = []\n return self.buf\n',"src/lib/stringold.py":'import _sk_fail; _sk_fail._("stringold")\n',"src/lib/stringprep.py":'import _sk_fail; _sk_fail._("stringprep")\n',"src/lib/struct.py":'import _sk_fail; _sk_fail._("struct")\n',"src/lib/subprocess.py":'import _sk_fail; _sk_fail._("subprocess")\n',"src/lib/sunau.py":'import _sk_fail; _sk_fail._("sunau")\n',"src/lib/sunaudio.py":'import _sk_fail; _sk_fail._("sunaudio")\n',"src/lib/symbol.py":'import _sk_fail; _sk_fail._("symbol")\n',"src/lib/symtable.py":'import _sk_fail; _sk_fail._("symtable")\n',"src/lib/tabnanny.py":'import _sk_fail; _sk_fail._("tabnanny")\n',"src/lib/tarfile.py":'import _sk_fail; _sk_fail._("tarfile")\n',"src/lib/telnetlib.py":'import _sk_fail; _sk_fail._("telnetlib")\n',"src/lib/tempfile.py":'import _sk_fail; _sk_fail._("tempfile")\n',"src/lib/test/ann_module.py":"\n\n\"\"\"\nThe module for testing variable annotations.\nEmpty lines above are for good reason (testing for correct line numbers)\n\"\"\"\n\n# from typing import Optional\n# from functools import wraps\n\n__annotations__[1] = 2\n\nclass C:\n\n x = 5; #y: Optional['C'] = None\n\n# from typing import Tuple\nx: int = 5; y: str = x;# f: Tuple[int, int]\n\nclass M(type):\n\n __annotations__['123'] = 123\n o: type = object\n\n(pars): bool = True\n\nclass D(C):\n j: str = 'hi'; k: str= 'bye'\n\n# from types import new_class\n# h_class = new_class('H', (C,))\n# j_class = new_class('J')\n\nclass F():\n z: int = 5\n def __init__(self, x):\n pass\n\nclass Y(F):\n def __init__(self):\n super(F, self).__init__(123)\n\nclass Meta(type):\n def __new__(meta, name, bases, namespace):\n return super().__new__(meta, name, bases, namespace)\n\nclass S(metaclass = Meta):\n x: str = 'something'\n y: str = 'something else'\n\n# def foo(x: int = 10):\n# def bar(y: List[str]):\n# x: str = 'yes'\n# bar()\n\n# def dec(func):\n# @wraps(func)\n# def wrapper(*args, **kwargs):\n# return func(*args, **kwargs)\n# return wrapper\n","src/lib/test/ann_module2.py":'"""\nSome correct syntax for variable annotation here.\nMore examples are in test_grammar and test_parser.\n"""\n\n# from typing import no_type_check, ClassVar\n\ni: int = 1\nj: int\nx: float = i/10\n\ndef f():\n # class C: ...\n class C: pass\n return C()\n\nf().new_attr: object = object()\n\nclass C:\n def __init__(self, x: int) -> None:\n self.x = x\n\nc = C(5)\nc.new_attr: int = 10\n\n__annotations__ = {}\n\n\n# @no_type_check\n# class NTC:\n# def meth(self, param: complex) -> None:\n# ...\n\n# class CV:\n# var: ClassVar[\'CV\']\n\n# CV.var = CV()\n',"src/lib/test/ann_module3.py":'"""\nCorrect syntax for variable annotation that should fail at runtime\nin a certain manner. More examples are in test_grammar and test_parser.\n"""\n\ndef f_bad_ann():\n __annotations__[1] = 2\n\nclass C_OK:\n def __init__(self, x: int) -> None:\n self.x: no_such_name = x # This one is OK as proposed by Guido\n\nclass D_bad_ann:\n def __init__(self, x: int) -> None:\n sfel.y: int = 0\n\ndef g_bad_ann():\n no_such_name.attr: int = 0\n',"src/lib/test/bad_getattr.py":'x = 1\n\n__getattr__ = "Surprise!"\n__dir__ = "Surprise again!"\n',"src/lib/test/bad_getattr2.py":'def __getattr__():\n "Bad one"\n\nx = 1\n\ndef __dir__(bad_sig):\n return []\n',"src/lib/test/bad_getattr3.py":"def __getattr__(name):\n global __getattr__\n if name != 'delgetattr':\n raise AttributeError\n del __getattr__\n raise AttributeError\n","src/lib/test/decimaltestdata/__init__.py":'import _sk_fail; _sk_fail._("decimaltestdata")\n',"src/lib/test/good_getattr.py":"x = 1\n\ndef __dir__():\n return ['a', 'b', 'c']\n\ndef __getattr__(name):\n if name == \"yolo\":\n raise AttributeError(\"Deprecated, use whatever instead\")\n return f\"There is {name}\"\n\ny = 2\n","src/lib/test/test_support.py":'"""Supporting definitions for the Python regression tests."""\n\nif __name__ != \'test.test_support\':\n raise ImportError(\'test_support must be imported from the test package\')\n\nimport unittest\n\n\n# def run_unittest(*classes):\n# """Run tests from unittest.TestCase-derived classes."""\n# valid_types = (unittest.TestSuite, unittest.TestCase)\n# suite = unittest.TestSuite()\n# for cls in classes:\n# if isinstance(cls, str):\n# if cls in sys.modules:\n# suite.addTest(unittest.findTestCases(sys.modules[cls]))\n# else:\n# raise ValueError("str arguments must be keys in sys.modules")\n# elif isinstance(cls, valid_types):\n# suite.addTest(cls)\n# else:\n# suite.addTest(unittest.makeSuite(cls))\n# _run_suite(suite)\n\ndef run_unittest(*classes):\n """Run tests from unittest.TestCase-derived classes."""\n for cls in classes:\n print cls\n if issubclass(cls, unittest.TestCase):\n cls().main()\n else:\n print "Don\'t know what to do with ", cls\n',"src/lib/test/__init__.py":"__author__ = 'bmiller'\n\ndef testEqual(actual, expected):\n if type(expected) == type(1):\n if actual == expected:\n print('Pass')\n return True\n elif type(expected) == type(1.11):\n if abs(actual-expected) < 0.00001:\n print('Pass')\n return True\n else:\n if actual == expected:\n print('Pass')\n return True\n print('Test Failed: expected ' + str(expected) + ' but got ' + str(actual))\n return False\n\ndef testNotEqual(actual, expected):\n pass\n\n","src/lib/textwrap.py":"\"\"\"Text wrapping and filling.\n\"\"\"\n\n# Copyright (C) 1999-2001 Gregory P. Ward.\n# Copyright (C) 2002, 2003 Python Software Foundation.\n# Written by Greg Ward \n\nimport re, string\n\n__all__ = ['TextWrapper', 'wrap', 'fill', 'dedent', 'indent', 'shorten']\n\n# Hardcode the recognized whitespace characters to the US-ASCII\n# whitespace characters. The main reason for doing this is that\n# some Unicode spaces (like \\u00a0) are non-breaking whitespaces.\n_whitespace = '\\t\\n\\x0b\\x0c\\r '\n\nclass TextWrapper:\n \"\"\"\n Object for wrapping/filling text. The public interface consists of\n the wrap() and fill() methods; the other methods are just there for\n subclasses to override in order to tweak the default behaviour.\n If you want to completely replace the main wrapping algorithm,\n you'll probably have to override _wrap_chunks().\n Several instance attributes control various aspects of wrapping:\n width (default: 70)\n the maximum width of wrapped lines (unless break_long_words\n is false)\n initial_indent (default: \"\")\n string that will be prepended to the first line of wrapped\n output. Counts towards the line's width.\n subsequent_indent (default: \"\")\n string that will be prepended to all lines save the first\n of wrapped output; also counts towards each line's width.\n expand_tabs (default: true)\n Expand tabs in input text to spaces before further processing.\n Each tab will become 0 .. 'tabsize' spaces, depending on its position\n in its line. If false, each tab is treated as a single character.\n tabsize (default: 8)\n Expand tabs in input text to 0 .. 'tabsize' spaces, unless\n 'expand_tabs' is false.\n replace_whitespace (default: true)\n Replace all whitespace characters in the input text by spaces\n after tab expansion. Note that if expand_tabs is false and\n replace_whitespace is true, every tab will be converted to a\n single space!\n fix_sentence_endings (default: false)\n Ensure that sentence-ending punctuation is always followed\n by two spaces. Off by default because the algorithm is\n (unavoidably) imperfect.\n break_long_words (default: true)\n Break words longer than 'width'. If false, those words will not\n be broken, and some lines might be longer than 'width'.\n break_on_hyphens (default: true)\n Allow breaking hyphenated words. If true, wrapping will occur\n preferably on whitespaces and right after hyphens part of\n compound words.\n drop_whitespace (default: true)\n Drop leading and trailing whitespace from lines.\n max_lines (default: None)\n Truncate wrapped lines.\n placeholder (default: ' [...]')\n Append to the last line of truncated text.\n \"\"\"\n\n unicode_whitespace_trans = {}\n # uspace = ord(' ')\n uspace = ' '\n for x in _whitespace:\n # unicode_whitespace_trans[ord(x)] = uspace\n unicode_whitespace_trans[x] = uspace\n\n # This funky little regex is just the trick for splitting\n # text up into word-wrappable chunks. E.g.\n # \"Hello there -- you goof-ball, use the -b option!\"\n # splits into\n # Hello/ /there/ /--/ /you/ /goof-/ball,/ /use/ /the/ /-b/ /option!\n # (after stripping out empty strings).\n wordsep_re = re.compile(\n r'(\\s+|' # any whitespace\n r'[^\\s\\w]*\\w+[^0-9\\W]-(?=\\w+[^0-9\\W]))') # hyphenated words\n em_dash = re.compile(r'(\\s+|' # any whitespace\n r'[^\\s\\w]*\\w+[^0-9\\W]-(?=\\w+[^0-9\\W])|' # hyphenated words\n r'(?!^)-{2,}(?=\\w))') # em-dash\n\n \n # This less funky little regex just split on recognized spaces. E.g.\n # \"Hello there -- you goof-ball, use the -b option!\"\n # splits into\n # Hello/ /there/ /--/ /you/ /goof-ball,/ /use/ /the/ /-b/ /option!/\n wordsep_simple_re = re.compile(r'(\\s+)')\n\n\n # XXX this is not locale- or charset-aware -- string.lowercase\n # is US-ASCII only (and therefore English-only)\n sentence_end_re = re.compile(r'[a-z]' # lowercase letter\n r'[\\.\\!\\?]' # sentence-ending punct.\n r'[\\\"\\']?' # optional end-of-quote\n r'\\Z') # end of chunk\n sentence_end_re = r'[a-z][\\.\\!\\?][\\\"\\']?'\n\n def __init__(self,\n width=70,\n initial_indent=\"\",\n subsequent_indent=\"\",\n expand_tabs=True,\n replace_whitespace=True,\n fix_sentence_endings=False,\n break_long_words=True,\n drop_whitespace=True,\n break_on_hyphens=True,\n tabsize=8,\n max_lines=None,\n placeholder=' [...]'):\n self.width = width\n self.initial_indent = initial_indent\n self.subsequent_indent = subsequent_indent\n self.expand_tabs = expand_tabs\n self.replace_whitespace = replace_whitespace\n self.fix_sentence_endings = fix_sentence_endings\n self.break_long_words = break_long_words\n self.drop_whitespace = drop_whitespace\n self.break_on_hyphens = break_on_hyphens\n self.tabsize = tabsize\n self.max_lines = max_lines\n self.placeholder = placeholder\n\n\n # -- Private methods -----------------------------------------------\n # (possibly useful for subclasses to override)\n\n def _munge_whitespace(self, text):\n \"\"\"_munge_whitespace(text : string) -> string\n Munge whitespace in text: expand tabs and convert all other\n whitespace characters to spaces. Eg. \" foo\\\\tbar\\\\n\\\\nbaz\"\n becomes \" foo bar baz\".\n \"\"\"\n if self.expand_tabs:\n text = text.expandtabs(self.tabsize)\n if self.replace_whitespace:\n for key, val in self.unicode_whitespace_trans.items():\n text = text.replace(key, val)\n return text\n\n\n def _split(self, text):\n \"\"\"_split(text : string) -> [string]\n Split the text to wrap into indivisible chunks. Chunks are\n not quite the same as words; see _wrap_chunks() for full\n details. As an example, the text\n Look, goof-ball -- use the -b option!\n breaks into the following chunks:\n 'Look,', ' ', 'goof-', 'ball', ' ', '--', ' ',\n 'use', ' ', 'the', ' ', '-b', ' ', 'option!'\n if break_on_hyphens is True, or in:\n 'Look,', ' ', 'goof-ball', ' ', '--', ' ',\n 'use', ' ', 'the', ' ', '-b', ' ', option!'\n otherwise.\n \"\"\"\n if self.break_on_hyphens is True:\n chunks = self.wordsep_re.split(text)\n if \"--\" in text:\n chunks = [item \n for sublist in [self.em_dash.split(chunk) for chunk in chunks] \n for item in sublist]\n else:\n chunks = self.wordsep_simple_re.split(text)\n chunks = [c for c in chunks if c]\n return chunks\n\n def _fix_sentence_endings(self, chunks):\n \"\"\"_fix_sentence_endings(chunks : [string])\n Correct for sentence endings buried in 'chunks'. Eg. when the\n original text contains \"... foo.\\\\nBar ...\", munge_whitespace()\n and split() will convert that to [..., \"foo.\", \" \", \"Bar\", ...]\n which has one too few spaces; this method simply changes the one\n space to two.\n \"\"\"\n i = 0\n # patsearch = self.sentence_end_re.search\n while i < len(chunks)-1:\n if chunks[i+1] == \" \" and re.search(self.sentence_end_re, chunks[i]) and chunks[i][-1] in \".!?\\\"\\'\":\n chunks[i+1] = \" \"\n i += 2\n else:\n i += 1\n\n def _handle_long_word(self, reversed_chunks, cur_line, cur_len, width):\n \"\"\"_handle_long_word(chunks : [string],\n cur_line : [string],\n cur_len : int, width : int)\n Handle a chunk of text (most likely a word, not whitespace) that\n is too long to fit in any line.\n \"\"\"\n # Figure out when indent is larger than the specified width, and make\n # sure at least one character is stripped off on every pass\n if width < 1:\n space_left = 1\n else:\n space_left = width - cur_len\n\n # If we're allowed to break long words, then do so: put as much\n # of the next chunk onto the current line as will fit.\n if self.break_long_words:\n cur_line.append(reversed_chunks[-1][:space_left])\n reversed_chunks[-1] = reversed_chunks[-1][space_left:]\n\n # Otherwise, we have to preserve the long word intact. Only add\n # it to the current line if there's nothing already there --\n # that minimizes how much we violate the width constraint.\n elif not cur_line:\n cur_line.append(reversed_chunks.pop())\n\n # If we're not allowed to break long words, and there's already\n # text on the current line, do nothing. Next time through the\n # main loop of _wrap_chunks(), we'll wind up here again, but\n # cur_len will be zero, so the next line will be entirely\n # devoted to the long word that we can't handle right now.\n\n def _wrap_chunks(self, chunks):\n \"\"\"_wrap_chunks(chunks : [string]) -> [string]\n Wrap a sequence of text chunks and return a list of lines of\n length 'self.width' or less. (If 'break_long_words' is false,\n some lines may be longer than this.) Chunks correspond roughly\n to words and the whitespace between them: each chunk is\n indivisible (modulo 'break_long_words'), but a line break can\n come between any two chunks. Chunks should not have internal\n whitespace; ie. a chunk is either all whitespace or a \"word\".\n Whitespace chunks will be removed from the beginning and end of\n lines, but apart from that whitespace is preserved.\n \"\"\"\n lines = []\n if self.width <= 0:\n raise ValueError(\"invalid width %r (must be > 0)\" % self.width)\n if self.max_lines is not None:\n if self.max_lines > 1:\n indent = self.subsequent_indent\n else:\n indent = self.initial_indent\n if len(indent) + len(self.placeholder.lstrip()) > self.width:\n raise ValueError(\"placeholder too large for max width\")\n\n # Arrange in reverse order so items can be efficiently popped\n # from a stack of chucks.\n chunks.reverse()\n\n while chunks:\n\n # Start the list of chunks that will make up the current line.\n # cur_len is just the length of all the chunks in cur_line.\n cur_line = []\n cur_len = 0\n\n # Figure out which static string will prefix this line.\n if lines:\n indent = self.subsequent_indent\n else:\n indent = self.initial_indent\n\n # Maximum width for this line.\n width = self.width - len(indent)\n\n # First chunk on line is whitespace -- drop it, unless this\n # is the very beginning of the text (ie. no lines started yet).\n if self.drop_whitespace and chunks[-1].strip() == '' and lines:\n del chunks[-1]\n\n while chunks:\n l = len(chunks[-1])\n\n # Can at least squeeze this chunk onto the current line.\n if cur_len + l <= width:\n cur_line.append(chunks.pop())\n cur_len += l\n\n # Nope, this line is full.\n else:\n break\n\n # The current line is full, and the next chunk is too big to\n # fit on *any* line (not just this one).\n if chunks and len(chunks[-1]) > width:\n self._handle_long_word(chunks, cur_line, cur_len, width)\n cur_len = sum(map(len, cur_line))\n\n # If the last chunk on this line is all whitespace, drop it.\n if self.drop_whitespace and cur_line and cur_line[-1].strip() == '':\n cur_len -= len(cur_line[-1])\n del cur_line[-1]\n\n if cur_line:\n if (self.max_lines is None or\n len(lines) + 1 < self.max_lines or\n (not chunks or\n self.drop_whitespace and\n len(chunks) == 1 and\n not chunks[0].strip()) and cur_len <= width):\n # Convert current line back to a string and store it in\n # list of all lines (return value).\n lines.append(indent + ''.join(cur_line))\n else:\n while cur_line:\n if (cur_line[-1].strip() and\n cur_len + len(self.placeholder) <= width):\n cur_line.append(self.placeholder)\n lines.append(indent + ''.join(cur_line))\n break\n cur_len -= len(cur_line[-1])\n del cur_line[-1]\n else:\n if lines:\n prev_line = lines[-1].rstrip()\n if (len(prev_line) + len(self.placeholder) <=\n self.width):\n lines[-1] = prev_line + self.placeholder\n break\n lines.append(indent + self.placeholder.lstrip())\n break\n\n return lines\n\n def _split_chunks(self, text):\n text = self._munge_whitespace(text)\n return self._split(text)\n\n # -- Public interface ----------------------------------------------\n\n def wrap(self, text):\n \"\"\"wrap(text : string) -> [string]\n Reformat the single paragraph in 'text' so it fits in lines of\n no more than 'self.width' columns, and return a list of wrapped\n lines. Tabs in 'text' are expanded with string.expandtabs(),\n and all other whitespace characters (including newline) are\n converted to space.\n \"\"\"\n chunks = self._split_chunks(text)\n if self.fix_sentence_endings:\n self._fix_sentence_endings(chunks)\n return self._wrap_chunks(chunks)\n\n def fill(self, text):\n \"\"\"fill(text : string) -> string\n Reformat the single paragraph in 'text' to fit in lines of no\n more than 'self.width' columns, and return a new string\n containing the entire wrapped paragraph.\n \"\"\"\n return \"\\n\".join(self.wrap(text))\n\n\n# -- Convenience interface ---------------------------------------------\n\ndef wrap(text, width=70, **kwargs):\n \"\"\"Wrap a single paragraph of text, returning a list of wrapped lines.\n Reformat the single paragraph in 'text' so it fits in lines of no\n more than 'width' columns, and return a list of wrapped lines. By\n default, tabs in 'text' are expanded with string.expandtabs(), and\n all other whitespace characters (including newline) are converted to\n space. See TextWrapper class for available keyword args to customize\n wrapping behaviour.\n \"\"\"\n w = TextWrapper(width=width, **kwargs)\n return w.wrap(text)\n\ndef fill(text, width=70, **kwargs):\n \"\"\"Fill a single paragraph of text, returning a new string.\n Reformat the single paragraph in 'text' to fit in lines of no more\n than 'width' columns, and return a new string containing the entire\n wrapped paragraph. As with wrap(), tabs are expanded and other\n whitespace characters converted to space. See TextWrapper class for\n available keyword args to customize wrapping behaviour.\n \"\"\"\n w = TextWrapper(width=width, **kwargs)\n return w.fill(text)\n\ndef shorten(text, width, **kwargs):\n \"\"\"Collapse and truncate the given text to fit in the given width.\n The text first has its whitespace collapsed. If it then fits in\n the *width*, it is returned as is. Otherwise, as many words\n as possible are joined and then the placeholder is appended::\n >>> textwrap.shorten(\"Hello world!\", width=12)\n 'Hello world!'\n >>> textwrap.shorten(\"Hello world!\", width=11)\n 'Hello [...]'\n \"\"\"\n w = TextWrapper(width=width, max_lines=1, **kwargs)\n return w.fill(' '.join(text.strip().split()))\n\n\n# -- Loosely related functionality -------------------------------------\n\n# _whitespace_only_re = re.compile('^[ \\t]+$', re.MULTILINE)\n# _leading_whitespace_re = re.compile('(^[ \\t]*)(?:[^ \\t\\n])', re.MULTILINE)\n\ndef dedent(text):\n \"\"\"Remove any common leading whitespace from every line in `text`.\n This can be used to make triple-quoted strings line up with the left\n edge of the display, while still presenting them in the source code\n in indented form.\n Note that tabs and spaces are both treated as whitespace, but they\n are not equal: the lines \" hello\" and \"\\\\thello\" are\n considered to have no common leading whitespace.\n Entirely blank lines are normalized to a newline character.\n \"\"\"\n # Look for the longest leading string of spaces and tabs common to\n # all lines.\n margin = None\n\n indents = re.findall(r'(^[ \\t]*)(?:[^ \\t\\n])',text, re.MULTILINE)\n for indent in indents:\n if margin is None:\n margin = indent\n\n # Current line more deeply indented than previous winner:\n # no change (previous winner is still on top).\n elif indent.startswith(margin):\n pass\n\n # Current line consistent with and no deeper than previous winner:\n # it's the new winner.\n elif margin.startswith(indent):\n margin = indent\n\n # Find the largest common whitespace between current line and previous\n # winner.\n else:\n for i, (x, y) in enumerate(zip(margin, indent)):\n if x != y:\n margin = margin[:i]\n break\n # sanity check (testing/debugging only)\n if 0 and margin:\n for line in text.split(\"\\n\"):\n assert not line or line.startswith(margin), \\\n \"line = %r, margin = %r\" % (line, margin)\n\n if margin:\n lines = [line[len(margin):] \n if line.strip()\n else line.strip() \n for line in text.split(\"\\n\")]\n text = \"\\n\".join(lines)\n return text\n\n\ndef indent(text, prefix, predicate=None):\n \"\"\"Adds 'prefix' to the beginning of selected lines in 'text'.\n If 'predicate' is provided, 'prefix' will only be added to the lines\n where 'predicate(line)' is True. If 'predicate' is not provided,\n it will default to adding 'prefix' to all non-empty lines that do not\n consist solely of whitespace characters.\n \"\"\"\n if predicate is None:\n def predicate(line):\n return line.strip()\n\n def prefixed_lines():\n for line in text.splitlines(True):\n yield (prefix + line if predicate(line) else line)\n return ''.join(prefixed_lines())\n\n\nif __name__ == \"__main__\":\n #print dedent(\"\\tfoo\\n\\tbar\")\n #print dedent(\" \\thello there\\n \\t how are you?\")\n print(dedent(\"Hello there.\\n This is indented.\"))","src/lib/this.py":'import _sk_fail; _sk_fail._("this")\n',"src/lib/threading.py":'import _sk_fail; _sk_fail._("threading")\n',"src/lib/timeit.py":'import _sk_fail; _sk_fail._("timeit")\n',"src/lib/toaiff.py":'import _sk_fail; _sk_fail._("toaiff")\n',"src/lib/trace.py":'import _sk_fail; _sk_fail._("trace")\n',"src/lib/traceback.py":'import _sk_fail; _sk_fail._("traceback")\n',"src/lib/tty.py":'import _sk_fail; _sk_fail._("tty")\n',"src/lib/types.py":'"""\nThis file was modified from CPython.\nCopyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,\n2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved\n"""\n"""Define names for all type symbols known in the standard interpreter.\nTypes that are part of optional modules (e.g. array) are not listed.\n"""\nimport sys\n\n# Iterators in Python aren\'t a matter of type but of protocol. A large\n# and changing number of builtin types implement *some* flavor of\n# iterator. Don\'t check the type! Use hasattr to check for both\n# "__iter__" and "next" attributes instead.\nMappingProxyType = type(type.__dict__)\nWrapperDescriptorType = type(object.__init__)\nMethodWrapperType = type(object().__str__)\nMethodDescriptorType = type(str.join)\nClassMethodDescriptorType = type(dict.__dict__[\'fromkeys\'])\n\nNoneType = type(None)\nTypeType = type\nObjectType = object\nIntType = int\ntry:\n LongType = long\nexcept: pass\nFloatType = float\nBooleanType = bool\ntry:\n ComplexType = complex\nexcept NameError:\n pass\nStringType = str\n\n# StringTypes is already outdated. Instead of writing "type(x) in\n# types.StringTypes", you should use "isinstance(x, basestring)". But\n# we keep around for compatibility with Python 2.2.\ntry:\n UnicodeType = unicode\n StringTypes = (StringType, UnicodeType)\nexcept NameError:\n StringTypes = (StringType,)\n\nBufferType = buffer\n\nTupleType = tuple\nListType = list\nDictType = DictionaryType = dict\n\ndef _f(): pass\nFunctionType = type(_f)\nLambdaType = type(lambda: None) # Same as FunctionType\n#CodeType = type(_f.func_code)\n\ndef _g():\n yield 1\nGeneratorType = type(_g())\n\nclass _C:\n def _m(self): pass\nClassType = type(_C)\nUnboundMethodType = type(_C._m) # Same as MethodType\n_x = _C()\nInstanceType = type(_x)\nMethodType = type(_x._m)\nBuiltinFunctionType = type(len)\nBuiltinMethodType = type([].append) # Same as BuiltinFunctionType\n\nModuleType = type(sys)\nFileType = file\ntry:\n XRangeType = xrange\nexcept NameError:\n pass\n\n# try:\n# raise TypeError\n# except TypeError:\n# tb = sys.exc_info()[2]\n# TracebackType = type(tb)\n# FrameType = type(tb.tb_frame)\n# del tb\n\nSliceType = slice\nEllipsisType = type(Ellipsis)\n\n# DictProxyType = type(TypeType.__dict__)\nNotImplementedType = type(NotImplemented)\n\n# For Jython, the following two types are identical\n# GetSetDescriptorType = type(FunctionType.func_code)\n# MemberDescriptorType = type(FunctionType.func_globals)\n\ndel sys, _f, _g, _C, _x # Not for export\n__all__ = list(n for n in globals() if n[:1] != \'_\')\n\nGenericAlias = type(type[int])',"src/lib/unittest/gui.py":"import document\nfrom unittest import TestCase\n\nclass TestCaseGui(TestCase):\n def __init__(self):\n TestCase.__init__(self)\n self.divid = document.currentDiv()\n self.mydiv = document.getElementById(self.divid)\n res = document.getElementById(self.divid+'_unit_results')\n if res:\n self.resdiv = res\n res.innerHTML = ''\n else:\n self.resdiv = document.createElement('div')\n self.resdiv.setAttribute('id',self.divid+'_unit_results')\n self.resdiv.setAttribute('class','unittest-results')\n self.mydiv.appendChild(self.resdiv)\n\n\n def main(self):\n t = document.createElement('table')\n self.resTable = t\n self.resdiv.appendChild(self.resTable)\n\n headers = ['Result','Actual Value','Expected Value','Notes']\n row = document.createElement('tr')\n for item in headers:\n head = document.createElement('th')\n head.setAttribute('class','ac-feedback')\n head.innerHTML = item\n head.setCSS('text-align','center')\n row.appendChild(head)\n self.resTable.appendChild(row)\n\n for func in self.tlist:\n try:\n self.setUp()\n func()\n self.tearDown()\n except Exception as e:\n self.appendResult('Error', None, None, e)\n self.numFailed += 1\n self.showSummary()\n\n def appendResult(self,res,actual,expected,param):\n trimActual = False\n if len(str(actual)) > 15:\n trimActual = True\n actualType = type(actual)\n trimExpected = False\n if len(str(expected)) > 15:\n trimExpected = True\n expectedType = type(expected)\n row = document.createElement('tr')\n err = False\n if res == 'Error':\n err = True\n msg = 'Error: %s' % param\n errorData = document.createElement('td')\n errorData.setAttribute('class','ac-feedback')\n errorData.innerHTML = 'ERROR'\n errorData.setCSS('background-color','#de8e96')\n errorData.setCSS('text-align','center')\n row.appendChild(errorData)\n elif res:\n passed = document.createElement('td')\n passed.setAttribute('class','ac-feedback')\n passed.innerHTML = 'Pass'\n passed.setCSS('background-color','#83d382')\n passed.setCSS('text-align','center')\n row.appendChild(passed)\n self.numPassed += 1\n else:\n fail = document.createElement('td')\n fail.setAttribute('class','ac-feedback')\n fail.innerHTML = 'Fail'\n fail.setCSS('background-color','#de8e96')\n fail.setCSS('text-align','center')\n row.appendChild(fail)\n self.numFailed += 1\n\n\n act = document.createElement('td')\n act.setAttribute('class','ac-feedback')\n if trimActual:\n actHTML = str(actual)[:5] + \"...\" + str(actual)[-5:]\n if actualType == str:\n actHTML = repr(actHTML)\n act.innerHTML = actHTML\n else:\n act.innerHTML = repr(actual)\n act.setCSS('text-align','center')\n row.appendChild(act)\n\n expect = document.createElement('td')\n expect.setAttribute('class','ac-feedback')\n\n if trimExpected:\n expectedHTML = str(expected)[:5] + \"...\" + str(expected)[-5:]\n if expectedType == str:\n expectedHTML = repr(expectedHTML)\n expect.innerHTML = expectedHTML\n else:\n expect.innerHTML = repr(expected)\n expect.setCSS('text-align','center')\n row.appendChild(expect)\n inp = document.createElement('td')\n inp.setAttribute('class','ac-feedback')\n\n if err:\n inp.innerHTML = msg\n else:\n inp.innerHTML = param\n inp.setCSS('text-align','center')\n row.appendChild(inp)\n self.resTable.appendChild(row)\n\n\n def showSummary(self):\n pct = self.numPassed / (self.numPassed+self.numFailed) * 100\n pTag = document.createElement('p')\n pTag.innerHTML = \"You passed: \" + str(pct) + \"% of the tests\"\n self.resdiv.appendChild(pTag)\n","src/lib/unittest/__init__.py":'__author__ = \'bmiller\'\n\'\'\'\nThis is the start of something that behaves like\nthe unittest module from cpython.\n\n\'\'\'\nimport re\n\nclass _AssertRaisesContext(object):\n """A context manager used to implement TestCase.assertRaises* methods."""\n def __init__(self, expected, test_case):\n self.test_case = test_case\n self.expected = expected\n self.exception = None\n\n def _is_subtype(self, expected, basetype):\n if isinstance(expected, tuple):\n return all(self._is_subtype(e, basetype) for e in expected)\n return isinstance(expected, type) and issubclass(expected, basetype)\n\n def handle(self, args, kwargs):\n """\n If args is empty, assertRaises is being used as a\n context manager, so return self.\n If args is not empty, call a callable passing positional and keyword\n arguments.\n """\n try:\n if not self._is_subtype(self.expected, BaseException):\n raise TypeError(\'assertRaises() arg 1 must be an exception type or tuple of exception types\')\n if not args:\n return self\n\n callable_obj = args[0]\n args = args[1:]\n with self:\n callable_obj(*args, **kwargs) \n\n finally:\n # bpo-23890: manually break a reference cycle\n self = None\n\n def __enter__(self):\n return self\n\n def __exit__(self, exc_type, exc_value, tb):\n res = True\n feedback = ""\n self.exception = exc_value\n try:\n act_exc = exc_type.__name__\n except AttributeError:\n act_exc = str(exc_type)\n try:\n exp_exc = self.expected.__name__\n except AttributeError:\n exp_exc = str(self.expected)\n\n if exc_type is None:\n res = False\n feedback = "{} not raised".format(exp_exc)\n elif not issubclass(exc_type, self.expected):\n res = False\n feedback = "Expected {} but got {}".format(exp_exc, act_exc)\n\n self.test_case.appendResult(res, act_exc, exp_exc, feedback)\n return True\n\n\nclass TestCase(object):\n def __init__(self):\n self.numPassed = 0\n self.numFailed = 0\n self.assertPassed = 0\n self.assertFailed = 0\n self.verbosity = 1\n self.tlist = []\n testNames = {}\n for name in dir(self):\n if name[:4] == \'test\' and name not in testNames:\n self.tlist.append(getattr(self,name))\n testNames[name]=True\n\n def setUp(self):\n pass\n\n def tearDown(self):\n pass\n \n def cleanName(self,funcName):\n return funcName.__func__.__name__\n\n def main(self):\n\n for func in self.tlist:\n if self.verbosity > 1:\n print(\'Running %s\' % self.cleanName(func))\n try:\n self.setUp()\n self.assertPassed = 0\n self.assertFailed = 0\n func()\n self.tearDown()\n if self.assertFailed == 0:\n self.numPassed += 1\n else:\n self.numFailed += 1\n print(\'Tests failed in %s \' % self.cleanName(func))\n except Exception as e:\n self.assertFailed += 1\n self.numFailed += 1\n print(\'Test threw exception in %s (%s)\' % (self.cleanName(func), e))\n self.showSummary()\n\n def assertEqual(self, actual, expected, feedback=""):\n res = actual==expected\n if not res and feedback == "":\n feedback = "Expected %s to equal %s" % (str(actual),str(expected))\n self.appendResult(res, actual ,expected, feedback)\n\n def assertNotEqual(self, actual, expected, feedback=""):\n res = actual != expected\n if not res and feedback == "":\n feedback = "Expected %s to not equal %s" % (str(actual),str(expected))\n self.appendResult(res, actual, expected, feedback)\n\n def assertTrue(self,x, feedback=""):\n res = bool(x) is True\n if not res and feedback == "":\n feedback = "Expected %s to be True" % (str(x))\n self.appendResult(res, x, True, feedback)\n\n def assertFalse(self,x, feedback=""):\n res = not bool(x)\n if not res and feedback == "":\n feedback = "Expected %s to be False" % (str(x))\n self.appendResult(res, x, False, feedback)\n\n def assertIs(self,a,b, feedback=""):\n res = a is b\n if not res and feedback == "":\n feedback = "Expected %s to be the same object as %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertIsNot(self,a,b, feedback=""):\n res = a is not b\n if not res and feedback == "":\n feedback = "Expected %s to not be the same object as %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertIsNone(self,x, feedback=""):\n res = x is None\n if not res and feedback == "":\n feedback = "Expected %s to be None" % (str(x))\n self.appendResult(res, x, None, feedback)\n\n def assertIsNotNone(self,x, feedback=""):\n res = x is not None\n if not res and feedback == "":\n feedback = "Expected %s to not be None" % (str(x))\n self.appendResult(res, x, None, feedback)\n\n def assertIn(self, a, b, feedback=""):\n res = a in b\n if not res and feedback == "":\n feedback = "Expected %s to be in %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertNotIn(self, a, b, feedback=""):\n res = a not in b\n if not res and feedback == "":\n feedback = "Expected %s to not be in %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertIsInstance(self,a,b, feedback=""):\n res = isinstance(a,b)\n if not res and feedback == "":\n feedback = "Expected %s to be an instance of %s" % (str(a), str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertNotIsInstance(self,a,b, feedback=""):\n res = not isinstance(a,b)\n if not res and feedback == "":\n feedback = "Expected %s to not be an instance of %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertRegex(self, text, expected_regex, feedback=""):\n """Fail the test unless the text matches the regular expression."""\n if isinstance(expected_regex, (str, )): #bytes\n assert expected_regex, "expected_regex must not be empty."\n expected_regex = re.compile(expected_regex)\n if not expected_regex.search(text):\n res = False\n if feedback == "":\n feedback = "Regex didn\'t match: %r not found in %r" % (\n repr(expected_regex), text)\n else:\n res = True\n self.appendResult(res, text, expected_regex, feedback)\n\n def assertNotRegex(self, text, unexpected_regex, feedback=""):\n """Fail the test if the text matches the regular expression."""\n if isinstance(unexpected_regex, (str, )): # bytes\n unexpected_regex = re.compile(unexpected_regex)\n match = unexpected_regex.search(text)\n if match:\n feedback = \'Regex matched: %r matches %r in %r\' % (\n text[match.start() : match.end()],\n repr(unexpected_regex),\n text)\n # _formatMessage ensures the longMessage option is respected\n self.appendResult(not bool(match), text, unexpected_regex, feedback)\n\n def assertAlmostEqual(self, a, b, places=7, feedback="", delta=None):\n\n if delta is not None:\n res = abs(a-b) <= delta\n else:\n if places is None:\n places = 7\n res = round(a-b, places) == 0\n \n if not res and feedback == "":\n feedback = "Expected %s to equal %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertNotAlmostEqual(self, a, b, places=7, feedback="", delta=None):\n\n if delta is not None:\n res = not (a == b) and abs(a - b) > delta\n else:\n if places is None:\n places = 7\n\n res = round(a-b, places) != 0\n\n if not res and feedback == "":\n feedback = "Expected %s to not equal %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertGreater(self,a,b, feedback=""):\n res = a > b\n if not res and feedback == "":\n feedback = "Expected %s to be greater than %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertGreaterEqual(self,a,b, feedback=""):\n res = a >= b\n if not res and feedback == "":\n feedback = "Expected %s to be >= %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertLess(self, a, b, feedback=""):\n res = a < b\n if not res and feedback == "":\n feedback = "Expected %s to be less than %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def assertLessEqual(self,a,b, feedback=""):\n res = a <= b\n if not res and feedback == "":\n feedback = "Expected %s to be <= %s" % (str(a),str(b))\n self.appendResult(res, a, b, feedback)\n\n def appendResult(self,res,actual,expected,feedback):\n if res:\n msg = \'Pass\'\n self.assertPassed += 1\n else:\n msg = \'Fail: \' + feedback\n print(msg)\n self.assertFailed += 1\n\n def assertRaises(self, expected_exception, *args, **kwargs):\n context = _AssertRaisesContext(expected_exception, self)\n try:\n return context.handle(args, kwargs)\n finally:\n # bpo-23890: manually break a reference cycle\n context = None\n\n def fail(self, msg=None):\n if msg is None:\n msg = \'Fail\'\n else:\n msg = \'Fail: \' + msg\n print(msg)\n self.assertFailed += 1\n\n def showSummary(self):\n # don\'t divde by zero\n # pct = self.numPassed / (self.numPassed+self.numFailed) * 100\n print("Ran %d tests, passed: %d failed: %d\\n" % (self.numPassed+self.numFailed,\n self.numPassed, self.numFailed))\n\n\n\ndef main(verbosity=1):\n glob = globals() # globals() still needs work\n for name in glob:\n if type(glob[name]) == type and issubclass(glob[name], TestCase):\n try:\n tc = glob[name]()\n tc.verbosity = verbosity\n tc.main()\n except:\n print("Uncaught Error in: ", name)\n',"src/lib/urllib2.py":'import _sk_fail; _sk_fail._("urllib2")\n',"src/lib/urlparse.py":'import _sk_fail; _sk_fail._("urlparse")\n',"src/lib/user.py":'import _sk_fail; _sk_fail._("user")\n',"src/lib/UserDict.py":'import _sk_fail; _sk_fail._("UserDict")\n',"src/lib/UserList.py":'import _sk_fail; _sk_fail._("UserList")\n',"src/lib/UserString.py":'import _sk_fail; _sk_fail._("UserString")\n',"src/lib/uu.py":'import _sk_fail; _sk_fail._("uu")\n',"src/lib/warnings.py":'import _sk_fail; _sk_fail._("warnings")\n',"src/lib/wave.py":'import _sk_fail; _sk_fail._("wave")\n',"src/lib/weakref.py":'import _sk_fail; _sk_fail._("weakref")\n',"src/lib/whichdb.py":'import _sk_fail; _sk_fail._("whichdb")\n',"src/lib/wsgiref/__init__.py":'import _sk_fail; _sk_fail._("wsgiref")\n',"src/lib/xdrlib.py":'import _sk_fail; _sk_fail._("xdrlib")\n',"src/lib/xml/dom/__init__.py":'import _sk_fail; _sk_fail._("dom")\n',"src/lib/xml/etree/__init__.py":'import _sk_fail; _sk_fail._("etree")\n',"src/lib/xml/parsers/__init__.py":'import _sk_fail; _sk_fail._("parsers")\n',"src/lib/xml/sax/__init__.py":'import _sk_fail; _sk_fail._("sax")\n',"src/lib/xml/__init__.py":'import _sk_fail; _sk_fail._("xml")\n',"src/lib/xmllib.py":'import _sk_fail; _sk_fail._("xmllib")\n',"src/lib/xmlrpclib.py":'import _sk_fail; _sk_fail._("xmlrpclib")\n',"src/lib/zipfile.py":'import _sk_fail; _sk_fail._("zipfile")\n',"src/lib/_abcoll.py":'import _sk_fail; _sk_fail._("_abcoll")\n',"src/lib/_LWPCookieJar.py":'import _sk_fail; _sk_fail._("_LWPCookieJar")\n',"src/lib/_MozillaCookieJar.py":'import _sk_fail; _sk_fail._("_MozillaCookieJar")\n',"src/lib/_sk_fail.py":'class NotImplementedImportError(ImportError, NotImplementedError): pass\n\ndef _(name):\n msg = "{} is not yet implemented in Skulpt".format(name)\n raise NotImplementedImportError(msg, name=name)\n',"src/lib/_threading_local.py":'import _sk_fail; _sk_fail._("_threading_local")\n',"src/lib/__future__.py":'import _sk_fail;_sk_fail._("__future__")\n',"src/lib/__phello__.foo.py":'import _sk_fail; _sk_fail._("__phello__.foo")\n',"src/builtin/sys.js":'var $builtinmodule=function(i){var t,n={},e=[],u=Sk.getSysArgv();for(t=0;tnew Sk.builtin.str("utf-8"))),n.getExecutionLimit=new Sk.builtin.func((function(){return null===Sk.execLimit?Sk.builtin.none.none$:new Sk.builtin.int_(Sk.execLimit)})),n.setExecutionLimit=new Sk.builtin.func((function(i){if(null===Sk.execLimit)throw new Sk.builtin.NotImplementedError("Execution limiting is not enabled");void 0!==i&&(Sk.execLimit=Sk.builtin.asnum$(i))})),n.resetTimeout=new Sk.builtin.func((function(){Sk.execStart=new Date})),n.getYieldLimit=new Sk.builtin.func((function(){return null===Sk.yieldLimit?Sk.builtin.none.none$:new Sk.builtin.int_(Sk.yieldLimit)})),n.setYieldLimit=new Sk.builtin.func((function(i){if(null===Sk.yieldLimit)throw new Sk.builtin.NotImplementedError("Yielding is not enabled");void 0!==i&&(Sk.yieldLimit=Sk.builtin.asnum$(i))})),n.debug=new Sk.builtin.func((function(){return Sk.builtin.none.none$}));const o=Sk.builtin.make_structseq("sys","float_info",{max:"DBL_MAX -- maximum representable finite float",max_exp:"DBL_MAX_EXP -- maximum int e such that radix**(e-1) is representable",max_10_exp:"DBL_MAX_10_EXP -- maximum int e such that 10**e is representable",min:"DBL_MIN -- Minimum positive normalized float",min_exp:"DBL_MIN_EXP -- minimum int e such that radix**(e-1) is a normalized float",min_10_exp:"DBL_MIN_10_EXP -- minimum int e such that 10**e is a normalized",dig:"DBL_DIG -- digits",mant_dig:"DBL_MANT_DIG -- mantissa digits",epsilon:"DBL_EPSILON -- Difference between 1 and the next representable float",radix:"FLT_RADIX -- radix of exponent",rounds:"FLT_ROUNDS -- rounding mode"});n.float_info=new o([Number.MAX_VALUE,Math.floor(Math.log2(Number.MAX_VALUE)),Math.floor(Math.log10(Number.MAX_VALUE)),Number.MIN_VALUE,Math.ceil(Math.log2(Number.MIN_VALUE)),Math.ceil(Math.log10(Number.MIN_VALUE)),15,Math.log2(Number.MAX_SAFE_INTEGER),Number.EPSILON,2,1].map((i=>Sk.ffi.remapToPy(i))));const s=Sk.builtin.make_structseq("sys","int_info",{bits_per_digit:"size of a digit in bits",sizeof_digit:"size in bytes of the C type used to represent a digit"});n.int_info=new s([30,4].map((i=>Sk.ffi.remapToPy(i))));const l=Sk.builtin.make_structseq("sys","hash_info",{width:"width of the type used for hashing, in bits",modulus:"prime number giving the modulus on which the hash function is based",inf:"value to be used for hash of a positive infinity",nan:"value to be used for hash of a nan",imag:"multiplier used for the imaginary part of a complex number",algorithm:"name of the algorithm for hashing of str, bytes and memoryviews",hash_bits:"internal output size of hash algorithm",seed_bits:"seed size of hash algorithm",cutoff:"small string optimization cutoff"});return n.hash_info=new l([32,536870911,314159,0,1000003,"siphash24",32,128,0].map((i=>Sk.ffi.remapToPy(i)))),n.__stdout__=new Sk.builtin.file(new Sk.builtin.str("/dev/stdout"),new Sk.builtin.str("w")),n.__stdin__=new Sk.builtin.file(new Sk.builtin.str("/dev/stdin"),new Sk.builtin.str("r")),n.stdout=n.__stdout__,n.stdin=n.__stdin__,n};',"src/lib/array.js":'function $builtinmodule(e){var n={},t=["c","b","B","u","h","H","i","I","l","L","f","d"];return n.__name__=new Sk.builtin.str("array"),n.array=Sk.misceval.buildClass(n,(function(e,n){n.__init__=new Sk.builtin.func((function(e,n,i){if(Sk.builtin.pyCheckArgsLen("__init__",arguments.length,2,3),-1==t.indexOf(Sk.ffi.remapToJs(n)))throw new Sk.builtin.ValueError("bad typecode (must be c, b, B, u, h, H, i, I, l, L, f or d)");if(i&&!Sk.builtin.checkIterable(i))throw new Sk.builtin.TypeError("iteration over non-sequence");if(e.$d.mp$ass_subscript(new Sk.builtin.str("typecode"),n),e.$d.mp$ass_subscript(new Sk.builtin.str("__module__"),new Sk.builtin.str("array")),e.typecode=n,void 0===i)e.internalIterable=new Sk.builtin.list;else if(i instanceof Sk.builtin.list)e.internalIterable=i;else{e.internalIterable=new Sk.builtin.list;for(let n=Sk.abstr.iter(i),t=n.tp$iternext();void 0!==t;t=n.tp$iternext())Sk.misceval.callsimArray(e.internalIterable.append,[e.internalIterable,t])}})),n.__repr__=new Sk.builtin.func((function(e){var n=Sk.ffi.remapToJs(e.typecode),t="";return Sk.ffi.remapToJs(e.internalIterable).length&&(t="c"==Sk.ffi.remapToJs(e.typecode)?", \'"+Sk.ffi.remapToJs(e.internalIterable).join("")+"\'":", "+Sk.ffi.remapToJs(Sk.misceval.callsimArray(e.internalIterable.__repr__,[e.internalIterable]))),new Sk.builtin.str("array(\'"+n+"\'"+t+")")})),n.__str__=n.__repr__,n.__getattribute__=new Sk.builtin.func((function(e,n){return e.tp$getattr(n)})),n.append=new Sk.builtin.func((function(e,n){return Sk.misceval.callsimArray(e.internalIterable.append,[e.internalIterable,n]),Sk.builtin.none.none$})),n.extend=new Sk.builtin.func((function(e,n){if(Sk.builtin.pyCheckArgsLen("__init__",arguments.length,2,2),!Sk.builtin.checkIterable(n))throw new Sk.builtin.TypeError("iteration over non-sequence");for(let t=Sk.abstr.iter(n),i=t.tp$iternext();void 0!==i;i=t.tp$iternext())Sk.misceval.callsimArray(e.internalIterable.append,[e.internalIterable,i])}))}),"array",[]),n}',"src/lib/calendar.js":'function $builtinmodule(e){const t={},{misceval:{chain:n},importModule:r}=Sk,importOrSuspend=e=>r(e,!1,!0);return n(importOrSuspend("datetime"),(e=>(t.datetime=e,importOrSuspend("itertools"))),(e=>(t.iterRepeat=e.$d.repeat,t.iterChain=e.$d.chain,calendarModule(t))))}function calendarModule(e){const{abstr:{setUpModuleMethods:t,numberBinOp:n,iter:r,objectGetItem:o},builtin:{bool:s,bool:{true$:m,false$:d},func:l,int_:i,list:c,none:{none$:f},str:h,slice:w,tuple:y,range:u,max:_,min:g,property:k,print:p,enumerate:$,ValueError:b},ffi:{remapToPy:M},misceval:{isTrue:T,iterator:C,arrayFromIterable:O,buildClass:L,richCompareBool:x,asIndexOrThrow:F,objectRepr:I,callsimArray:A},global:v,global:{strftime:E}}=Sk,S=new i(0),H=new i(1),D=new i(2),N=new i(3),R=new i(6),j=new i(7),J=new i(9),P=new i(12),Y=new i(13),U=new i(24),z=new i(60),le=(e,t)=>x(e,t,"LtE"),eq=(e,t)=>x(e,t,"Eq"),mod=(e,t)=>n(e,t,"Mod"),add=(e,t)=>n(e,t,"Add"),sub=(e,t)=>n(e,t,"Sub"),mul=(e,t)=>n(e,t,"Mult"),inc=e=>add(e,H),dec=e=>sub(e,H),mod7=e=>mod(e,j),getA=(e,t)=>e.tp$getattr(new h(t)),callA=(e,t,...n)=>A(e.tp$getattr(new h(t)),n);function*iterJs(e){const t=r(e);let n;for(;n=t.tp$iternext();)yield n}function iterFn(e,t){return e=r(e),new C((()=>{const n=e.tp$iternext();return n&&t(n)}),!0)}function makePyMethod(e,t,{args:n,name:r,doc:o,defaults:s}){t.co_varnames=["self",...n||[]],t.co_docstring=o?new h(o):f,s&&(t.$defaults=s),t.co_name=new h(r),t.co_qualname=new h(e+"."+r);const m=new l(t);return m.$module=Q.__name__,m}const{datetime:B,iterRepeat:W,iterChain:q}=e;let{MINYEAR:G,MAXYEAR:X,date:V}=B.$d;const K=getA(h,"center"),pyCenter=(e,t)=>A(K,[e,t]),pyRStrip=e=>new h(e.toString().trimRight());G=G.valueOf(),X=X.valueOf();const Q={__name__:new h("calendar"),__all__:M(["IllegalMonthError","IllegalWeekdayError","setfirstweekday","firstweekday","isleap","leapdays","weekday","monthrange","monthcalendar","prmonth","month","prcal","calendar","timegm","month_name","month_abbr","day_name","day_abbr","Calendar","TextCalendar","HTMLCalendar","LocaleTextCalendar","LocaleHTMLCalendar","weekheader"])};function makeErr(e,t){return L(Q,((e,n)=>{n.__init__=new l((function __init__(e,t){e.$attr=t})),n.__str__=new l((function __str__(e){return new h(t.replace("$",I(e.$attr)))}))}),e,[b])}const Z=makeErr("IllegalMonthError","bad month $; must be 1-12"),ee=makeErr("IllegalWeekdayError","bad weekday number $; must be 0 (Monday) to 6 (Sunday)"),te=1,ae=2,ne=[0,31,28,31,30,31,30,31,31,30,31,30,31];function mkLocalizedCls(e,t){t.__init__=new l((function __init__(e,t){e.format=t})),t.__getitem__=new l((function __getitem__(t,n){const r=o(e,n);if(n instanceof w){const e=[];for(const n of r.valueOf())e.push(A(n,[t.format]));return new c(e)}return A(r,[t.format])}));const n=new i(e.valueOf().length);t.__len__=new l((function __len__(e){return n}))}const re=new h("strftime"),oe=L(Q,((e,t)=>{let n=[new l((e=>h.$empty))];for(let r=0;r<12;r++){const e=new V(2001,r+1,1);n.push(e.tp$getattr(re))}n=new c(n),t._months=n,mkLocalizedCls(n,t)}),"_localized_month"),se=L(Q,((e,t)=>{let n=[];for(let r=0;r<7;r++){const e=new V(2001,1,r+1);n.push(e.tp$getattr(re))}n=new c(n),t._days=n,mkLocalizedCls(n,t)}),"_localized_day"),me=A(se,[new h("%A")]),de=A(se,[new h("%a")]),ie=A(oe,[new h("%B")]),ce=A(oe,[new h("%b")]),[fe,he,we,ye,ue,_e,ge]=[0,1,2,3,4,5,6];function isleap(e){return(e=F(e))%4==0&&(e%100!=0||e%400==0)}function weekday(e,t,n){e=F(e),G<=e&&e<=X||(e=2e3+e%400);const r=A(V,[new i(e),t,n]);return callA(V,"weekday",r)}function monthrange(e,t){if(!le(H,t)||!le(t,P))throw A(Z,[t]);const n=weekday(e,t,H);t=F(t);const r=ne[t]+Number(t===ae&&isleap(e));return[n,new i(r)]}function iterweekdays(e){return iterFn(A(u,[e.fwd,add(e.fwd,j)]),mod7)}function itermonthdates(e,t,n){return iterFn(itermonthdays3(e,t,n),(e=>A(V,e.valueOf())))}function itermonthdays(e,t,n){const[r,o]=monthrange(t,n),s=mod7(sub(r,e.fwd)),m=A(W,[S,s]),d=A(u,[H,inc(o)]),l=mod7(sub(e.fwd,add(r,o))),i=A(W,[S,l]);return A(q,[m,d,i])}function itermonthdays2(e,t,n){return iterFn(A($,[itermonthdays(e,t,n),e.fwd]),(e=>{const[t,n]=e.valueOf();return new y([n,mod7(t)])}))}function itermonthdays3(e,t,n){const ymdIter=(e,t,n)=>iterFn(n,(n=>new y([e,t,n]))),[r,o]=monthrange(t,n),s=mod7(sub(r,e.fwd)),m=mod7(sub(e.fwd,add(r,o))),[d,l]=function _prevmonth(e,t){return eq(t,H)?[dec(e),P]:[e,dec(t)]}(t,n),c=inc(function _monthlen(e,t){return t=F(t),new i(ne[t]+Number(t===ae&&isleap(e)))}(d,l)),f=A(u,[sub(c,s),c]),h=A(u,[H,inc(o)]),[w,_]=function _nextmonth(e,t){return eq(t,P)?[inc(e),H]:[e,inc(t)]}(t,n),g=A(u,[H,inc(m)]);return A(q,[ymdIter(d,l,f),ymdIter(t,n,h),ymdIter(w,_,g)])}function itermonthdays4(e,t,n){const r=itermonthdays3(e,t,n);let o=0;return iterFn(r,(t=>new y([...t.valueOf(),mod7(add(e.fwd,new i(o++)))])))}function _monthIter(e,t,n,r){const o=O(e(t,n,r)),s=[];for(let m=0;m{const n=makePyMethod.bind(null,"Calendar"),r=["firstweekday"],o=["year","month"],s=["year","width"],m={__init__:n((function __init__(e,t){return Object.defineProperty(e,"fwd",{get(){return mod7(this._fwd)},set(e){return this._fwd=e,!0}}),e.fwd=t,f}),{name:"__init__",args:r,defaults:[S]}),getfirstweekday:n((function getfirstweekday(e){return e.fwd}),{name:"getfirstweekday"}),setfirstweekday:n((function setfirstweekday(e,t){return e.fwd=t,f}),{name:"setfirstweekday",args:r}),iterweekdays:n(iterweekdays,{name:"iterweekdays"}),itermonthdates:n(itermonthdates,{name:"itermonthdates",args:o}),itermonthdays:n(itermonthdays,{name:"itermonthdays",args:o}),itermonthdays2:n(itermonthdays2,{name:"itermonthdays2",args:o}),itermonthdays3:n(itermonthdays3,{name:"itermonthdays3",args:o}),itermonthdays4:n(itermonthdays4,{name:"itermonthdays4",args:o}),monthdatescalendar:n(monthdatescalendar,{name:"monthdatescalendar",args:o}),monthdays2calendar:n(monthdays2calendar,{name:"monthdays2calendar",args:o}),monthdayscalendar:n(monthdayscalendar,{name:"monthdayscalendar",args:o}),yeardatescalendar:n(yeardatescalendar,{name:"yeardatescalendar",args:s,defaults:[N]}),yeardays2calendar:n(yeardays2calendar,{name:"yeardays2calendar",args:s,defaults:[N]}),yeardayscalendar:n(yeardayscalendar,{name:"yeardayscalendar",args:s,defaults:[N]})};m.firstweekday=new k(m.getfirstweekday,m.setfirstweekday),Object.assign(t,m)}),"Calendar");function doTextFormatweekday(e,t,n){let r;return r=x(n,J,"GtE")?me:de,pyCenter(o(o(r,t),new w(f,n)),n)}function doTextFormatmonthname(e,t,n,r,s=!0){let m=o(ie,n);return T(s)&&(m=mod(new h("%s %r"),new y([m,t]))),pyCenter(m,r)}const pe=L(Q,((e,t)=>{const txtPrint=e=>p([e],["end",h.$empty]);const n=doTextFormatweekday;function formatweekheader(e,t){const n=[];for(const r of iterJs(iterweekdays(e)))n.push(callA(e,"formatweekday",r,t).toString());return new h(n.join(" "))}const r=doTextFormatmonthname;const o=makePyMethod.bind(null,"TextCalendar"),s={prweek:o((function prweek(e,t,n){txtPrint(callA(e,"formatweek",t,n))}),{name:"prweek",args:["theweek","width"]}),formatday:o((function formatday(e,t,n,r){let o;return o=eq(t,S)?h.$empty:mod(new h("%2i"),t),pyCenter(o,r)}),{name:"formatday",args:["day","weekday","width"]}),formatweek:o((function formatweek(e,t,n){const r=[];for(const o of iterJs(t)){const[t,s]=o.valueOf();r.push(callA(e,"formatday",t,s,n).toString())}return new h(r.join(" "))}),{name:"formatweek",args:["theweek","width"]}),formatweekday:o(n,{name:"formatweekday",args:["day","width"]}),formatweekheader:o(formatweekheader,{name:"formatweekheader",args:["width"]}),formatmonthname:o(r,{name:"formatmonthname",args:["theyear","themonth","width","withyear"],defaults:[m]}),prmonth:o((function prmonth(e,t,n,r,o){txtPrint(callA(e,"formatmonth",t,n,r,o))}),{name:"prmonth",args:["theyear","themonth","w","l"],defaults:[S,S]}),formatmonth:o((function formatmonth(e,t,n,r,o){const addNewLines=e=>new h(e+"\\n".repeat(o.valueOf()));r=_([D,r]),o=_([H,o]);let s=callA(e,"formatmonthname",t,n,dec(mul(j,inc(r))),!0);s=pyRStrip(s),s=addNewLines(s),s=add(s,pyRStrip(callA(e,"formatweekheader",r))),s=addNewLines(s);for(const m of iterJs(monthdays2calendar(e,t,n)))s=add(s,pyRStrip(callA(e,"formatweek",m,r))),s=addNewLines(s);return s}),{name:"formatmonth",args:["thyear","themonth","w","l"],defaults:[S,S]}),formatyear:o((function formatyear(e,t,n,r,o,s){n=_([D,n]),r=_([H,r]),o=_([D,o]);const m=dec(mul(inc(n),j));let d="";const a=e=>d+=e;a(pyRStrip(pyCenter(t.$r(),add(mul(m,s),mul(o,dec(s)))))),a("\\n".repeat(r));const l=formatweekheader(e,n);let f=0;for(const w of iterJs(yeardays2calendar(e,t,s))){const d=new i(f),y=inc(mul(s,d)),_=g([inc(mul(s,inc(d))),Y]),k=A(u,[y,_]);a("\\n".repeat(r));const p=iterFn(k,(n=>callA(e,"formatmonthname",t,n,m,!1)));a(pyRStrip(formatstring(p,m,o))),a("\\n".repeat(r));const $=iterFn(k,(e=>l));a(pyRStrip(formatstring($,m,o))),a("\\n".repeat(r));const b=Math.max(...w.valueOf().map((e=>e.valueOf().length)));for(let t=0;t=r.length?s.push(h.$empty):s.push(callA(e,"formatweek",r[t],n));a(pyRStrip(formatstring(new c(s),m,o))),a("\\n".repeat(r))}f++}return new h(d)}),{name:"formatyear",args:["theyear","w","l","c","m"],defaults:[D,H,R,N]}),pryear:o((function pryear(e,t,n,r,o,s){txtPrint(callA(e,"formatyear",t,n,r,o,s))}),{name:"pryear",args:["theyear","w","l","c","m"],defaults:[S,S,R,N]})};Object.assign(t,s)}),"TextCalendar",[ke]);function doHtmlFormatweekday(e,t){return new h(`${o(de,t)}`)}function doHtmlFormatmonthname(e,t,n,r=!0){let s=""+o(ie,n);return T(r)&&(s+=" "+t),new h(`${s}`)}const $e=L(Q,((e,t)=>{const n=M(["mon","tue","wed","thu","fri","sat","sun"]),r=n,s=new h("noday"),d=new h("month"),l=d,c=new h("year"),w=c,u=new h(\' \'),g=new h(\'%d\');const k=doHtmlFormatweekday;function formatweekheader(e){let t="";for(const n of iterJs(iterweekdays(e)))t+=callA(e,"formatweekday",n);return new h(`${t}`)}const p=doHtmlFormatmonthname;const $=makePyMethod.bind(null,"HTMLCalendar"),b={formatday:$((function formatday(e,t,n){return eq(t,S)?mod(u,getA(e,"cssclass_noday")):mod(g,new y([o(getA(e,"cssclasses"),n),t]))}),{name:"formatday",args:["day","weekday"]}),formatweek:$((function formatweek(e,t){let n="";for(const r of iterJs(t)){const[t,o]=r.valueOf();n+=callA(e,"formatday",t,o)}return new h(`${n}`)}),{name:"formatweek",args:["theweek"]}),formatweekday:$(k,{name:"formatweekday",args:["day"]}),formatweekheader:$(formatweekheader,{name:"formatweekheader"}),formatmonthname:$(p,{name:"formatmonthname",args:["theyear","themonth","withyear"],defaults:[m]}),formatmonth:$((function formatmonth(e,t,n,r=!0){let o="";const a=e=>o+=e+"\\n";a(``),a(callA(e,"formatmonthname",t,n,r)),a(formatweekheader(e));for(const s of iterJs(monthdays2calendar(e,t,n)))a(callA(e,"formatweek",s));return a("
"),new h(o)}),{name:"formatmonth",args:["thyear","themonth","withyear"],defaults:[m]}),formatyear:$((function formatyear(e,t,n){let r="";const a=e=>r+=e;n=_([n,H]).valueOf(),a(``),a("\\n"),a(``);for(let o=te;o");const r=Math.min(o+n,13);for(let n=o;n"),a(callA(e,"formatmonth",t,new i(n),!1)),a("");a("")}return a("
${t}
"),new h(r)}),{name:"formatyear",args:["theyear","width"],defaults:[N]}),formatyearpage:$((function formatyearpage(e,t,n=3,r="calendar.css",o=null){null!==o&&o!==f||(o=new h("utf-8"));let s="";const a=e=>s+=e;return a(`\\n`),a(\'\\n\'),a("\\n"),a("\\n"),a(`\\n`),r!==f&&a(`\\n`),a(`Calendar for ${t}\\n`),a("\\n"),a("\\n"),a(callA(e,"formatyear",t,n)),a("\\n"),a("\\n"),callA(h,"encode",new h(s),o,new h("ignore"))}),{name:"formatyearpage",args:["theyear","width","css","encoding"],defaults:[N,new h("calendar.css"),new h("utf-8")]}),cssclasses:n,cssclasses_weekday_head:r,cssclass_noday:s,cssclass_month_head:d,cssclass_month:l,cssclass_year_head:c,cssclass_year:w};Object.assign(t,b)}),"HTMLCalendar",[ke]);function withLocale(e,t){const n=E.localizeByIdentifier(e.toString());v.strftime=n;try{return t()}finally{v.strftime=E}}function localInit(e,t){T(t)||(t=new h("en_US")),e.locale=t}const be=L(Q,((e,t)=>{const n=makePyMethod.bind(null,"LocaleTextCalendar"),r={__init__:n((function __init__(e,t,n){return callA(pe,"__init__",e,t),localInit(e,n),f}),{name:"__init__",args:["firstweekday","locale"],defaults:[S,f]}),formatweekday:n((function formatweekday(e,t,n){return withLocale(e.locale,(()=>doTextFormatweekday(0,t,n)))}),{name:"formatweekday",args:["day","width"]}),formatmonthname:n((function formatmonthname(e,t,n,r,o){return withLocale(e.locale,(()=>doTextFormatmonthname(0,t,n,r,o)))}),{name:"formatmonthname",args:["theyear","themonth","width","withyear"],defaults:[m]})};Object.assign(t,r)}),"LocaleTextCalendar",[pe]),Me=L(Q,((e,t)=>{const n=makePyMethod.bind(null,"LocaleHTMLCalendar"),r={__init__:n((function __init__(e,t,n){return callA($e,"__init__",e,t),localInit(e,n),f}),{name:"__init__",args:["firstweekday","locale"],defaults:[S,f]}),formatweekday:n((function formatweekday(e,t){return withLocale(e.locale,(()=>doHtmlFormatweekday(e,t)))}),{name:"formatweekday",args:["day"]}),formatmonthname:n((function formatmonthname(e,t,n,r){return withLocale(e.locale,(()=>doHtmlFormatmonthname(e,t,n,r)))}),{name:"formatmonthname",args:["theyear","themonth","withyear"],defaults:[m]})};Object.assign(t,r)}),"LocaleHTMLCalendar",[$e]),Te=A(pe,[]);Object.assign(Q,{IllegalMonthError:Z,IllegalWeekdayError:ee,day_name:me,month_name:ie,day_abbr:de,month_abbr:ce,January:new i(te),February:new i(ae),mdays:M(ne),MONDAY:new i(fe),TUESDAY:new i(he),WEDNESDAY:new i(we),THURSDAY:new i(ye),FRIDAY:new i(ue),SATURDAY:new i(_e),SUNDAY:new i(ge),Calendar:ke,TextCalendar:pe,HTMLCalendar:$e,LocaleTextCalendar:be,LocaleHTMLCalendar:Me,c:Te,firstweekday:getA(Te,"getfirstweekday"),monthcalendar:getA(Te,"monthdayscalendar"),prweek:getA(Te,"prweek"),week:getA(Te,"formatweek"),weekheader:getA(Te,"formatweekheader"),prmonth:getA(Te,"prmonth"),month:getA(Te,"formatmonth"),calendar:getA(Te,"formatyear"),prcal:getA(Te,"pryear")});const Ce=new i(20),Oe=R;function formatstring(e,t,n){t||(t=Ce),n||(n=Oe),n=mul(n,new h(" "));const r=[];for(const o of iterJs(e))r.push(pyCenter(o,t).toString());return new h(r.join(n.toString()))}const Le=getA(V,"toordinal"),xe=A(Le,[new V(1970,1,1)]);return t("calendar",Q,{isleap:{$meth:e=>s(isleap(e)),$flags:{NamedArgs:["year"]},$doc:"Return True for leap years, False for non-leap years"},leapdays:{$meth(e,t){e=F(e)-1,t=F(t)-1;const n=Math.floor;return new i(n(t/4)-n(e/4)-(n(t/100)-n(e/100))+(n(t/400)-n(e/400)))},$flags:{MinArgs:2,MaxArgs:2}},weekday:{$meth:weekday,$flags:{NamedArgs:["year","month","day"]},$doc:"Return weekday (0-6 ~ Mon-Sun) for year, month (1-12), day (1-31)."},monthrange:{$meth:(e,t)=>new y(monthrange(e,t)),$flags:{NamedArgs:["year","month"]},$doc:"Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for year, month."},setfirstweekday:{$meth(e){const t=F(e);if(!(fe<=t&&t<=ge))throw A(ee,[e]);Te.fwd=e},$flags:{NamedArgs:["firstweekday"]}},format:{$meth:function format(e,t,n){return p([formatstring(e,t,n)]),f},$flags:{NamedArgs:["cols","colwidth","spacing"],Defaults:[Ce,Oe]}},formatstring:{$meth:formatstring,$flags:{NamedArgs:["cols","colwidth","spacing"],Defaults:[Ce,Oe]}},timegm:{$meth(e){const[t,n,r,o,s,m]=e.valueOf(),d=A(V,[t,n,H]),l=A(Le,[d]),i=add(sub(l,xe),dec(r)),c=add(mul(i,U),o),f=add(mul(c,z),s);return add(mul(f,z),m)},$flags:{OneArg:!0}}}),Q}',"src/lib/collections.js":'function $builtinmodule(t){const e={};return Sk.misceval.chain(Sk.importModule("keyword",!1,!0),(t=>(e._iskeyword=t.$d.iskeyword,Sk.importModule("itertools",!1,!0))),(t=>(e._chain=t.$d.chain,e._starmap=t.$d.starmap,e._repeat=t.$d.repeat,Sk.importModule("operator",!1,!0))),(t=>{e._itemgetter=t.$d.itemgetter}),(()=>collections_mod(e)))}function collections_mod(t){function counterNumberSlot(e){return function(i){if(void 0!==i&&!(i instanceof t.Counter))return Sk.builtin.NotImplemented.NotImplemented$;const s=new t.Counter;return e.call(this,s,i),s}}function counterInplaceSlot(t,e){return function(i){if(!(i instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError("Counter "+t+"= "+Sk.abstr.typeName(i)+" is not supported");return e.call(this,i),this.keep$positive()}}t.__all__=new Sk.builtin.list(["deque","defaultdict","namedtuple","Counter","OrderedDict"].map((t=>new Sk.builtin.str(t)))),t.defaultdict=Sk.abstr.buildNativeClass("collections.defaultdict",{constructor:function defaultdict(t,e){this.default_factory=t,Sk.builtin.dict.call(this,e)},base:Sk.builtin.dict,methods:{copy:{$meth(){return this.$copy()},$flags:{NoArgs:!0}},__copy__:{$meth(){return this.$copy()},$flags:{NoArgs:!0}},__missing__:{$meth(t){if(Sk.builtin.checkNone(this.default_factory))throw new Sk.builtin.KeyError(Sk.misceval.objectRepr(t));{const e=Sk.misceval.callsimArray(this.default_factory,[]);return this.mp$ass_subscript(t,e),e}},$flags:{OneArg:!0}}},getsets:{default_factory:{$get(){return this.default_factory},$set(t){t=t||Sk.builtin.none.none$,this.default_factory=t}}},slots:{tp$doc:"defaultdict(default_factory[, ...]) --\\x3e dict with default factory\\n\\nThe default factory is called without arguments to produce\\na new value when a key is not present, in __getitem__ only.\\nA defaultdict compares equal to a dict with the same items.\\nAll remaining arguments are treated the same as if they were\\npassed to the dict constructor, including keyword arguments.\\n",tp$init(t,e){const i=t.shift();if(void 0===i)this.default_factory=Sk.builtin.none.none$;else{if(!Sk.builtin.checkCallable(i)&&!Sk.builtin.checkNone(i))throw new Sk.builtin.TypeError("first argument must be callable");this.default_factory=i}return Sk.builtin.dict.prototype.tp$init.call(this,t,e)},$r(){const t=Sk.misceval.objectRepr(this.default_factory),e=Sk.builtin.dict.prototype.$r.call(this).v;return new Sk.builtin.str("defaultdict("+t+", "+e+")")}},proto:{$copy(){const e=[];return Sk.misceval.iterFor(Sk.abstr.iter(this),(t=>{e.push(t),e.push(this.mp$subscript(t))})),new t.defaultdict(this.default_factory,e)}}}),t.Counter=Sk.abstr.buildNativeClass("Counter",{constructor:function Counter(){this.$d=new Sk.builtin.dict,Sk.builtin.dict.apply(this)},base:Sk.builtin.dict,methods:{elements:{$flags:{NoArgs:!0},$meth(){const e=t._chain.tp$getattr(new Sk.builtin.str("from_iterable")),i=t._starmap,s=t._repeat,n=Sk.misceval.callsimArray;return n(e,[n(i,[s,n(this.tp$getattr(this.str$items))])])}},most_common:{$flags:{NamedArgs:["n"],Defaults:[Sk.builtin.none.none$]},$meth(t){const e=this.sq$length();t=Sk.builtin.checkNone(t)||(t=Sk.misceval.asIndexOrThrow(t))>e?e:t<0?0:t;const i=this.$items().sort(((t,e)=>Sk.misceval.richCompareBool(t[1],e[1],"Lt")?1:Sk.misceval.richCompareBool(t[1],e[1],"Gt")?-1:0));return new Sk.builtin.list(i.slice(0,t).map((t=>new Sk.builtin.tuple(t))))}},update:{$flags:{FastCall:!0},$meth(t,e){return Sk.abstr.checkArgsLen("update",t,0,1),this.counter$update(t,e)}},subtract:{$flags:{FastCall:!0},$meth(t,e){Sk.abstr.checkArgsLen("subtract",t,0,1);const i=t[0];if(void 0!==i)if(i instanceof Sk.builtin.dict)for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,i.mp$subscript(n),"Sub"))}else for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,this.$one,"Sub"))}e=e||[];for(let s=0;s>> c = Counter(\'abcdeabcdabcaba\') # count elements from a string\\n\\n >>> c.most_common(3) # three most common elements\\n [(\'a\', 5), (\'b\', 4), (\'c\', 3)]\\n >>> sorted(c) # list all unique elements\\n [\'a\', \'b\', \'c\', \'d\', \'e\']\\n >>> \'\'.join(sorted(c.elements())) # list elements with repetitions\\n \'aaaaabbbbcccdde\'\\n >>> sum(c.values()) # total of all counts\\n 15\\n\\n >>> c[\'a\'] # count of letter \'a\'\\n 5\\n >>> for elem in \'shazam\': # update counts from an iterable\\n ... c[elem] += 1 # by adding 1 to each element\'s count\\n >>> c[\'a\'] # now there are seven \'a\'\\n 7\\n >>> del c[\'b\'] # remove all \'b\'\\n >>> c[\'b\'] # now there are zero \'b\'\\n 0\\n\\n >>> d = Counter(\'simsalabim\') # make another counter\\n >>> c.update(d) # add in the second counter\\n >>> c[\'a\'] # now there are nine \'a\'\\n 9\\n\\n >>> c.clear() # empty the counter\\n >>> c\\n Counter()\\n\\n Note: If a count is set to zero or reduced to zero, it will remain\\n in the counter until the entry is deleted or the counter is cleared:\\n\\n >>> c = Counter(\'aaabbc\')\\n >>> c[\'b\'] -= 2 # reduce the count of \'b\' by two\\n >>> c.most_common() # \'b\' is still in, but its count is zero\\n [(\'a\', 3), (\'c\', 1), (\'b\', 0)]\\n\\n",tp$init(t,e){return Sk.abstr.checkArgsLen(this.tpjs_name,t,0,1),this.counter$update(t,e)},$r(){const t=this.size>0?Sk.builtin.dict.prototype.$r.call(this).v:"";return new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+")")},tp$as_sequence_or_mapping:!0,mp$ass_subscript(t,e){return void 0===e?this.mp$lookup(t)&&Sk.builtin.dict.prototype.mp$ass_subscript.call(this,t,e):Sk.builtin.dict.prototype.mp$ass_subscript.call(this,t,e)},tp$as_number:!0,nb$positive:counterNumberSlot((function(t){this.$items().forEach((([e,i])=>{Sk.misceval.richCompareBool(i,this.$zero,"Gt")&&t.mp$ass_subscript(e,i)}))})),nb$negative:counterNumberSlot((function(t){this.$items().forEach((([e,i])=>{Sk.misceval.richCompareBool(i,this.$zero,"Lt")&&t.mp$ass_subscript(e,Sk.abstr.numberBinOp(this.$zero,i,"Sub"))}))})),nb$subtract:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=Sk.abstr.numberBinOp(s,e.mp$subscript(i),"Sub");Sk.misceval.richCompareBool(n,this.$zero,"Gt")&&t.mp$ass_subscript(i,n)})),e.$items().forEach((([e,i])=>{void 0===this.mp$lookup(e)&&Sk.misceval.richCompareBool(i,this.$zero,"Lt")&&t.mp$ass_subscript(e,Sk.abstr.numberBinOp(this.$zero,i,"Sub"))}))})),nb$add:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=Sk.abstr.numberBinOp(s,e.mp$subscript(i),"Add");Sk.misceval.richCompareBool(n,this.$zero,"Gt")&&t.mp$ass_subscript(i,n)})),e.$items().forEach((([e,i])=>{void 0===this.mp$lookup(e)&&Sk.misceval.richCompareBool(i,this.$zero,"Gt")&&t.mp$ass_subscript(e,i)}))})),nb$inplace_add:counterInplaceSlot("+",(function(t){t.$items().forEach((([t,e])=>{const i=Sk.abstr.numberInplaceBinOp(this.mp$subscript(t),e,"Add");this.mp$ass_subscript(t,i)}))})),nb$inplace_subtract:counterInplaceSlot("-",(function(t){t.$items().forEach((([t,e])=>{const i=Sk.abstr.numberInplaceBinOp(this.mp$subscript(t),e,"Sub");this.mp$ass_subscript(t,i)}))})),nb$or:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=e.mp$subscript(i),r=Sk.misceval.richCompareBool(s,n,"Lt")?n:s;Sk.misceval.richCompareBool(r,this.$zero,"Gt")&&t.mp$ass_subscript(i,r)})),e.$items().forEach((([e,i])=>{void 0===this.mp$lookup(e)&&Sk.misceval.richCompareBool(i,this.$zero,"Gt")&&t.mp$ass_subscript(e,i)}))})),nb$and:counterNumberSlot((function(t,e){this.$items().forEach((([i,s])=>{const n=e.mp$subscript(i),r=Sk.misceval.richCompareBool(s,n,"Lt")?s:n;Sk.misceval.richCompareBool(r,this.$zero,"Gt")&&t.mp$ass_subscript(i,r)}))})),nb$inplace_and:counterInplaceSlot("&",(function(t){this.$items().forEach((([e,i])=>{const s=t.mp$subscript(e);Sk.misceval.richCompareBool(s,i,"Lt")&&this.mp$ass_subscript(e,s)}))})),nb$inplace_or:counterInplaceSlot("|",(function(t){t.$items().forEach((([t,e])=>{Sk.misceval.richCompareBool(e,this.mp$subscript(t),"Gt")&&this.mp$ass_subscript(t,e)}))})),nb$reflected_and:null,nb$reflected_or:null,nb$reflected_add:null,nb$reflected_subtract:null},proto:{keep$positive(){return this.$items().forEach((([t,e])=>{Sk.misceval.richCompareBool(e,this.$zero,"LtE")&&this.mp$ass_subscript(t)})),this},$zero:new Sk.builtin.int_(0),$one:new Sk.builtin.int_(1),str$items:new Sk.builtin.str("items"),counter$update(t,e){const i=t[0];if(void 0!==i)if(Sk.builtin.checkMapping(i))if(this.sq$length())for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,i.mp$subscript(n),"Add"))}else this.update$common(t,void 0,"update");else for(let s=Sk.abstr.iter(i),n=s.tp$iternext();void 0!==n;n=s.tp$iternext()){const t=this.mp$subscript(n);this.mp$ass_subscript(n,Sk.abstr.numberBinOp(t,this.$one,"Add"))}if(e&&e.length)if(this.sq$length())for(let s=0;s`(${Sk.misceval.objectRepr(t)}, ${Sk.misceval.objectRepr(e)})`));return t=0===t.length?"":"["+t.join(", ")+"]",this.in$repr=!1,new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+")")},tp$richcompare(e,i){if("Eq"!==i&&"Ne"!==i)return Sk.builtin.NotImplemented.NotImplemented$;if(!(e instanceof t.OrderedDict))return Sk.builtin.dict.prototype.tp$richcompare.call(this,e,i);const s="Eq"==i,n=this.size;if(n!==e.size)return!s;const r=e.$items(),a=this.$items();for(let t=0;t=r||l>=a)switch(i){case"Lt":return ra;case"GtE":return r>=a}return"Eq"!==i&&("NotEq"===i||Sk.misceval.richCompareBool(n[this.head+l&this.mask],e[s.head+l&s.mask],i))},tp$iter(){return new e(this)},$r(){const t=[],e=this.tail-this.head&this.mask;if(this.$entered_repr)return new Sk.builtin.str("[...]");this.$entered_repr=!0;for(let s=0;s=e||t<-e)throw new Sk.builtin.IndexError("deque index out of range");const i=(t>=0?this.head:this.tail)+t&this.mask;return this.v[i]},mp$ass_subscript(t,e){t=Sk.misceval.asIndexOrThrow(t);const i=this.tail-this.head&this.mask;if(t>=i||t<-i)throw new Sk.builtin.IndexError("deque index out of range");void 0===e?this.del$item(t):this.set$item(t,e)},nb$inplace_add(t){this.maxlen=void 0;for(let e=Sk.abstr.iter(t),i=e.tp$iternext();void 0!==i;i=e.tp$iternext())this.$push(i);return this},nb$inplace_multiply(t){(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError,"can\'t multiply sequence by non-int of type \'{tp$name}\'"))<=0&&this.$clear();const e=this.$copy(),i=this.tail-this.head&this.mask;for(let s=1;s integer -- return number of occurrences of value"},extend:{$meth(t){return this.$extend(t),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Extend the right side of the deque with elements from the iterable"},extendleft:{$meth(t){for(let e=Sk.abstr.iter(t),i=e.tp$iternext();void 0!==i;i=e.tp$iternext())this.$pushLeft(i);return Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Extend the left side of the deque with elements from the iterable"},index:{$meth(t,e,i){const s=this.$index(t,e,i);if(void 0!==s)return new Sk.builtin.int_(s);throw new Sk.builtin.ValueError(Sk.misceval.objectRepr(t)+" is not in deque")},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"D.index(value, [start, [stop]]) -> integer -- return first index of value.\\nRaises ValueError if the value is not present."},insert:{$meth(t,e){t=Sk.misceval.asIndexOrThrow(t,"integer argument expected, got {tp$name}");const i=this.tail-this.head&this.mask;if(void 0!==this.maxlen&&i>=this.maxlen)throw new Sk.builtin.IndexError("deque already at its maximum size");t>i&&(t=i),t<=-i&&(t=0);const s=(t>=0?this.head:this.tail)+t&this.mask;let n=this.tail;for(this.tail=this.tail+1&this.mask;n!==s;){const t=n-1&this.mask;this.v[n]=this.v[t],n=t}return this.v[s]=e,this.head===this.tail&&this.$resize(this.v.length,this.v.length<<1),Sk.builtin.none.none$},$flags:{MinArgs:2,MaxArgs:2},$textsig:null,$doc:"D.insert(index, object) -- insert object before index"},pop:{$meth(){return this.$pop()},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove and return the rightmost element."},popleft:{$meth(){return this.$popLeft()},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove and return the leftmost element."},remove:{$meth(t){const e=this.$index(t);if(void 0===e)throw new Sk.builtin.ValueError(Sk.misceval.objectRepr(t)+" is not in deque");let i=this.head+e&this.mask;for(;i!==this.tail;){const t=i+1&this.mask;this.v[i]=this.v[t],i=t}this.tail=this.tail-1&this.mask;var s=this.tail-this.head&this.mask;s>>1&&this.$resize(s,this.v.length>>>1)},$flags:{OneArg:!0},$textsig:null,$doc:"D.remove(value) -- remove first occurrence of value."},__reversed__:{$meth(){return new i(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.__reversed__() -- return a reverse iterator over the deque"},reverse:{$meth(){const t=this.head,e=this.tail,i=this.mask,s=this.tail-this.head&this.mask;for(let n=0;n<~~(s/2);n++){const s=e-n-1&i,r=t+n&i,a=this.v[s];this.v[s]=this.v[r],this.v[r]=a}return Sk.builtin.none.none$},$flags:{NoArgs:!0},$textsig:null,$doc:"D.reverse() -- reverse *IN PLACE*"},rotate:{$meth(t){t=void 0===t?1:Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError);const e=this.head,i=this.tail;if(0===t||e===i)return this;if(this.head=e-t&this.mask,this.tail=i-t&this.mask,t>0)for(let s=1;s<=t;s++){const t=e-s&this.mask,n=i-s&this.mask;this.v[t]=this.v[n],this.v[n]=void 0}else for(let s=0;s>t;s--){const t=i-s&this.mask,n=e-s&this.mask;this.v[t]=this.v[n],this.v[n]=void 0}return Sk.builtin.none.none$},$flags:{MinArgs:0,MaxArgs:1},$textsig:null,$doc:"Rotate the deque n steps to the right (default n=1). If n is negative, rotates left."}},classmethods:Sk.generic.classGetItem,getsets:{maxlen:{$get(){return void 0===this.maxlen?Sk.builtin.none.none$:new Sk.builtin.int_(this.maxlen)},$doc:"maximum size of a deque or None if unbounded"}},proto:{$clear(){this.head=0,this.tail=0,this.mask=1,this.v=new Array(2)},$copy(){return new t.deque(this.v.slice(0),this.maxlen,this.head,this.tail,this.mask)},$extend(t){for(let e=Sk.abstr.iter(t),i=e.tp$iternext();void 0!==i;i=e.tp$iternext())this.$push(i)},set$item(t,e){const i=(t>=0?this.head:this.tail)+t&this.mask;this.v[i]=e},del$item(t){let e=(t>=0?this.head:this.tail)+t&this.mask;for(;e!==this.tail;){const t=e+1&this.mask;this.v[e]=this.v[t],e=t}const i=this.tail-this.head&this.mask;this.tail=this.tail-1&this.mask,i>>1&&this.$resize(i,this.v.length>>>1)},$push(t){this.v[this.tail]=t,this.tail=this.tail+1&this.mask,this.head===this.tail&&this.$resize(this.v.length,this.v.length<<1);const e=this.tail-this.head&this.mask;return void 0!==this.maxlen&&e>this.maxlen&&this.$popLeft(),this},$pushLeft(t){this.head=this.head-1&this.mask,this.v[this.head]=t,this.head===this.tail&&this.$resize(this.v.length,this.v.length<<1);const e=this.tail-this.head&this.mask;return void 0!==this.maxlen&&e>this.maxlen&&this.$pop(),this},$pop(){if(this.head===this.tail)throw new Sk.builtin.IndexError("pop from an empty deque");this.tail=this.tail-1&this.mask;const t=this.v[this.tail];this.v[this.tail]=void 0;const e=this.tail-this.head&this.mask;return e>>1&&this.$resize(e,this.v.length>>>1),t},$popLeft(){if(this.head===this.tail)throw new Sk.builtin.IndexError("pop from an empty deque");const t=this.v[this.head];this.v[this.head]=void 0,this.head=this.head+1&this.mask;const e=this.tail-this.head&this.mask;return e>>1&&this.$resize(e,this.v.length>>>1),t},$resize(t,e){const i=this.head,s=this.mask;if(this.head=0,this.tail=t,this.mask=e-1,0===i)return void(this.v.length=e);const n=new Array(e);for(let r=0;r=0?i:i<-s?0:s+i;for(let o=e>=0?e:e<-s?0:s+e;o=this.$length)return;const t=(this.$index>=0?this.$head:this.$tail)+this.$index&this.$mask;return this.$index++,this.dq[t]},methods:{__length_hint__:{$meth:function __length_hint__(){return new Sk.builtin.int_(this.$length-this.$index)},$flags:{NoArgs:!0}}}}),i=Sk.abstr.buildIteratorClass("_collections._deque_reverse_iterator",{constructor:function _deque_reverse_iterator(t){this.$index=(t.tail-t.head&t.mask)-1,this.dq=t.v,this.$head=t.head,this.$mask=t.mask},iternext(){if(this.$index<0)return;const t=this.$head+this.$index&this.$mask;return this.$index--,this.dq[t]},methods:{__length_hint__:Sk.generic.iterReverseLengthHintMethodDef}}),s=new RegExp(/^[0-9].*/),n=new RegExp(/^[0-9_].*/),r=new RegExp(/^\\w*$/),a=/,/g,o=/\\s+/;function namedtuple(e,i,l,h,c){if(e=e.tp$str(),Sk.misceval.isTrue(Sk.misceval.callsimArray(t._iskeyword,[e])))throw new Sk.builtin.ValueError("Type names and field names cannot be a keyword: \'"+Sk.misceval.objectRepr(e)+"\'");const u=e.$jsstr();if(s.test(u)||!r.test(u)||!u)throw new Sk.builtin.ValueError("Type names and field names must be valid identifiers: \'"+u+"\'");let m,d;if(Sk.builtin.checkString(i))m=i.$jsstr().replace(a," ").split(o),1==m.length&&""===m[0]&&(m=[]),d=m.map((t=>new Sk.builtin.str(t)));else{m=[],d=[];for(let t=Sk.abstr.iter(i),e=t.tp$iternext();void 0!==e;e=t.tp$iternext())e=e.tp$str(),d.push(e),m.push(e.$jsstr())}let p=new Set;if(Sk.misceval.isTrue(l))for(let s=0;sm.length)throw new Sk.builtin.TypeError("Got more default values than field names");for(let t=0,e=d.length-b.length;e"\'"+t.$jsstr()+"\'"))+"]")}return r}_make.co_varnames=["_cls","iterable"],_asdict.co_varnames=["self"],_replace.co_kwargs=1,_replace.co_varnames=["_self"];const S={};for(let s=0;sm[e]+"="+Sk.misceval.objectRepr(t)));return new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t.join(", ")+")")}},flags:{sk$klass:!0},proto:Object.assign({__module__:Sk.builtin.checkNone(c)?Sk.globals.__name__:c,__slots__:new Sk.builtin.tuple,_fields:$,_field_defaults:f,_make:new Sk.builtin.classmethod(new Sk.builtin.func(_make)),_asdict:new Sk.builtin.func(_asdict),_replace:new Sk.builtin.func(_replace)},S)})}return namedtuple.co_argcount=2,namedtuple.co_kwonlyargcount=3,namedtuple.$kwdefs=[Sk.builtin.bool.false$,Sk.builtin.none.none$,Sk.builtin.none.none$],namedtuple.co_varnames=["typename","field_names","rename","defaults","module"],t.namedtuple=new Sk.builtin.func(namedtuple),t}',"src/lib/datetime.js":'function $builtinmodule(){const{isTrue:t,richCompareBool:e,asIndexOrThrow:n,asIndexSized:i,objectRepr:s,opAllowsEquality:o,callsimArray:r,callsimOrSuspendArray:a}=Sk.misceval,{numberBinOp:$,typeName:c,buildNativeClass:h,checkArgsLen:m,objectHash:u,copyKeywordsToNamedArgs:l}=Sk.abstr,{int_:f,float_:d,str:w,bytes:_,tuple:p,bool:{true$:g},none:{none$:y},NotImplemented:{NotImplemented$:b},TypeError:z,ValueError:v,OverflowError:M,ZeroDivisionError:A,NotImplementedError:x,checkNumber:N,checkFloat:S,checkString:k,checkInt:O,asnum$:I,round:E,getattr:T}=Sk.builtin,{remapToPy:D,remapToJs:R}=Sk.ffi,intRound=t=>E(t).nb$int(),q=$,C=new w("auto"),U=new w("utcoffset"),Y=new w("tzname"),j=new w("as_integer_ratio"),F=new w("dst"),H=new w("isoformat"),J=new w("replace"),B=new w("fromtimestamp"),G=new w("fromordinal"),L=new w("utcfromtimestamp"),X=new w("strftime"),P=new w("fromutc"),W=new f(0),Z=new d(0),K=new f(7),V=new f(60),Q=new f(3600),tt=new f(1e3),et=new f(1e6),nt=new d(1e6),it=new f(86400),st=new d(86400);let ot=null;function pyDivMod(t,e){return q(t,e,"DivMod").v}function $divMod(t,e){if("number"!=typeof t||"number"!=typeof e)return t=JSBI.BigInt(t),e=JSBI.BigInt(e),[JSBI.toNumber(JSBI.divide(t,e)),JSBI.toNumber(JSBI.remainder(t,e))];if(0===e)throw new A("integer division or modulo by zero");return[Math.floor(t/e),t-Math.floor(t/e)*e]}function modf(t){const e=(t=I(t))<0?-1:1;return t=Math.abs(t),[new d(e*(t-Math.floor(t))),new d(e*Math.floor(t))]}function _d(t,e="0",n=2){return t.toString().padStart(n,e)}const rt=/^[0-9]+$/;function _as_integer(t){if(!rt.test(t))throw new Error;return parseInt(t)}function _as_int_ratio(t){let e=r(t.tp$getattr(j));if(!(e instanceof p))throw new z("unexpected return type from as_integer_ratio(): expected tuple, got \'"+c(e)+"\'");if(e=e.v,2!==e.length)throw new v("as_integer_ratio() must return a 2-tuple");return e}return Sk.misceval.chain(Sk.importModule("time",!1,!0),(a=>{const $=a.$d,E={__name__:new w("datetime"),__all__:new Sk.builtin.list(["date","datetime","time","timedelta","timezone","tzinfo","MINYEAR","MAXYEAR"].map((t=>new w(t))))};function _cmp(t,e){for(let n=0;ne[n]?1:-1;return 0}function _do_compare(t,e,n){const i=t.$cmp(e,n);switch(n){case"Lt":return i<0;case"LtE":return i<=0;case"Eq":return 0===i;case"NotEq":return 0!==i;case"Gt":return i>0;case"GtE":return i>=0}}const j=9999;E.MINYEAR=new f(1),E.MAXYEAR=new f(j);const rt=3652059,at=[-1,31,28,31,30,31,30,31,31,30,31,30,31],$t=[-1];let ct=0;function _is_leap(t){return t%4==0&&(t%100!=0||t%400==0)}function _days_before_year(t){const e=t-1;return 365*e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400)}function _days_before_month(t,e){return $t[e]+(e>2&&_is_leap(t))}function _ymd2ord(t,e,n){return _days_before_year(t)+_days_before_month(t,e)+n}at.slice(1).forEach((t=>{$t.push(ct),ct+=t}));const ht=_days_before_year(401),mt=_days_before_year(101),ut=_days_before_year(5);function _ord2ymd(t){if((t=n(t))>Number.MAX_SAFE_INTEGER)throw new M("Python int too large to convert to js number");if(t<1)throw new v("ordinal must be >= 1");let e,i,s,o;t-=1,[e,t]=$divMod(t,ht);let r=400*e+1;if([i,t]=$divMod(t,mt),[s,t]=$divMod(t,ut),[o,t]=$divMod(t,365),r+=100*i+4*s+o,4===o||4===i)return[r-1,12,31].map((t=>new f(t)));const a=3===o&&(24!==s||3===i);let $=t+50>>5,c=$t[$]+($>2&&a);return c>t&&($-=1,c-=at[$]+(2===$&&a)),[r,$,(t-=c)+1].map((t=>new f(t)))}const lt=[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ft=[null,"Mon","Tue","Wed","Thu","Fri","Sat","Sun"];function _build_struct_time(t,e,n,i,s,o,r){const a=(_ymd2ord(t,e,n)+6)%7,c=_days_before_month(t,e)+n;return $.struct_time.tp$call([new p([t,e,n,i,s,o,a,c,r].map((t=>new f(t))))])}const dt={hours:t=>_d(t),minutes:(t,e)=>_d(t)+":"+_d(e),seconds:(t,e,n)=>_d(t)+":"+_d(e)+":"+_d(n),milliseconds:(t,e,n,i)=>_d(t)+":"+_d(e)+":"+_d(n)+"."+_d(i,"0",3),microseconds:(t,e,n,i)=>_d(t)+":"+_d(e)+":"+_d(n)+"."+_d(i,"0",6)};function _format_time(t,e,n,i,s="auto"){if("string"!=typeof s&&!k(s))throw new z("must be str, not "+c(s));"auto"===(s=s.toString())?s=i?"microseconds":"seconds":"milliseconds"===s&&(i=Math.floor(i/1e3));let o=dt[s];if(void 0===o)throw new v("Unknown timespec value");return o(t,e,n,i)}function _format_offset(t){let e,n="";if(t!==y){let i,s,o;return t.$days<0?(e="-",t=new wt(-t.$days,-t.$secs,-t.$micro)):e="+",[i,s]=pyDivMod(t,pt),[s,o]=pyDivMod(s,gt),n+=e+`${_d(i)}:${_d(s)}`,(o.$secs||o.$micro)&&(n+=":"+_d(o.$secs,"0",2),o.$micro&&(n+="."+_d(o.$micro,"0",6))),n}}function _wrap_strftime(t,e,n){let i=null,s=null,o=null,a=[],c=0;const h=e.length;for(;cnew f(t)))}function _parse_hh_mm_ss_ff(t){const e=t.length,n=[0,0,0,0];let i=0;for(let s=0;s<3;s++){if(e-i<2)throw new v("Incomplete time component");n[s]=_as_integer(t.slice(i,i+2)),i+=2;const o=t.substr(i,1);if(!o||s>=2)break;if(":"!==o)throw new v("Invalid time separator: "+o);i+=1}if(i0?t.slice(0,e-1):t),s=y;if(e>0){if(n=t.slice(e),![5,8,15].includes(n.length))throw new v("Malformed time zone string");const i=_parse_hh_mm_ss_ff(n);if(i.every((t=>0===t)))s=St.prototype.utc;else{const n="-"===t[e-1]?-1:1,o=new wt(0,n*(3600*i[0]+60*i[1]+i[2]),n*i[3]);s=new St(o)}}return i=i.map((t=>new f(t))),i.push(s),i}function _check_tzname(t){if(t!==y&&!k(t))throw new z("tzinfo.tzname() must return None or string, not \'"+c(t)+"\'")}function _check_utc_offset(t,n){if(n!==y){if(!(n instanceof wt))throw new z(`tzinfo.${t}() must return None or timedelta, not \'${c(n)}\'`);if(!e(zt,n,"Lt")||!e(n,_t,"Lt"))throw new v(`${t}()=${n.toString()}, must be strictly between -timedelta(hours=24) and timedelta(hours=24)`)}}function _check_date_fields(t,e=null,i=null){if(null===e||null===i){throw new z(`function missing required argument \'${null===i?"day":"month"}\' (pos ${null===i?"3":"2"})`)}if(t=n(t),e=n(e),i=n(i),!(1<=t&&t<=j))throw new v("year must be in 1.."+j,new f(t));if(!(1<=e&&e<=12))throw new v("month must be in 1..12",new f(e));const s=function _days_in_month(t,e){return 2===e&&_is_leap(t)?29:at[e]}(t,e);if(!(1<=i&&i<=s))throw new v("day must be in 1.."+s,new f(i));return[t,e,i]}function _check_time_fields(t,e,i,s,o){if(t=n(t),e=n(e),i=n(i),s=n(s),o=n(o),!(0<=t&&t<=23))throw new v("hour must be in 0..23",new f(t));if(!(0<=e&&e<=59))throw new v("minute must be in 0..59",new f(e));if(!(0<=i&&i<=59))throw new v("second must be in 0..59",new f(i));if(!(0<=s&&s<=999999))throw new v("microsecond must be in 0..999999",new f(s));if(0!==o&&1!==o)throw new v("fold must be either 0 or 1",new f(o));return[t,e,i,s,o]}function _check_tzinfo_arg(t){if(t!==y&&!(t instanceof Mt))throw new z("tzinfo argument must be None or of a tzinfo subclass")}function _divide_and_round(t,e){let[n,i]=$divMod(t,e);return i*=2,((e>0?i>e:i999999999)throw new M(`days=${t}; must have magnitude <= 999999999`)},slots:{tp$new(t,e){let i,s,o,r,a,$,c,[h,m,u,d,w,_,p]=l("timedelta",["days","seconds","microseconds","milliseconds","minutes","hours","weeks"],t,e,new Array(7).fill(W));i=s=o=W,h=q(h,q(p,K,"Mult"),"Add"),m=q(m,q(q(w,V,"Mult"),q(_,Q,"Mult"),"Add"),"Add"),u=q(u,q(d,tt,"Mult"),"Add"),S(h)?([r,h]=modf(h),[a,$]=modf(q(r,st,"Mult")),s=new f($),i=new f(h)):(a=Z,i=h),S(m)?([c,m]=modf(m),m=new f(m),c=q(c,a,"Add")):c=a,[h,m]=pyDivMod(m,it),i=q(i,h,"Add"),s=q(s,new f(m),"Add");const g=q(c,nt,"Mult");if(S(u)?(u=intRound(q(u,g,"Add")),[m,u]=pyDivMod(u,et),[h,m]=pyDivMod(m,it),i=q(i,h,"Add"),s=q(s,m,"Add")):(u=new f(u),[m,u]=pyDivMod(u,et),[h,m]=pyDivMod(m,it),i=q(i,h,"Add"),s=q(s,m,"Add"),u=intRound(q(u,g,"Add"))),[m,o]=pyDivMod(u,et),s=q(s,m,"Add"),[h,s]=pyDivMod(s,it),i=q(i,h,"Add"),i=n(i),s=n(s),o=n(o),Math.abs(i)>999999999)throw new M("timedelta # of days is too large: "+h.toString());if(this===wt.prototype)return new wt(i,s,o);{const t=new this.constructor;return wt.call(t,i,s,o),t}},$r(){const t=[];return this.$days&&t.push(`days=${this.$days}`),this.$secs&&t.push(`seconds=${this.$secs}`),this.$micro&&t.push(`microseconds=${this.$micro}`),t.length||t.push("0"),new w(`${this.tp$name}(${t.join(", ")})`)},tp$str(){const t=this.$secs%60;let e=Math.floor(this.$secs/60);const n=Math.floor(e/60);e%=60;let i=`${n}:${_d(e)}:${_d(t)}`;if(this.$days){i=`${this.$days} day${function plural(t){return 1!==Math.abs(t)?"s":""}(this.$days)}, `+i}return this.$micro&&(i+=`.${_d(this.$micro,"0",6)}`),new w(i)},tp$as_number:!0,nb$add(t){return t instanceof wt?new wt(this.$days+t.$days,this.$secs+t.$secs,this.$micro+t.$micro):b},nb$subtract(t){return t instanceof wt?new wt(this.$days-t.$days,this.$secs-t.$secs,this.$micro-t.$micro):b},nb$positive(){return this},nb$negative(){return new wt(-this.$days,-this.$secs,-this.$micro)},nb$abs(){return this.$days<0?this.nb$negative():this},nb$multiply(t){if(O(t))return t=i(t,M),new wt(this.$days*t,this.$secs*t,this.$micro*t);if(S(t)){const e=this.$toMicrosecs();let[s,o]=_as_int_ratio(t);return s=i(s,M),o=n(o),new wt(0,0,_divide_and_round(e*s,o))}return b},nb$floor_divide(t){const e=this.$toMicrosecs();if(t instanceof wt){const n=t.$toMicrosecs();if(0===n)throw new A("integer division or modulo by zero");return new f(Math.floor(e/n))}if(O(t)){if(0===(t=i(t,M)))throw new A("integer division or modulo by zero");return new wt(0,0,Math.floor(e/t))}return b},nb$divide(t){const e=this.$toMicrosecs();if(t instanceof wt){if(0===t.$toMicrosecs())throw new A("integer division or modulo by zero");return new d(e/t.$toMicrosecs())}if(O(t))return t=n(t),new wt(0,0,_divide_and_round(e,t));if(S(t)){let[s,o]=_as_int_ratio(t);return s=n(s),o=i(o,M),new wt(0,0,_divide_and_round(o*e,s))}return b},nb$remainder(t){if(!(t instanceof wt))return b;const e=this.$toMicrosecs(),n=t.$toMicrosecs();if(0===n)throw new A("integer division or modulo by zero");const i=e-Math.floor(e/n)*n;return new wt(0,0,i)},nb$divmod(t){if(!(t instanceof wt))return b;const e=this.$toMicrosecs(),n=t.$toMicrosecs(),[i,s]=$divMod(e,n);return new p([new f(i),new wt(0,0,s)])},tp$richcompare(t,e){return t instanceof wt?_do_compare(this,t,e):b},tp$hash(){return-1===this.$hashcode&&(this.$hashcode=u(new p(this.$getState().map((t=>new f(t)))))),this.$hashcode},nb$bool(){return 0!==this.$days||0!==this.$secs||0!==this.$micro}},methods:{total_seconds:{$meth(){return new d(((86400*this.$days+this.$secs)*10**6+this.$micro)/10**6)},$flags:{NoArgs:!0},$doc:"Total seconds in the duration."},__reduce__:{$meth(){return new p([this.ob$type,new p(this.$getState().map((t=>D(t))))])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},getsets:{days:{$get(){return new f(this.$days)},$doc:"Number of days."},seconds:{$get(){return new f(this.$secs)},$doc:"Number of seconds (>= 0 and less than 1 day)."},microseconds:{$get(){return new f(this.$micro)},$doc:"Number of microseconds (>= 0 and less than 1 second)."}},proto:{$toMicrosecs(){return 1e6*(86400*this.$days+this.$secs)+this.$micro},$cmp(t){return _cmp(this.$getState(),t.$getState())},$getState(){return[this.$days,this.$secs,this.$micro]}}});wt.prototype.min=new wt(-999999999),wt.prototype.max=new wt(999999999,86399,999999),wt.prototype.resolution=new wt(0,0,1);const _t=new wt(1),pt=new wt(0,3600),gt=new wt(0,60),yt=new wt(0,1),bt=new wt(0),zt=new wt(-1),vt=E.date=h("datetime.date",{constructor:function date(t,e,n){this.$year=t,this.$month=e,this.$day=n,this.$hashcode=-1},slots:{tp$new(t,e){let n,[i,s,o]=l("date",["year","month","day"],t,e,[null,null]);if(null===s&&i instanceof _&&4===(n=i.valueOf()).length&&1<=n[2]&&n[2]<=12){const t=new this.constructor;return t.$setState(n),t}if([i,s,o]=_check_date_fields(i,s,o),this===vt.prototype)return new vt(i,s,o);{const t=new this.constructor;return vt.call(t,i,s,o),t}},$r(){return new w(`${this.tp$name}(${this.$year}, ${this.$month}, ${this.$day})`)},tp$str(){return this.tp$getattr(H).tp$call([])},tp$richcompare(t,e){return t instanceof vt?_do_compare(this,t,e):b},tp$hash(){return-1===this.$hashcode&&(this.$hashcode=u(this.$getState())),this.$hashcode},tp$as_number:!0,nb$add(t){if(t instanceof wt){const e=this.$toOrdinal()+t.$days;if(0 local date from a POSIX timestamp (like time.time())."},fromordinal:{$meth:function fromordinal(t){return this.tp$call(_ord2ymd(t))},$flags:{OneArg:!0},$textsig:null,$doc:"int -> date corresponding to a proleptic Gregorian ordinal."},fromisocalendar:{$meth:function fromisocalendar(t,e,i){if(t=n(t),e=n(e),i=n(i),!(1<=t&&t<=j))throw new v(`Year is out of range: ${t}`);let s,o;if(!(0 date corresponding to a proleptic Gregorian ordinal."},fromisoformat:{$meth:function fromisoformat(t){if(!k(t))throw new z("fromisoformat: argument must be str");t=t.toString();try{if(10!==t.length)throw new Error;return this.tp$call(_parse_isoformat_date(t))}catch(e){throw new v("Invalid isoformat string: \'"+t+"\'")}},$flags:{OneArg:!0},$textsig:null,$doc:"str -> Construct a date from the output of date.isoformat()"},today:{$meth:function today(){const t=$.time.tp$call([]);return this.tp$getattr(B).tp$call([t])},$flags:{NoArgs:!0},$textsig:null,$doc:"Current date or datetime: same as self.__class__.fromtimestamp(time.time())."}},methods:{ctime:{$meth:function ctime(){const t=this.$toOrdinal()%7||7,e=ft[t],n=lt[this.$month];return new w(`${e} ${n} ${_d(this.$day," ",2)} 00:00:00 ${_d(this.$year,"0",4)}`)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return ctime() style string."},strftime:{$meth:function strftime(t){if(!k(t))throw new z("must be str, not "+c(t));return _wrap_strftime(this,t=t.toString(),this.$timetuple())},$flags:{OneArg:!0},$textsig:null,$doc:"format -> strftime() style string."},__format__:{$meth:function __format__(t){if(!k(t))throw new z("must be str, not "+c(t));return t!==w.$empty?this.tp$getattr(X).tp$call([t]):this.tp$str()},$flags:{OneArg:!0},$textsig:null,$doc:"Formats self with strftime."},timetuple:{$meth:function timetuple(){return this.$timetuple()},$flags:{NoArgs:!0},$textsig:null,$doc:"Return time tuple, compatible with time.localtime()."},isocalendar:{$meth:function isocalendar(){let t=this.$year,e=_isoweek1monday(t);const n=_ymd2ord(this.$year,this.$month,this.$day);let[i,s]=$divMod(n-e,7);return i<0?(t-=1,e=_isoweek1monday(t),[i,s]=$divMod(n-e,7)):i>=52&&n>=_isoweek1monday(t+1)&&(t+=1,i=0),new At(new f(t),new f(i+1),new f(s+1))},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a 3-tuple containing ISO year, week number, and weekday."},isoformat:{$meth:function isoformat(){return this.$isoformat()},$flags:{NoArgs:!0},$textsig:null,$doc:"Return string in ISO 8601 format, YYYY-MM-DD."},isoweekday:{$meth:function isoweekday(){return new f(this.$toOrdinal()%7||7)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return the day of the week represented by the date.\\nMonday == 1 ... Sunday == 7"},toordinal:{$meth:function toordinal(){return new f(this.$toOrdinal())},$flags:{NoArgs:!0},$textsig:null,$doc:"Return proleptic Gregorian ordinal. January 1 of year 1 is day 1."},weekday:{$meth:function weekday(){return new f((this.$toOrdinal()+6)%7)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return the day of the week represented by the date.\\nMonday == 0 ... Sunday == 6"},replace:{$meth:function replace(t,e,n){return t===y&&(t=new f(this.$year)),e===y&&(e=new f(this.$month)),n===y&&(n=new f(this.$day)),this.ob$type.tp$call([t,e,n])},$flags:{NamedArgs:["year","month","day"],Defaults:[y,y,y]},$textsig:null,$doc:"Return date with new specified fields."},__reduce__:{$meth(){return new p([this.ob$type,new p([this.$getState()])])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},getsets:{year:{$get(){return new f(this.$year)},$doc:"year (1-9999)"},month:{$get(){return new f(this.$month)},$doc:"month (1-12)"},day:{$get(){return new f(this.$day)},$doc:"day (1-31)"}},proto:{$cmp(t){return _cmp([this.$year,this.$month,this.$day],[t.$year,t.$month,t.$day])},$getState(){const[t,e]=$divMod(this.$year,256);return new _([t,e,this.$month,this.$day])},$setState(t){const[e,n,i,s]=t,o=256*e+n;this.$year=o,this.$month=i,this.$day=s},$toOrdinal(){return _ymd2ord(this.$year,this.$month,this.$day)},$isoformat(){return new w(`${_d(this.$year,"0",4)}-${_d(this.$month,"0",2)}-${_d(this.$day,"0",2)}`)},$timetuple(){return _build_struct_time(this.$year,this.$month,this.$day,this.$hour||0,this.$min||0,this.$sec||0,-1)},$strftime(t=""){return _wrap_strftime(this,t.toString(),this.$timetuple())}}});vt.prototype.min=new vt(1,1,1),vt.prototype.max=new vt(9999,12,31),vt.prototype.resolution=new wt(1);const Mt=E.tzinfo=h("datetime.tzinfo",{constructor:function tzinfo(){},methods:{tzname:{$meth:function tzname(t){throw new x("tzinfo subclass must override tzname()")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime -> string name of time zone."},utcoffset:{$meth:function utcoffset(t){throw new x("tzinfo subclass must override utcoffset()")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime -> timedelta showing offset from UTC, negative values indicating West of UTC"},dst:{$meth:function dst(t){throw new x("tzinfo subclass must override dst()")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime -> DST offset as timedelta positive east of UTC."},fromutc:{$meth:function fromutc(e){if(!(e instanceof Nt))throw new z("fromutc() requires a datetime argument");if(e.$tzinfo!==this)throw new v("dt.tzinfo is not self");const n=r(e.tp$getattr(U));if(n===y)throw new v("fromutc() requires a non-None utcoffset() result");let i=r(e.tp$getattr(F));if(i===y)throw new v("fromutc() requires a non-None dst() result");const s=q(n,i,"Sub");if(t(s)&&(e=q(e,s,"Add"),i=r(e.tp$getattr(F)),i===y))throw new v("fromutc(): dt.dst gave inconsistent results; cannot convert");return q(e,i,"Add")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime in UTC -> datetime in local time."},__reduce__:{$meth(){let e,n;const i=T(this,new w("__getinitargs__"),y);e=i!==y?r(i,[]):new p;const s=T(this,new w("__getstate__"),y);return s!==y?n=r(s,[]):(n=T(this,new w("__dict__"),y),n=t(n)?n:y),new p(n===y?[this.ob$type,e]:[this.ob$type,e,n])},$flags:{NoArgs:!0},$textsig:null,$doc:"-> (cls, state)"}}}),At=h("datetime.IsoCalendarDate",{base:p,constructor:function IsoCalendarDate(t,e,n){this.y=t,this.w=e,this.wd=n,p.call(this,[t,e,n])},slots:{tp$new(t,e){const[n,i,s]=l("IsoCalendarDate",["year","week","weekday"],t,e);return new this.constructor(n,i,s)},$r(){return new w(`${this.tp$name}(year=${this.y}, week=${this.w}, weekday=${this.wd})`)}},getsets:{year:{$get(){return this.y}},week:{$get(){return this.w}},weekday:{$get(){return this.wd}}}}),xt=E.time=h("datetime.time",{constructor:function time(t=0,e=0,n=0,i=0,s=null,o=0){this.$hour=t,this.$min=e,this.$sec=n,this.$micro=i,this.$tzinfo=s||y,this.$fold=o,this.$hashcode=-1},slots:{tp$new(t,e){m("time",t,0,5);let n,[i,s,o,r,a,$]=l("time",["hour","minute","second","microsecond","tzinfo","fold"],t,e,[W,W,W,W,y,W]);if(i instanceof _&&6===(n=i.valueOf()).length&&(127&n[0])<24){const t=new this.constructor;return t.$setState(n,s===W?y:s),t}if([i,s,o,r,$]=_check_time_fields(i,s,o,r,$),_check_tzinfo_arg(a),this===xt.prototype)return new xt(i,s,o,r,a,$);{const t=new this.constructor;return xt.call(t,i,s,o,r,a,$),t}},tp$richcompare(t,e){return t instanceof xt?_do_compare(this,t,e):b},tp$hash(){if(-1===this.$hashcode){const e=this.$fold?r(this.tp$getattr(J),[],["fold",W]):this,n=r(e.tp$getattr(U));if(t(n)){let[t,e]=pyDivMod(new wt(0,3600*this.$hour+60*this.$min).nb$subtract(n),pt);e=e.nb$floor_divide(gt),0<=t&&t<=24?(t=I(t),e=I(e),this.$hashcode=u(new xt(t,e,this.$sec,this.$micro))):this.$hashcode=u(new p([t,e,new f(this.$sec),new f(this.$micro)]))}else this.$hashcode=u(e.$getState()[0])}return this.$hashcode},$r(){let t;return t=0!==this.$micro?`, ${this.$sec}, ${this.$micro}`:0!==this.$sec?`, ${this.$sec}`:"",t=`${this.tp$name}(${this.$hour}, ${this.$min}${t})`,this.$tzinfo!==y&&(t=t.slice(0,-1)+", tzinfo="+s(this.$tzinfo)+")"),this.$fold&&(t=t.slice(0,-1)+", fold=1)"),new w(t)},tp$str(){return this.tp$getattr(H).tp$call([])}},methods:{isoformat:{$meth:function isoformat(t){let e=_format_time(this.$hour,this.$min,this.$sec,this.$micro,t);const n=this.$tzstr();return n&&(e+=n),new w(e)},$flags:{NamedArgs:["timespec"],Defaults:[C]},$textsig:null,$doc:"Return string in ISO 8601 format, [HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM].\\n\\ntimespec specifies what components of the time to include.\\n"},strftime:{$meth:function strftime(t){if(!k(t))throw new z("must be str, not "+c(t));return _wrap_strftime(this,t=t.toString(),new p([1900,1,1,this.$hour,this.$min,this.$sec,0,1,-1].map((t=>new f(t)))))},$flags:{OneArg:!0},$textsig:null,$doc:"format -> strftime() style string."},__format__:{$meth:function __format__(t){if(!k(t))throw new z("must be str, not "+c(t));return t!==w.$empty?this.tp$getattr(X).tp$call([t]):this.tp$str()},$flags:{OneArg:!0},$textsig:null,$doc:"Formats self with strftime."},utcoffset:{$meth:function utcoffset(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(U),e=r(t,[y]);return _check_utc_offset("utcoffset",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.utcoffset(self)."},tzname:{$meth:function tzname(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(Y),e=r(t,[y]);return _check_tzname(e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.tzname(self)."},dst:{$meth:function dst(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(F),e=r(t,[y]);return _check_utc_offset("dst",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.dst(self)."},replace:{$meth:function replace(t,e){m("replace",t,0,5);let[n,i,s,o,r,a]=l("replace",["hour","minute","second","microsecond","tzinfo","fold"],t,e,[y,y,y,y,g,y]);return n===y&&(n=new f(this.$hour)),i===y&&(i=new f(this.$min)),s===y&&(s=new f(this.$sec)),o===y&&(o=new f(this.$micro)),r===g&&(r=this.$tzinfo),a===y&&(a=new f(this.$fold)),this.ob$type.tp$call([n,i,s,o,r],["fold",a])},$flags:{FastCall:!0},$textsig:null,$doc:"Return time with new specified fields."},__reduce_ex__:{$meth(t){return new p([this.ob$type,new p(this.$getState(R(t)))])},$flags:{OneArg:!0},$textsig:null,$doc:"__reduce_ex__(proto) -> (cls, state)"},__reduce__:{$meth(){return this.tp$getattr(new w("__reduce_ex__")).tp$call([new f(2)])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},classmethods:{fromisoformat:{$meth:function fromisoformat(t){if(!k(t))throw new z("fromisoformat: argument must be str");t=t.toString();try{return this.tp$call(_parse_isoformat_time(t))}catch{throw new v("Invalid isofrmat string: \'"+t+"\'")}},$flags:{OneArg:!0},$textsig:null,$doc:"string -> time from time.isoformat() output"}},getsets:{hour:{$get(){return new f(this.$hour)}},minute:{$get(){return new f(this.$min)}},second:{$get(){return new f(this.$sec)}},microsecond:{$get(){return new f(this.$micro)}},tzinfo:{$get(){return this.$tzinfo}},fold:{$get(){return new f(this.$fold)}}},proto:{$cmp(t,n){const s=this.$tzinfo,o=t.$tzinfo;let a,$,c;if(a=$=y,s===o?c=!0:(a=r(this.tp$getattr(U)),$=r(t.tp$getattr(U)),c=e(a,$,"Eq")),c)return _cmp([this.$hour,this.$min,this.$sec,this.$micro],[t.$hour,t.$min,t.$sec,t.$micro]);if(a===y||$===y){if("Eq"===n||"NotEq"===n)return 2;throw new z("cannot compare naive and aware times")}const h=60*this.$hour+this.$min-i(a.nb$floor_divide(gt)),m=60*t.$hour+t.$min-i($.nb$floor_divide(gt));return _cmp([h,this.$sec,this.$micro],[m,t.$sec,t.$micro])},$tzstr(){return _format_offset(r(this.tp$getattr(U)))},$getState(t=3){let[e,n]=$divMod(this.$micro,256),[i,s]=$divMod(e,256),o=this.$hour;this.$fold&&t>3&&(o+=128);const r=new _([o,this.$min,this.$sec,i,s,n]);return this.$tzinfo===y?[r]:[r,this.$tzinfo]},$setState(t,e){const[n,i,s,o,r,a]=t;n>127?(this.$fold=1,this.$hour=n-128):(this.$fold=0,this.$hour=n),this.$min=i,this.$sec=s,this.$micro=(o<<8|r)<<8|a,this.$tzinfo=e}}});xt.prototype.min=new xt(0,0,0),xt.prototype.max=new xt(23,59,59,999999),xt.prototype.resolution=new wt;const Nt=E.datetime=h("datetime.datetime",{base:vt,constructor:function datetime(t,e,n,i=0,s=0,o=0,r=0,a=null,$=0){this.$year=t,this.$month=e,this.$day=n,this.$hour=i,this.$min=s,this.$sec=o,this.$micro=r,this.$tzinfo=a||y,this.$fold=$,this.$hashcode=-1},slots:{tp$new(t,e){m("datetime",t,0,9);let n,[i,s,o,r,a,$,c,h,u]=l("time",["year","month","day","hour","minute","second","microsecond","tzinfo","fold"],t,e,[null,null,W,W,W,W,y,W]);if(i instanceof _&&10===(n=i.valueOf()).length&&(127&n[2])<=12){const t=new this.constructor;return t.$setState(n,null===s?y:s),t}if([i,s,o]=_check_date_fields(i,s,o),[r,a,$,c,u]=_check_time_fields(r,a,$,c,u),_check_tzinfo_arg(h),this===Nt.prototype)return new Nt(i,s,o,r,a,$,c,h,u);{const t=new this.constructor;return Nt.call(t,i,s,o,r,a,$,c,h,u),t}},$r(){const t=[this.$year,this.$month,this.$day,this.$hour,this.$min,this.$sec,this.$micro];0===t[t.length-1]&&t.pop(),0===t[t.length-1]&&t.pop();let e=`${this.tp$name}(${t.join(", ")})`;return this.$tzinfo!==y&&(e=e.slice(0,-1)+", tzinfo="+s(this.$tzinfo)+")"),this.$fold&&(e=e.slice(0,-1)+", fold=1)"),new w(e)},tp$str(){return this.tp$getattr(H).tp$call([],["sep",new w(" ")])},tp$richcompare(t,e){if(t instanceof Nt)return _do_compare(this,t,e);if(!(t instanceof vt))return b;if("Eq"===e||"NotEq"===e)return"NotEq"===e;throw new z(`can\'t compare \'${c(this)}\' to \'${c(t)}\'`)},tp$as_number:!0,nb$add(t){if(!(t instanceof wt))return b;let e=new wt(this.$toOrdinal(),3600*this.$hour+60*this.$min+this.$sec,this.$micro);e=q(e,t,"Add");let[n,i]=$divMod(e.$secs,3600),[s,o]=$divMod(i,60);if(0 string in ISO 8601 format, YYYY-MM-DDT[HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM].\\nsep is used to separate the year from the time, and defaults to \'T\'.\\ntimespec specifies what components of the time to include (allowed values are \'auto\', \'hours\', \'minutes\', \'seconds\', \'milliseconds\', and \'microseconds\').\\n"},utcoffset:{$meth:function utcoffset(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(U),e=r(t,[this]);return _check_utc_offset("utcoffset",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.utcoffset(self)."},tzname:{$meth:function tzname(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(Y),e=r(t,[this]);return _check_tzname(e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.tzname(self)."},dst:{$meth:function dst(){if(this.$tzinfo===y)return y;const t=this.$tzinfo.tp$getattr(F),e=r(t,[this]);return _check_utc_offset("dst",e),e},$flags:{NoArgs:!0},$textsig:null,$doc:"Return self.tzinfo.dst(self)."},replace:{$meth:function replace(t,e){m("replace",t,0,8);let[n,i,s,o,r,a,$,c,h]=l("replace",["year","month","day","hour","minute","second","microsecond","tzinfo","fold"],t,e,[y,y,y,y,y,y,y,g,y]);return n===y&&(n=new f(this.$year)),i===y&&(i=new f(this.$month)),s===y&&(s=new f(this.$day)),o===y&&(o=new f(this.$hour)),r===y&&(r=new f(this.$min)),a===y&&(a=new f(this.$sec)),$===y&&($=new f(this.$micro)),c===g&&(c=this.$tzinfo),h===y&&(h=new f(this.$fold)),this.ob$type.tp$call([n,i,s,o,r,a,$,c],["fold",h])},$flags:{FastCall:!0},$textsig:null,$doc:"Return datetime with new specified fields."},astimezone:{$meth:function astimezone(t){if(t===y)t=this.$localTimezone();else if(!(t instanceof Mt))throw new z("tz argument must be an instance of tzinfo");let e,n=this.$tzinfo;if(n===y?(n=this.$localTimezone(),e=r(n.tp$getattr(U),[this])):(e=r(n.tp$getattr(U),[this]),e===y&&(n=r(this.tp$getattr(J),[],["tzinfo",y]).$localTimezone(),e=r(n.tp$getattr(U),[this]))),t===n)return this;const i=r(this.nb$subtract(e).tp$getattr(J),[],["tzinfo",t]);return t.tp$getattr(P).tp$call([i])},$flags:{NamedArgs:["tz"],Defaults:[y]},$textsig:null,$doc:"tz -> convert to local time in new timezone tz\\n"},__reduce_ex__:{$meth(t){return new p([this.ob$type,new p(this.$getState(R(t)))])},$flags:{OneArg:!0},$textsig:null,$doc:"__reduce_ex__(proto) -> (cls, state)"},__reduce__:{$meth(){return this.tp$getattr(new w("__reduce_ex__")).tp$call([new f(2)])},$flags:{NoArgs:!0},$textsig:null,$doc:"__reduce__() -> (cls, state)"}},classmethods:{now:{$meth:function now(t){const e=$.time.tp$call([]);return this.tp$getattr(B).tp$call([e,t])},$flags:{NamedArgs:["tz"],Defaults:[y]},$textsig:"($type, /, tz=None)",$doc:"Returns new datetime object representing current time local to tz.\\n\\n tz\\n Timezone object.\\n\\nIf no tz is specified, uses local timezone."},utcnow:{$meth:function utcnow(){const t=$.time.tp$call([]);return this.tp$getattr(L).tp$call([t])},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a new datetime representing UTC day and time."},fromtimestamp:{$meth:function fromtimestamp(t,e){return _check_tzinfo_arg(e),this.prototype.$fromtimestamp.call(this,t,e!==y,e)},$flags:{NamedArgs:["timestamp","tz"],Defaults:[y]},$textsig:null,$doc:"timestamp[, tz] -> tz\'s local time from POSIX timestamp."},utcfromtimestamp:{$meth:function utcfromtimestamp(t){return this.prototype.$fromtimestamp.call(this,t,!0,y)},$flags:{OneArg:!0},$textsig:null,$doc:"Construct a naive UTC datetime from a POSIX timestamp."},strptime:{$meth:function strptime(t,e){return null===ot?Sk.misceval.chain(Sk.importModule("_strptime",!1,!0),(n=>(ot=n.tp$getattr(new w("_strptime_datetime")),ot.tp$call([this,t,e])))):ot.tp$call([this,t,e])},$flags:{MinArgs:2,MaxArgs:2},$textsig:null,$doc:"string, format -> new datetime parsed from a string (like time.strptime())."},combine:{$meth:function combine(t,e,n){if(!(t instanceof vt))throw new z("date argument must be a date instance");if(!(e instanceof xt))throw new z("time argument must be a time instance");n===g&&(n=e.$tzinfo);const i=[t.$year,t.$month,t.$day,e.$hour,e.$min,e.$sec,e.$micro].map((t=>new f(t)));return i.push(n),this.tp$call(i,["fold",new f(e.$fold)])},$flags:{NamedArgs:["date","time","tzinfo"],Defaults:[g]},$textsig:null,$doc:"date, time -> datetime with same date and time fields"},fromisoformat:{$meth:function fromisoformat(t){if(!k(t))throw new z("fromisoformat: argument must be str");const e=(t=t.toString()).slice(0,10),n=t.slice(11);let i,s;try{i=_parse_isoformat_date(e)}catch(o){throw new v("Invalid isoformat string: \'"+t+"\'")}if(n)try{s=_parse_isoformat_time(n)}catch(o){throw new v("Invalid isoformat string: \'"+t+"\'")}else s=[W,W,W,W,y];return this.tp$call(i.concat(s))},$flags:{OneArg:!0},$textsig:null,$doc:"string -> datetime from datetime.isoformat() output"}},getsets:{hour:{$get(){return new f(this.$hour)}},minute:{$get(){return new f(this.$min)}},second:{$get(){return new f(this.$sec)}},microsecond:{$get(){return new f(this.$micro)}},tzinfo:{$get(){return this.$tzinfo}},fold:{$get(){return new f(this.$fold)}}},proto:{$cmp(n,i){const s=this.$tzinfo,o=n.$tzinfo;let a,$,c;if(a=$=y,s===o)c=!0;else{if(a=r(this.tp$getattr(U)),$=r(n.tp$getattr(U)),"Eq"===i||"NotEq"===i){const t=r(this.tp$getattr(J),[],["fold",new f(Number(!this.$fold))]);if(e(a,r(t.tp$getattr(U)),"NotEq"))return 2;const i=r(n.tp$getattr(J),[],["fold",new f(Number(!n.$fold))]);if(e($,r(i.tp$getattr(U)),"NotEq"))return 2}c=e(a,$,"Eq")}if(c)return _cmp([this.$year,this.$month,this.$day,this.$hour,this.$min,this.$sec,this.$micro],[n.$year,n.$month,n.$day,n.$hour,n.$min,n.$sec,n.$micro]);if(a===y||$===y){if("Eq"===i||"NotEq"===i)return 2;throw new z("cannot compare naive and aware datetimes")}const h=this.nb$subtract(n);return h.$days<0?-1:t(h)?1:0},$mkTime(){const t=new Nt(1970,1,1),e=this.nb$subtract(t).nb$floor_divide(yt);function local(e){const[n,i,s,o,r,a]=$.localtime.tp$call([e]).v;return Nt.tp$call([n,i,s,o,r,a]).nb$subtract(t).nb$floor_divide(yt)}let n,i,s=local(e).nb$subtract(e),o=e.nb$subtract(s),r=local(o);if(r.ob$eq(e)){if(n=o.nb$add([new f(-86400),new f(86400)][this.$fold]),i=local(n).nb$subtract(n),s.ob$eq(i))return o}else i=r.nb$subtract(o);n=e.nb$subtract(i);if(local(n).ob$eq(e))return n;if(r.ob$eq(e))return o;const a=o.ob$ge(n)?o:n;return[a,o===a?n:o][this.$fold]},$fromtimestamp(t,n,s){let o;if(!N(t))throw new z("a number is required, (got \'"+c(t)+"\'");[o,t]=modf(t);let a=intRound(q(o,nt,"Mult"));a=a.v,t=t.v,a>=1e6?(t+=1,a-=1e6):a<0&&(t-=1,a+=1e6),t=new f(t),Number.isInteger(a)||(a=Math.trunc(a)),a=new f(a);const h=n?$.gmtime:$.localtime;function converter(t){return h.tp$call([t]).v}let[m,u,l,d,_,p]=converter(t);p=new f(Math.min(i(p),59));let g=r(this,[m,u,l,d,_,p,a,s]);if(s===y){const n=86400;[m,u,l,d,_,p]=converter(q(t,new f(n),"Sub"));const i=r(this,[m,u,l,d,_,p,a,s]),o=q(q(g,i,"Sub"),new wt(0,n),"Sub");if(o.$days<0){[m,u,l,d,_,p]=converter(q(t,q(o,yt,"FloorDiv"),"Add"));const n=r(this,[m,u,l,d,_,p,a,s]);e(n,g,"Eq")&&(g.$fold=1)}}else g=r(s.tp$getattr(new w("fromutc")),[g]);return g},$localTimezone(){let t;t=this.$tzinfo===y?this.$mkTime():this.nb$subtract(kt).nb$floor_divide(yt);const e=$.localtime.tp$call([t]),n=(Nt.tp$call(e.v.slice(0,6)),e.tp$getattr(new w("tm_gmtoff"))),i=e.tp$getattr(new w("tm_zone"));return new St(wt.tp$call([W,n]),i)},$getState(t=3){let[e,n]=$divMod(this.$year,256),[i,s]=$divMod(this.$micro,256),[o,r]=$divMod(i,256),a=this.$month;this.$fold&&t>3&&(a+=128);const $=new _([e,n,a,this.$day,this.$hour,this.$min,this.$sec,o,r,s]);return this.$tzinfo===y?[$]:[$,this.$tzinfo]},$setState(t,e){const[n,i,s,o,r,a,$,c,h,m]=t;s>127?(this.$fold=1,this.$month=s-128):(this.$fold=0,this.$month=s),this.$year=256*n+i,this.$day=o,this.$hour=r,this.$min=a,this.$sec=$,this.$micro=(c<<8|h)<<8|m,this.$tzinfo=e}}});function _isoweek1monday(t){const e=_ymd2ord(t,1,1),n=(e+6)%7;let i=e-n;return n>3&&(i+=7),i}Nt.prototype.min=new Nt(1,1,1),Nt.prototype.max=new Nt(9999,12,31,23,59,59,999999),Nt.prototype.resolution=new wt(0,0,1);const St=E.timezone=h("datetime.timezone",{base:Mt,constructor:function timezone(t,n){if(this.$offset=t,this.$name=n||y,!e(this.$minoffset,t,"LtE")||!e(this.$maxoffset,t,"GtE"))throw new v("offset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).")},slots:{tp$new(e,n){let[i,s]=l("timezone",["offset","name"],e,n,[null]);if(!(i instanceof wt))throw new z("offset must be a timedelta");if(null===s){if(!t(i))return this.utc;s=y}else if(!k(s))throw new z("name must be a string");if(this===St.prototype)return new St(i,s);{const t=new this.constructor;return St.call(t,i,s),t}},tp$richcompare(t,n){if(!(t instanceof St))return b;const i=e(this.$offset,t.$offset,"Eq");return"NotEq"===n?!i:"Eq"===n||i&&o(n)?i:b},$r(){return this===this.utc?new w("datetime.timezone.utc"):this.$name===y?new w(`${this.tp$name}(${s(this.$offset)})`):new w(`${this.tp$name}(${s(this.$offset)}, ${s(this.$name)})`)},tp$str(){return this.tp$getattr(Y).tp$call([y])},tp$hash(){return u(this.$offset)}},methods:{tzname:{$meth:function tzname(t){if(t instanceof Nt||t===y)return this.$name===y?this.$nameFromOff(this.$offset):this.$name;throw new z("tzname() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"If name is specified when timezone is created, returns the name. Otherwise returns offset as \'UTC(+|-)HH:MM\'."},utcoffset:{$meth:function utcoffset(t){if(t instanceof Nt||t===y)return this.$offset;throw new z("utcoffset() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"Return fixed offset."},dst:{$meth:function dst(t){if(t instanceof Nt||t===y)return y;throw new z("dst() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"Return None."},fromutc:{$meth:function fromutc(t){if(t instanceof Nt){if(t.$tzinfo!==this)throw new v("fromutc: dt.tzinfo is not self");return q(t,this.$offset,"Add")}throw new z("fromutc() argument must be a datetime instance or None")},$flags:{OneArg:!0},$textsig:null,$doc:"datetime in UTC -> datetime in local time."},__getinitargs__:{$meth(){return this.$name===y?new p([this.$offset]):new p([this.$offset,this.$name])},$flags:{NoArgs:!0}}},proto:{$maxoffset:new wt(0,86399,999999),$minoffset:new wt(-1,0,1),$nameFromOff(n){if(!t(n))return new w("UTC");let i,s,o,r,a,$;return e(n,bt,"Lt")?(i="-",n=n.nb$negative()):i="+",[s,o]=pyDivMod(n,pt),[r,o]=pyDivMod(o,gt),a=o.$secs,$=o.$micro,new w($?`UTC${i}${_d(s)}:${_d(r)}:${_d(a)}.${_d($,"0",6)}`:a?`UTC${i}${_d(s)}:${_d(r)}:${_d(a)}`:`UTC${i}${_d(s)}:${_d(r)}`)}}});St.prototype.utc=new St(new wt(0)),St.prototype.min=new St(new wt(0,-86340,0)),St.prototype.max=new St(new wt(0,86340,0));const kt=new Nt(1970,1,1,0,0,0,0,St.prototype.utc);return E}))}',"src/lib/document.js":'function $builtinmodule(){const{builtin:{str:t},misceval:{callsimArray:e},ffi:{toPy:r},abstr:{gattr:a}}=Sk,n={__name__:new t("document")},_=r(Sk.global.document);return Sk.abstr.setUpModuleMethods("document",n,{__getattr__:{$meth:t=>a(_,t,!0),$flags:{OneArg:!0}},__dir__:{$meth:()=>e(_.tp$getattr(t.$dir)),$flags:{NoArgs:!0}}}),n}',"src/lib/fractions.js":'function $builtinmodule(t){const e={};return Sk.misceval.chain(Sk.importModule("math",!1,!0),(t=>(e.math=t,Sk.importModule("sys",!1,!0))),(t=>(e.sys=t,fractionsMod(e))))}function fractionsMod({math:t,sys:e}){const{builtin:{int_:n,bool:{true$:i,false$:r},none:{none$:s},NotImplemented:{NotImplemented$:o},tuple:a,float_:$,complex:u,str:h,isinstance:l,TypeError:m,ZeroDivisionError:d,ValueError:f,NotImplementedError:c,abs:_,round:b,pow:p},ffi:{remapToPy:g},abstr:{buildNativeClass:w,copyKeywordsToNamedArgs:v,numberBinOp:y,typeName:k,lookupSpecial:E,checkArgsLen:N},misceval:{isTrue:F,richCompareBool:A,callsimArray:S,objectRepr:M}}=Sk,O={__name__:new h("fractions"),__all__:g(["Fraction"])},D=/^\\s*(?[-+]?)(?=\\d|\\.\\d)(?\\d*)(?:(?:\\/(?\\d+))?|(?:\\.(?\\d*))?(?:E(?[-+]?\\d+))?)\\s*$/i,q=new n(0),x=new n(1),z=new n(2),I=new n(10),T=new h("numerator"),R=new h("denominator"),B=new h("as_integer_ratio"),C=new h("from_float"),getNumer=t=>t.tp$getattr(T),getDenom=t=>t.tp$getattr(R),mul=(t,e)=>y(t,e,"Mult"),div=(t,e)=>y(t,e,"Div"),pow=(t,e)=>y(t,e,"Pow"),add=(t,e)=>y(t,e,"Add"),sub=(t,e)=>y(t,e,"Sub"),floorDiv=(t,e)=>y(t,e,"FloorDiv"),divmod=(t,e)=>y(t,e,"DivMod"),mod=(t,e)=>y(t,e,"Mod"),K=t.tp$getattr(new h("gcd")),eq=(t,e)=>A(t,e,"Eq"),lt=(t,e)=>A(t,e,"Lt"),ge=(t,e)=>A(t,e,"GtE"),L={NoArgs:!0},P={OneArg:!0},j=e.tp$getattr(new h("hash_info")),G=j.tp$getattr(new h("modulus")),V=j.tp$getattr(new h("inf"));function _operator_fallbacks(t,e){return[function(n){return isRational(n)?t(this,n):n instanceof $?e(this.nb$float(),n):n instanceof u?e(S(u,[this]),n):o},function(n){return isRational(n)?t(n,this):n instanceof $?e(n,this.nb$float()):n instanceof u?e(n,S(u,[this])):o}]}const[Z,H]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e);return S(ot,[add(mul(getNumer(t),i),mul(getNumer(e),n)),mul(n,i)])}),add),[J,Q]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e);return S(ot,[sub(mul(getNumer(t),i),mul(getNumer(e),n)),mul(n,i)])}),sub),[U,W]=_operator_fallbacks(((t,e)=>S(ot,[mul(getNumer(t),getNumer(e)),mul(getDenom(t),getDenom(e))])),mul),[X,Y]=_operator_fallbacks(((t,e)=>S(ot,[mul(getNumer(t),getDenom(e)),mul(getDenom(t),getNumer(e))])),div),[tt,et]=_operator_fallbacks(((t,e)=>floorDiv(mul(getNumer(t),getDenom(e)),mul(getDenom(t),getNumer(e)))),floorDiv),[nt,it]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e),[r,s]=divmod(mul(getNumer(t),i),mul(n,getNumer(e))).valueOf();return new a([r,S(ot,[s,mul(n,i)])])}),divmod),[rt,st]=_operator_fallbacks(((t,e)=>{const n=getDenom(t),i=getDenom(e),r=mod(mul(getNumer(t),i),mul(getNumer(e),n));return S(ot,[r,mul(n,i)])}),mod),ot=O.Fraction=w("fractions.Fraction",{constructor:function(t,e){this.$num=t||q,this.$den=e||x},slots:{tp$new(t,e){N("Fraction",t,0,2);let[r,o,a]=v("Fraction",["numerator","denominator","_normalize"],t,e,[q,s,i]);const u=new this.constructor;if(o===s){if(r.ob$type===n)return u.$num=r,u.$den=x,u;if(isRational(r))return u.$num=getNumer(r),u.$den=getDenom(r),u;if(r instanceof $)return[u.$num,u.$den]=S(r.tp$getattr(B)).valueOf(),u;if(!(r instanceof h))throw new m("argument should be a string or a Rational instance");{const t=r.toString().match(D);if(null===t)throw new f("Invalid literal for Fraction: "+M(r));r=new n(t.groups.num||"0");const e=t.groups.denom;if(e)o=new n(e);else{o=x;const e=t.groups.decimal;if(e){const t=new n(""+10**e.length);r=add(mul(r,t),new n(e)),o=mul(o,t)}let i=t.groups.exp;i&&(i=new n(i),lt(i,q)?o=mul(o,pow(I,i.nb$negative())):r=mul(r,pow(I,i)))}"-"==t.groups.sign&&(r=r.nb$negative())}}else if(r.ob$type===n&&o.ob$type===n);else{if(!isRational(r)||!isRational(o))throw new m("both arguments should be Rational instances");[r,o]=[mul(getNumer(r),getDenom(o)),mul(getNumer(o),getDenom(r))]}if(eq(o,q))throw new d(`Fraction(${r}, 0)`);if(F(a)){let t=S(K,[r,o]);lt(o,q)&&(t=t.nb$negative()),r=floorDiv(r,t),o=floorDiv(o,t)}return u.$num=r,u.$den=o,u},$r(){const t=E(this.ob$type,h.$name);return new h(`${t}(${this.$num}, ${this.$den})`)},tp$str(){return eq(this.$den,x)?new h(this.$num):new h(`${this.$num}/${this.$den}`)},tp$hash(){const t=p(this.$den,sub(G,z),G);let e;e=F(t)?mod(mul(_(this.$num),t),G):V;let n=ge(this,q)?e:e.nb$negative();return n=n.tp$hash(),-1===n?-2:n},tp$richcompare(t,e){const op=(t,n)=>A(t,n,e);if("Eq"===e||"NotEq"==e){if(t.ob$type===n){const n=eq(this.$num,t)&&eq(this.$den,x);return"Eq"===e?n:!n}if(t instanceof ot||t instanceof n){const n=eq(this.$num,getNumer(t))&&eq(this.$den,getDenom(t));return"Eq"===e?n:!n}t instanceof u&&eq(t.tp$getattr(new h("imag")),q)&&(t=t.tp$getattr(new h("real")))}return isRational(t)?op(mul(getNumer(this),getDenom(t)),mul(getDenom(this),getNumer(t))):t instanceof $?Number.isFinite(t.valueOf())?op(this,S(this.tp$getattr(C),[t])):op(new $(0),t):o},tp$as_number:!0,nb$add:Z,nb$reflected_add:H,nb$subtract:J,nb$reflected_subtract:Q,nb$multiply:U,nb$reflected_multiply:W,nb$divide:X,nb$reflected_divide:Y,nb$floor_divide:tt,nb$reflected_floor_divide:et,nb$divmod:nt,nb$reflected_divmod:it,nb$remainder:rt,nb$reflected_remainder:st,nb$power(t){if(isRational(t)){if(eq(getDenom(t),x)){let e=getNumer(t);return ge(e,q)?S(ot,[pow(this.$num,e),pow(this.$den,e)],["_normalize",r]):ge(this.$num,q)?(e=e.nb$negative(),S(ot,[pow(this.$den,e),pow(this.$num,e)],["_normalize",r])):(e=e.nb$negative(),S(ot,[pow(this.$den.nb$negative(),e),pow(this.$num.nb$negative(),e)],["_normalize",r]))}return pow(this.nb$float(),S($,[t]))}return pow(this.nb$float(),t)},nb$reflected_power(t){return eq(this.$den,x)&&ge(this.$num,q)?pow(t,this.$num):isRational(t)?pow(new ot(getNumer(t),getDenom(t)),this):eq(this.$den,x)?pow(t,this.$num):pow(t,this.nb$float())},nb$positive(){return new ot(this.$num,this.$den)},nb$negative(){return new ot(this.$num.nb$negative(),this.$den)},nb$abs(){return new ot(this.$num.nb$abs(),this.$den)},nb$bool(){return this.$num.nb$bool()},nb$float(){return div(this.$num,this.$den)}},methods:{as_integer_ratio:{$meth(){return new a([this.$num,this.$den])},$flags:L},limit_denominator:{$meth(t){if(lt(t,x))throw new f("max_denominator should be at least 1");if(ge(t,this.$den))return S(ot,[this]);let[e,n,i,r]=[q,x,x,q],s=this.$num,o=this.$den;for(;;){const a=floorDiv(s,o),$=add(n,mul(a,r));if(lt(t,$))break;[e,n,i,r]=[i,r,add(e,mul(a,i)),$],[s,o]=[o,sub(s,mul(a,o))]}const a=floorDiv(sub(t,n),r),$=S(ot,[add(e,mul(a,i)),add(n,mul(a,r))]),u=S(ot,[i,r]);return ge(_(sub($,this)),_(sub(u,this)))?u:$},$flags:{NamedArgs:["max_denominator"],Defaults:[new n(1e6)]}},__trunc__:{$meth(){return lt(this.$num,q)?floorDiv(this.$num.nb$negative(),this.$den).nb$negative():floorDiv(this.$num,this.$den)},$flags:L},__floor__:{$meth(){return floorDiv(this.$num,this.$den)},$flags:L},__ceil__:{$meth(){return floorDiv(this.$num.nb$negative(),this.$den).nb$negative()},$flags:L},__round__:{$meth(t){if(t===s){const[t,e]=divmod(this.$num,this.$den).valueOf(),n=mul(e,z);return lt(n,this.$den)?t:lt(this.$den,n)?add(t,x):eq(mod(t,z),q)?t:add(t,x)}const e=pow(I,_(t));return lt(q,t)?S(ot,[b(mul(this,e)),e]):S(ot,[mul(b(div(this,e)),e)])},$flags:{NamedArgs:["ndigits"],Defaults:[s]}},__reduce__:{$meth(){return new a([this.ob$type,new a([new h(this)])])},$flags:L},__copy__:{$meth(){return this.ob$type===ot?this:S(this.ob$type,[this.$num,this.$den])},$flags:L},__deepcopy__:{$meth(t){return this.ob$type===ot?this:S(this.ob$type,[this.$num,this.$den])},$flags:P}},classmethods:{from_float:{$meth(t){if(t instanceof n)return S(this,[t]);if(t instanceof $){const[e,n]=S(t.tp$getattr(B)).valueOf();return S(this,[e,n])}throw new m(`${k(this)}.from_float() only takes floats, not ${M(t)}, (${k(t)})`)},$flags:P},from_decimal:{$meth(){throw c("from_decimal not yet implemented in SKulpt")},$flags:P}},getsets:{numerator:{$get(){return this.$num}},denominator:{$get(){return this.$den}},_numerator:{$get(){return this.$num},$set(t){this.$num=t}},_denominator:{$get(){return this.$den},$set(t){this.$den=t}}}}),at=new a([n,ot]),isRational=t=>F(l(t,at));return O}',"src/lib/functools.js":'function $builtinmodule(){const t={};return Sk.misceval.chain(Sk.importModule("collections",!1,!0),(e=>(t._namedtuple=e.$d.namedtuple,functools_mod(t))))}function functools_mod(t){const{object:e,int_:n,str:r,list:s,tuple:a,dict:i,none:{none$:o},bool:{false$:c},NotImplemented:{NotImplemented$:_},bool:l,func:p,method:u,TypeError:h,RuntimeError:d,ValueError:f,NotImplementedError:m,AttributeErrror:w,OverflowError:g,checkNone:$,checkBool:y,checkCallable:k,checkClass:b}=Sk.builtin,{callsimArray:x,callsimOrSuspendArray:A,iterFor:S,chain:E,isIndex:v,asIndexSized:N,isTrue:P,richCompareBool:j,objectRepr:R}=Sk.misceval,{remapToPy:z}=Sk.ffi,{buildNativeClass:q,setUpModuleMethods:T,keywordArrayFromPyDict:I,keywordArrayToPyDict:D,objectHash:C,lookupSpecial:M,copyKeywordsToNamedArgs:W,typeName:F,iter:U,gattr:O}=Sk.abstr,{getSetDict:G,getAttr:B,setAttr:K}=Sk.generic;function proxyFail(t){return new p((()=>{throw new m(t+" is not yet implemented in skulpt")}))}Object.assign(t,{__name__:new r("functools"),__doc__:new r("Tools for working with functions and callable objects"),__all__:new s(["update_wrapper","wraps","WRAPPER_ASSIGNMENTS","WRAPPER_UPDATES","total_ordering","cmp_to_key","cache","lru_cache","reduce","partial","partialmethod","singledispatch","singledispatchmethod","cached_property"].map((t=>new r(t)))),WRAPPER_ASSIGNMENTS:new a(["__module__","__name__","__qualname__","__doc__","__annotations__"].map((t=>new r(t)))),WRAPPER_UPDATES:new a([new r("__dict__")]),singledispatch:proxyFail("singledispatch"),singledispatchmethod:proxyFail("singledispatchmethod"),cached_property:proxyFail("cached_property")});const L=new r("cache_parameters");function _lru_cache(e,n){if(n||(n=c),v(e))(e=N(e,g))<0&&(e=0);else{if(k(e)&&y(n)){const r=e,s=new V(r,e=128,n);return s.tp$setattr(L,new p((()=>z({maxsize:e,typed:n})))),A(t.update_wrapper,[s,r])}if(!$(e))throw new h("Expected first argument to be an integer, a callable, or None")}return new p((r=>{const s=new V(r,e,n);return s.tp$setattr(L,new p((()=>z({maxsize:e,typed:n})))),A(t.update_wrapper,[s,r])}))}const H=t._CacheInfo=x(t._namedtuple,["CacheInfo",["hits","misses","maxsize","currsize"]].map((t=>z(t))),["module",new r("functools")]),V=q("functools._lru_cache_wrapper",{constructor:function _lru_cache_wrapper(t,e,n,r){if(!k(t))throw new h("the first argument must be callable");let s;if($(e))s=infinite_lru_cache_wrapper,e=-1;else{if(!v(e))throw new h("maxsize should be integer or None");(e=N(e,g))<0&&(e=0),s=0===e?uncached_lru_cache_wrapper:bounded_lru_cache_wrapper}this.root={},this.root.prev=this.root.next=this.root,this.wrapper=s,this.maxsize=e,this.typed=n,this.cache=new i([]),this.func=t,this.misses=this.hits=0,this.$d=new i([])},slots:{tp$new(t,e){const[n,r,s,a]=W("_lru_cache_wrapper",["user_function","maxsize","typed","cache_info_type"],t,e);return new V(n,r,s,a)},tp$call(t,e){return this.wrapper(t,e)},tp$descr_get(t,e){return null===t?this:new u(this,t)},tp$doc:"Create a cached callable that wraps another function.\\n\\nuser_function: the function being cached\\n\\nmaxsize: 0 for no caching\\n None for unlimited cache size\\n n for a bounded cache\\n\\ntyped: False cache f(3) and f(3.0) as identical calls\\n True cache f(3) and f(3.0) as distinct calls\\n\\ncache_info_type: namedtuple class with the fields:\\n hits misses currsize maxsize\\n"},methods:{cache_info:{$meth(){return A(H,[this.hits,this.misses,-1===this.maxsize?o:this.maxsize,this.cache.get$size()].map((t=>z(t))))},$flags:{NoArgs:!0},$doc:"Report cache statistics"},cache_clear:{$meth(){return this.hits=this.misses=0,this.root={},this.root.next=this.root.prev=this.root,A(this.cache.tp$getattr(new r("clear"),!0))},$flags:{NoArgs:!0},$doc:"Clear the cache and cache statistics"},__deepcopy__:{$meth(t){return this},$flags:{OneArg:!0}},__copy__:{$meth(){return this},$flags:{NoArgs:!0}}},getsets:{__dict__:G}});function infinite_lru_cache_wrapper(t,e){const n=_make_key(t,e,this.typed),r=this.cache.mp$lookup(n);return void 0!==r?(this.hits++,r):(this.misses++,E(A(this.func,t,e),(t=>(this.cache.mp$ass_subscript(n,t),t))))}function uncached_lru_cache_wrapper(t,e){return this.misses++,A(this.func,t,e)}function bounded_lru_cache_wrapper(t,e){const n=_make_key(t,e,this.typed),r=this.cache.mp$lookup(n);if(void 0!==r){const{result:t}=r;return lru_cache_extract_link(r),lru_cache_append_link(this,r),this.hits++,t}return this.misses++,E(A(this.func,t,e),(t=>{if(void 0!==this.cache.mp$lookup(n))return t;if(this.cache.get$size()t.ob$type)),...i.map((t=>t.ob$type)));else if(1===s.length&&X.has(s[0].ob$type))return s[0];return new J(s)}function partial_adjust_args_kwargs(t,e){if(t=this.arg_arr.concat(t),e){e=D(e);const t=this.kwdict.dict$copy();t.dict$merge(e),e=I(t)}else e=I(this.kwdict);return{args:t,kwargs:e}}function partial_new(t,e){if(t.length<1)throw new h("type \'partial\' takes at least 1 argument");let n,r,s=t.shift();if(s instanceof this.sk$builtinBase){const t=s;s=t.fn,n=t.arg_arr,r=t.kwdict}this.check$func(s),n&&(t=n.concat(t));let a=D(e=e||[]);if(r){const t=r.dict$copy();t.dict$merge(a),a=t}if(this.sk$builtinBase===this.constructor)return new this.constructor(s,t,a);{const e=new this.constructor;return this.sk$builtinBase.call(e,s,t,a),e}}function partial_repr(){if(this.in$repr)return new r("...");this.in$repr=!0;const t=[R(this.fn)];return this.arg_arr.forEach((e=>{t.push(R(e))})),this.kwdict.$items().forEach((([e,n])=>{t.push(e.toString()+"="+R(n))})),this.in$repr=!1,new r(this.tp$name+"("+t.join(", ")+")")}t.partial=q("functools.partial",{constructor:function partial(t,e,n){this.fn=t,this.arg_arr=e,this.arg_tup=new a(e),this.kwdict=n,this.in$repr=!1,this.$d=new i([])},slots:{tp$new:partial_new,tp$call(t,e){return({args:t,kwargs:e}=this.adj$args_kws(t,e)),this.fn.tp$call(t,e)},tp$doc:"partial(func, *args, **keywords) - new function with partial application\\n of the given arguments and keywords.\\n",$r:partial_repr,tp$getattr:B,tp$setattr:K},getsets:{func:{$get(){return this.fn},$doc:"function object to use in future partial calls"},args:{$get(){return this.arg_tup},$doc:"tuple of arguments to future partial calls"},keywords:{$get(){return this.kwdict},$doc:"dictionary of keyword arguments to future partial calls"},__dict__:G},methods:{},classmethods:Sk.generic.classGetItem,proto:{adj$args_kws:partial_adjust_args_kwargs,check$func(t){if(!k(t))throw new h("the first argument must be callable")}}}),t.partialmethod=q("functools.partialmethod",{constructor:function partialmethod(t,e,n){this.fn=t,this.arg_arr=e,this.arg_tup=new a(e),this.kwdict=n},slots:{tp$new:partial_new,tp$doc:"Method descriptor with partial application of the given arguments\\n and keywords.\\n\\n Supports wrapping existing descriptors and handles non-descriptor\\n callables as instance methods.\\n ",$r:partial_repr,tp$descr_get(e,n){let r;if(this.fn.tp$descr_get){const s=this.fn.tp$descr_get(e,n);if(s!==this.fn){if(!k(s))throw new h("type \'partial\' requires a callable");r=new t.partial(s,this.arg_arr.slice(0),this.kwdict.dict$copy());const e=M(s,this.str$self);void 0!==e&&r.tp$setattr(this.str$self,e)}}return void 0===r&&(r=this.make$unbound().tp$descr_get(e,n)),r}},methods:{_make_unbound_method:{$meth(){return this.make$unbound()},$flags:{NoArgs:!0}}},classmethods:Sk.generic.classGetItem,getsets:{func:{$get(){return this.fn},$doc:"function object to use in future partial calls"},args:{$get(){return this.arg_tup},$doc:"tuple of arguments to future partial calls"},keywords:{$get(){return this.kwdict},$doc:"dictionary of keyword arguments to future partial calls"},__dict__:G},proto:{str$self:new r("__self__"),make$unbound(){const t=this;function _method(e,n){const r=e.shift();return({args:e,kwargs:n}=t.adj$args_kws(e,n)),e.unshift(r),A(t.fn,e,n)}return _method.co_fastcall=!0,new p(_method)},adj$args_kws:partial_adjust_args_kwargs,check$func(t){if(!k(t)&&void 0===t.tp$descr_get)throw new h(R(t)+" is not callable or a descriptor")}}});const Y={__lt__:r.$lt,__le__:r.$le,__gt__:r.$gt,__ge__:r.$ge};function from_slot(t,e){const n=Y[t];function compare_slot(t,r){let s=x(t.tp$getattr(n),[r]);return s===_?s:(s=P(s),new l(e(s,t,r)))}return compare_slot.co_name=n,compare_slot}const Z=from_slot("__lt__",((t,e,n)=>!t&&j(e,n,"NotEq"))),tt=from_slot("__lt__",((t,e,n)=>t||j(e,n,"Eq"))),et=from_slot("__lt__",(t=>!t)),nt=from_slot("__le__",((t,e,n)=>!t||j(e,n,"Eq"))),rt=from_slot("__le__",((t,e,n)=>t&&j(e,n,"NotEq"))),st=from_slot("__le__",(t=>!t)),at=from_slot("__gt__",((t,e,n)=>!t&&j(e,n,"NotEq"))),it=from_slot("__gt__",((t,e,n)=>t||j(e,n,"Eq"))),ot=from_slot("__gt__",(t=>!t)),ct=from_slot("__ge__",((t,e,n)=>!t||j(e,n,"Eq"))),_t=from_slot("__ge__",((t,e,n)=>t&&j(e,n,"NotEq"))),lt=from_slot("__ge__",(t=>!t)),pt={__lt__:{__gt__:new p(Z),__le__:new p(tt),__ge__:new p(et)},__le__:{__ge__:new p(nt),__lt__:new p(rt),__gt__:new p(st)},__gt__:{__lt__:new p(at),__ge__:new p(it),__le__:new p(ot)},__ge__:{__le__:new p(ct),__gt__:new p(_t),__lt__:new p(lt)}},ut={__lt__:"ob$lt",__le__:"ob$le",__gt__:"ob$gt",__ge__:"ob$ge"};const ht=new n(0),dt=q("functools.KeyWrapper",{constructor:function(t,e){this.cmp=t,this.obj=e},slots:{tp$call(t,e){const[n]=W("K",["obj"],t,e,[]);return new dt(this.cmp,n)},tp$richcompare(t,e){if(!(t instanceof dt))throw new h("other argument must be K instance");const n=this.obj,r=t.obj;if(!n||!r)throw new w("object");const s=A(this.cmp,[n,r]);return E(s,(t=>j(t,ht,e)))},tp$getattr:B,tp$hash:o},getsets:{obj:{$get(){return this.obj||o},$set(t){this.obj=t},$doc:"Value wrapped by a key function."}}}),ft=new r("update"),mt=new r("__wrapped__");return T("functools",t,{cache:{$meth:function cache(t){return A(_lru_cache(o),[t])},$flags:{OneArg:!0},$doc:\'Simple lightweight unbounded cache. Sometimes called "memoize".\',$textsig:"($module, user_function, /)"},lru_cache:{$meth:_lru_cache,$flags:{NamedArgs:["maxsize","typed"],Defaults:[new n(128),c]},$doc:"Least-recently-used cache decorator.\\n\\nIf *maxsize* is set to None, the LRU features are disabled and the cache\\ncan grow without bound.\\n\\nIf *typed* is True, arguments of different types will be cached separately.\\nFor example, f(3.0) and f(3) will be treated as distinct calls with\\ndistinct results.\\n\\nArguments to the cached function must be hashable.\\n\\nView the cache statistics named tuple (hits, misses, maxsize, currsize)\\nwith f.cache_info(). Clear the cache and statistics with f.cache_clear().\\nAccess the underlying function with f.__wrapped__.\\n\\nSee: http://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)"},cmp_to_key:{$meth:function cmp_to_key(t){return new dt(t)},$flags:{NamedArgs:["mycmp"],Defaults:[]},$doc:"Convert a cmp= function into a key= function.",$textsig:"($module, cmp, /)"},reduce:{$meth:function reduce(t,e,n){const r=U(e);let s;return n=n||r.tp$iternext(!0),E(n,(e=>{if(void 0===e)throw new h("reduce() of empty sequence with no initial value");return s=e,S(r,(e=>E(A(t,[s,e]),(t=>{s=t}))))}),(()=>s))},$flags:{MinArgs:2,MaxArgs:3},$doc:"reduce(function, sequence[, initial]) -> value\\n\\nApply a function of two arguments cumulatively to the items of a sequence,\\nfrom left to right, so as to reduce the sequence to a single value.\\nFor example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates\\n((((1+2)+3)+4)+5). If initial is present, it is placed before the items\\nof the sequence in the calculation, and serves as a default when the\\nsequence is empty.",$textsig:"($module, function, sequence[, initial], /)"},total_ordering:{$meth:function total_ordering(t){const n=[];if(!b(t))throw new h("total ordering only supported for type objects not \'"+F(t)+"\'");if(Object.keys(pt).forEach((r=>{const s=ut[r];t.prototype[s]!==e.prototype[s]&&n.push(r)})),!n.length)throw new f("must define atleast one ordering operation: <, >, <=, >=");const r=n[0];return Object.entries(pt[r]).forEach((([e,r])=>{n.includes(e)||t.tp$setattr(Y[e],r)})),t},$flags:{OneArg:!0},$doc:"Class decorator that fills in missing ordering methods"},update_wrapper:{$meth:function update_wrapper(t,e,n,r){let s,a=U(n);for(let i=a.tp$iternext();void 0!==i;i=a.tp$iternext())void 0!==(s=e.tp$getattr(i))&&t.tp$setattr(i,s);a=U(r);for(let o=a.tp$iternext();void 0!==o;o=a.tp$iternext()){s=e.tp$getattr(o)||new i([]);const n=O(t,o),r=O(n,ft);x(r,[s])}return t.tp$setattr(mt,e),t},$flags:{NamedArgs:["wrapper","wrapped","assigned","updated"],Defaults:[t.WRAPPER_ASSIGNMENTS,t.WRAPPER_UPDATES]},$doc:"Update a wrapper function to look like the wrapped function\\n\\n wrapper is the function to be updated\\n wrapped is the original function\\n assigned is a tuple naming the attributes assigned directly\\n from the wrapped function to the wrapper function (defaults to\\n functools.WRAPPER_ASSIGNMENTS)\\n updated is a tuple naming the attributes of the wrapper that\\n are updated with the corresponding attribute from the wrapped\\n function (defaults to functools.WRAPPER_UPDATES)\\n ",$textsig:"($module, /, wrapper, wrapped, assigned=(\'__module__\', \'__name__\', \'__qualname__\', \'__doc__\', \'__annotations__\'), updated=(\'__dict__\',))"},wraps:{$meth:function wraps(e,n,r){const s=["wrapped",e,"assigned",n,"updated",r];return A(t.partial,[t.update_wrapper],s)},$flags:{NamedArgs:["wrapped","assigned","updated"],Defaults:[t.WRAPPER_ASSIGNMENTS,t.WRAPPER_UPDATES]},$doc:"Decorator factory to apply update_wrapper() to a wrapper function\\n\\n Returns a decorator that invokes update_wrapper() with the decorated\\n function as the wrapper argument and the arguments to wraps() as the\\n remaining arguments. Default arguments are as for update_wrapper().\\n This is a convenience function to simplify applying partial() to\\n update_wrapper().\\n ",$textsig:"($module, /, wrapped, assigned=(\'__module__\', \'__name__\', \'__qualname__\', \'__doc__\', \'__annotations__\'), updated=(\'__dict__\',))"}}),t}',"src/lib/image.js":'var ImageMod,$builtinmodule;ImageMod||((ImageMod={}).canvasLib=[]),$builtinmodule=function(e){var n,t,i,a,u,l,r,s={__name__:new Sk.builtin.str("image")};return s.Image=Sk.misceval.buildClass(s,(function(e,n){u=function(e){e.width=e.image.width,e.height=e.image.height,e.delay=0,e.updateCount=0,e.updateInterval=1,e.lastx=0,e.lasty=0,e.canvas=document.createElement("canvas"),e.canvas.height=e.height,e.canvas.width=e.width,e.ctx=e.canvas.getContext("2d"),e.ctx.drawImage(e.image,0,0),e.imagedata=e.ctx.getImageData(0,0,e.width,e.height)},n.__init__=new Sk.builtin.func((function(e,n){var t;Sk.builtin.pyCheckArgsLen("__init__",arguments.length,2,2);try{e.image=document.getElementById(Sk.ffi.remapToJs(n)),u(e)}catch(i){e.image=null}if(null==e.image)return(t=new Sk.misceval.Suspension).resume=function(){if(t.data.error)throw new Sk.builtin.IOError(t.data.error.message)},t.data={type:"Sk.promise",promise:new Promise((function(t,i){var a=new Image;a.crossOrigin="",a.onerror=function(){i(Error("Failed to load URL: "+a.src))},a.onload=function(){e.image=this,u(e),t()},a.src=r(n)}))},t})),r=function(e){var n,t,i="function"==typeof Sk.imageProxy?Sk.imageProxy:function(e){return(n=document.createElement("a")).href=t,window.location.host!==n.host?Sk.imageProxy+"/"+e:e};return t=i(t=Sk.ffi.remapToJs(e))},l=function(e,n,t){if(n<0||t<0||n>=e.width||t>=e.height)throw new Sk.builtin.ValueError("Pixel index out of range.")};var setdelay=function(e,n,t){var i;Sk.builtin.pyCheckArgsLen("setdelay",arguments.length,2,3),e.delay=Sk.ffi.remapToJs(n),i=Sk.builtin.asnum$(t),e.updateInterval=i||1};n.set_delay=new Sk.builtin.func(setdelay),n.setDelay=new Sk.builtin.func(setdelay);var getpixels=function(e){var n,t=[];for(Sk.builtin.pyCheckArgsLen("getpixels",arguments.length,1,1),n=0;n=e.width?e.lastCtx.putImageData(e.imagedata,e.lastUlx,e.lastUly,0,e.lasty,e.width,2):e.lasty+e.updateInterval>=e.height?e.lastCtx.putImageData(e.imagedata,e.lastUlx,e.lastUly,e.lastx,0,2,e.height):e.lastCtx.putImageData(e.imagedata,e.lastUlx,e.lastUly,Math.min(n,e.lastx),Math.min(t,e.lasty),Math.max(Math.abs(n-e.lastx),1),Math.max(Math.abs(t-e.lasty),1)),e.lastx=n,e.lasty=t,e.delay>0?window.setTimeout(i,e.delay):i()):i()}))},i};var setpixel=function(e,n,t,i){var u;return Sk.builtin.pyCheckArgsLen("setpixel",arguments.length,4,4),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),l(e,n,t),u=4*t*e.width+4*n,e.imagedata.data[u]=Sk.builtin.asnum$(Sk.misceval.callsimArray(i.getRed,[i])),e.imagedata.data[u+1]=Sk.builtin.asnum$(Sk.misceval.callsimArray(i.getGreen,[i])),e.imagedata.data[u+2]=Sk.builtin.asnum$(Sk.misceval.callsimArray(i.getBlue,[i])),e.imagedata.data[u+3]=255,a(e,n,t)};n.set_pixel=new Sk.builtin.func(setpixel),n.setPixel=new Sk.builtin.func(setpixel);var setpixelat=function(e,n,t){var i,u,r;return Sk.builtin.pyCheckArgsLen("setpixelat",arguments.length,3,3),i=(n=Sk.builtin.asnum$(n))%e.image.width,u=Math.floor(n/e.image.width),l(e,i,u),r=4*u*e.width+4*i,e.imagedata.data[r]=Sk.builtin.asnum$(Sk.misceval.callsimArray(t.getRed,[t])),e.imagedata.data[r+1]=Sk.builtin.asnum$(Sk.misceval.callsimArray(t.getGreen,[t])),e.imagedata.data[r+2]=Sk.builtin.asnum$(Sk.misceval.callsimArray(t.getBlue,[t])),e.imagedata.data[r+3]=255,a(e,i,u)};n.set_pixel_at=new Sk.builtin.func(setpixelat),n.setPixelAt=new Sk.builtin.func(setpixelat);var updatepixel=function(e,n){var t,i,u;return Sk.builtin.pyCheckArgsLen("updatepixel",arguments.length,2,2),t=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getX,[n])),i=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getY,[n])),l(e,t,i),u=4*i*e.width+4*t,e.imagedata.data[u]=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getRed,[n])),e.imagedata.data[u+1]=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getGreen,[n])),e.imagedata.data[u+2]=Sk.builtin.asnum$(Sk.misceval.callsimArray(n.getBlue,[n])),e.imagedata.data[u+3]=255,a(e,t,i)};n.update_pixel=new Sk.builtin.func(updatepixel),n.updatePixel=new Sk.builtin.func(updatepixel);var getheight=function(e){return Sk.builtin.pyCheckArgsLen("getheight",arguments.length,1,1),new Sk.builtin.int_(e.height)};n.get_height=new Sk.builtin.func(getheight),n.getHeight=new Sk.builtin.func(getheight);var getwidth=function(e,n){return Sk.builtin.pyCheckArgsLen("getwidth",arguments.length,1,1),new Sk.builtin.int_(e.width)};n.get_width=new Sk.builtin.func(getwidth),n.getWidth=new Sk.builtin.func(getwidth),n.__getattr__=new Sk.builtin.func((function(e,n){return"height"===(n=Sk.ffi.remapToJs(n))?Sk.builtin.assk$(e.height):"width"===n?Sk.builtin.assk$(e.width):void 0})),n.__setattr__=new Sk.builtin.func((function(e,n,t){throw"height"===(n=Sk.ffi.remapToJs(n))||"width"===n?new Sk.builtin.Exception("Cannot change height or width they can only be set on creation"):new Sk.builtin.Exception("Unknown attribute: "+n)})),n.draw=new Sk.builtin.func((function(e,n,t,i){var a;return Sk.builtin.pyCheckArgsLen("draw",arguments.length,2,4),(a=new Sk.misceval.Suspension).resume=function(){return Sk.builtin.none.none$},a.data={type:"Sk.promise",promise:new Promise((function(a,u){var l;n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),i=Sk.builtin.asnum$(i),l=Sk.misceval.callsimArray(n.getWin,[n]).getContext("2d"),void 0===t&&(t=0,i=0),e.lastUlx=t,e.lastUly=i,e.lastCtx=l,l.putImageData(e.imagedata,t,i),e.delay>0?window.setTimeout(a,e.delay):window.setTimeout(a,200)}))},a}))}),"Image",[]),i=function(e,n){n.__init__=new Sk.builtin.func((function(e,n,t){Sk.builtin.pyCheckArgsLen("__init__",arguments.length,3,3),e.width=Sk.builtin.asnum$(n),e.height=Sk.builtin.asnum$(t),e.canvas=document.createElement("canvas"),e.ctx=e.canvas.getContext("2d"),e.canvas.height=e.height,e.canvas.width=e.width,e.imagedata=e.ctx.getImageData(0,0,e.width,e.height)}))},s.EmptyImage=Sk.misceval.buildClass(s,i,"EmptyImage",[s.Image]),t=function(e,n){n.__init__=new Sk.builtin.func((function(e,n,t,i,a,u){Sk.builtin.pyCheckArgsLen("__init__",arguments.length,4,6),e.red=Sk.builtin.asnum$(n),e.green=Sk.builtin.asnum$(t),e.blue=Sk.builtin.asnum$(i),e.x=Sk.builtin.asnum$(a),e.y=Sk.builtin.asnum$(u)}));var getred=function(e){return Sk.builtin.pyCheckArgsLen("getred",arguments.length,1,1),Sk.builtin.assk$(e.red)};n.get_red=new Sk.builtin.func(getred),n.getRed=new Sk.builtin.func(getred);var getgreen=function(e){return Sk.builtin.pyCheckArgsLen("getgreen",arguments.length,1,1),Sk.builtin.assk$(e.green)};n.get_green=new Sk.builtin.func(getgreen),n.getGreen=new Sk.builtin.func(getgreen);var getblue=function(e){return Sk.builtin.pyCheckArgsLen("getblue",arguments.length,1,1),Sk.builtin.assk$(e.blue)};n.get_blue=new Sk.builtin.func(getblue),n.getBlue=new Sk.builtin.func(getblue);var getx=function(e){return Sk.builtin.pyCheckArgsLen("getx",arguments.length,1,1),Sk.builtin.assk$(e.x)};n.get_x=new Sk.builtin.func(getx),n.getX=new Sk.builtin.func(getx);var gety=function(e){return Sk.builtin.pyCheckArgsLen("gety",arguments.length,1,1),Sk.builtin.assk$(e.y)};n.get_y=new Sk.builtin.func(gety),n.getY=new Sk.builtin.func(gety);var setred=function(e,n){Sk.builtin.pyCheckArgsLen("setred",arguments.length,2,2),e.red=Sk.builtin.asnum$(n)};n.set_red=new Sk.builtin.func(setred),n.setRed=new Sk.builtin.func(setred);var setgreen=function(e,n){Sk.builtin.pyCheckArgsLen("setgreen",arguments.length,2,2),e.green=Sk.builtin.asnum$(n)};n.set_green=new Sk.builtin.func(setgreen),n.setGreen=new Sk.builtin.func(setgreen);var setblue=function(e,n){Sk.builtin.pyCheckArgsLen("setblue",arguments.length,2,2),e.blue=Sk.builtin.asnum$(n)};n.set_blue=new Sk.builtin.func(setblue),n.setBlue=new Sk.builtin.func(setblue),n.__getattr__=new Sk.builtin.func((function(e,n){return"red"===(n=Sk.ffi.remapToJs(n))?Sk.builtin.assk$(e.red):"green"===n?Sk.builtin.assk$(e.green):"blue"===n?Sk.builtin.assk$(e.blue):void 0})),n.__setattr__=new Sk.builtin.func((function(e,n,t){"red"!==(n=Sk.ffi.remapToJs(n))&&"green"!==n&&"blue"!==n||(e[n]=Sk.builtin.asnum$(t))}));var setx=function(e,n){Sk.builtin.pyCheckArgsLen("setx",arguments.length,2,2),e.x=Sk.builtin.asnum$(n)};n.set_x=new Sk.builtin.func(setx),n.setX=new Sk.builtin.func(setx);var sety=function(e,n){Sk.builtin.pyCheckArgsLen("sety",arguments.length,2,2),e.y=Sk.builtin.asnum$(n)};n.set_y=new Sk.builtin.func(sety),n.setY=new Sk.builtin.func(sety),n.__getitem__=new Sk.builtin.func((function(e,n){return 0===(n=Sk.builtin.asnum$(n))?e.red:1==n?e.green:2==n?e.blue:void 0})),n.__str__=new Sk.builtin.func((function(e){return Sk.ffi.remapToPy("["+e.red+","+e.green+","+e.blue+"]")})),n.getColorTuple=new Sk.builtin.func((function(e,n,t){})),n.setRange=new Sk.builtin.func((function(e,n){e.max=Sk.builtin.asnum$(n)}))},s.Pixel=Sk.misceval.buildClass(s,t,"Pixel",[]),n=function(e,n){n.__init__=new Sk.builtin.func((function(e,n,t){var i,a,u;Sk.builtin.pyCheckArgsLen("__init__",arguments.length,1,3),void 0===(i=ImageMod.canvasLib[Sk.canvas])?(a=document.createElement("canvas"),u=document.getElementById(Sk.canvas),e.theScreen=a,u.appendChild(a),ImageMod.canvasLib[Sk.canvas]=a,ImageMod.canvasLib[Sk.canvas]=e.theScreen):(e.theScreen=i,e.theScreen.height=e.theScreen.height),void 0!==n?(e.theScreen.height=t.v,e.theScreen.width=n.v):(Sk.availableHeight&&(e.theScreen.height=Sk.availableHeight),Sk.availableWidth&&(e.theScreen.width=Sk.availableWidth)),e.theScreen.style.display="block"})),n.getWin=new Sk.builtin.func((function(e){return e.theScreen})),n.exitonclick=new Sk.builtin.func((function(e){var n=e.theScreen.id;e.theScreen.onclick=function(){document.getElementById(n).style.display="none",document.getElementById(n).onclick=null,delete ImageMod.canvasLib[n]}}))},s.ImageWin=Sk.misceval.buildClass(s,n,"ImageWin",[]),s};',"src/lib/itertools.js":'var $builtinmodule=function(t){var e={};function combinationsNew(t,e,i){let r,s;[r,s]=Sk.abstr.copyKeywordsToNamedArgs(t.tp$name,["iterable","r"],e,i,[]);const n=Sk.misceval.arrayFromIterable(r);if(s=Sk.misceval.asIndexSized(s,Sk.builtin.OverFlowError),s<0)throw new Sk.builtin.ValueError("r must be non-negative");if(this===t)return new t.constructor(n,s);{const e=new this.constructor;return t.constructor.call(e,n,s),e}}return e.accumulate=Sk.abstr.buildIteratorClass("itertools.accumulate",{constructor:function accumulate(t,e,i){this.iter=t,this.func=e,this.total=i,this.tp$iternext=()=>(this.total=Sk.builtin.checkNone(this.total)?this.iter.tp$iternext():this.total,this.tp$iternext=this.constructor.prototype.tp$iternext,this.total)},iternext(t){let e=this.iter.tp$iternext();if(void 0!==e)return this.total=Sk.misceval.callsimArray(this.func,[this.total,e]),this.total},slots:{tp$doc:"accumulate(iterable[, func, initial]) --\\x3e accumulate object\\n\\nReturn series of accumulated sums (or other binary function results).",tp$new(t,i){Sk.abstr.checkArgsLen("accumulate",t,0,2);let[r,s,n]=Sk.abstr.copyKeywordsToNamedArgs("accumulate",["iterable","func","initial"],t,i,[Sk.builtin.none.none$,Sk.builtin.none.none$]);if(r=Sk.abstr.iter(r),s=Sk.builtin.checkNone(s)?new Sk.builtin.func(((t,e)=>Sk.abstr.numberBinOp(t,e,"Add"))):s,this===e.accumulate.prototype)return new e.accumulate(r,s,n);{const t=new this.constructor;return e.accumulate.call(t,r,s,n),t}}}}),e.chain=Sk.abstr.buildIteratorClass("itertools.chain",{constructor:function chain(t){this.iterables=t,this.current_it=null,this.tp$iternext=()=>{if(this.tp$iternext=this.constructor.prototype.tp$iternext,this.current_it=this.iterables.tp$iternext(),void 0!==this.current_it)return this.current_it=Sk.abstr.iter(this.current_it),this.tp$iternext();this.tp$iternext=()=>{}}},iternext(t){let e;for(;void 0===e;){if(e=this.current_it.tp$iternext(),void 0!==e)return e;if(this.current_it=this.iterables.tp$iternext(),void 0===this.current_it)return void(this.tp$iternext=()=>{});this.current_it=Sk.abstr.iter(this.current_it)}},slots:{tp$doc:"chain(*iterables) --\\x3e chain object\\n\\nReturn a chain object whose .__next__() method returns elements from the\\nfirst iterable until it is exhausted, then elements from the next\\niterable, until all of the iterables are exhausted.",tp$new(t,i){if(Sk.abstr.checkNoKwargs("chain",i),t=new Sk.builtin.tuple(t.slice(0)).tp$iter(),this===e.chain.prototype)return new e.chain(t);{const i=new this.constructor;return e.chain.call(i,t),i}}},classmethods:Object.assign({from_iterable:{$meth(t){const i=Sk.abstr.iter(t);return new e.chain(i)},$flags:{OneArg:!0},$doc:"chain.from_iterable(iterable) --\\x3e chain object\\n\\nAlternate chain() constructor taking a single iterable argument\\nthat evaluates lazily.",$textsig:null}},Sk.generic.classGetItem)}),e.combinations=Sk.abstr.buildIteratorClass("itertools.combinations",{constructor:function combinations(t,e){this.pool=t,this.r=e,this.indices=new Array(e).fill().map(((t,e)=>e)),this.n=t.length,this.tp$iternext=()=>{if(!(this.r>this.n))return this.tp$iternext=this.constructor.prototype.tp$iternext,new Sk.builtin.tuple(this.pool.slice(0,this.r))}},iternext(t){let e,i=!1;for(e=this.r-1;e>=0;e--)if(this.indices[e]!=e+this.n-this.r){i=!0;break}if(!i)return void(this.r=0);this.indices[e]++;for(let s=e+1;sthis.pool[t]));return new Sk.builtin.tuple(r)},slots:{tp$doc:"combinations(iterable, r) --\\x3e combinations object\\n\\nReturn successive r-length combinations of elements in the iterable.\\n\\ncombinations(range(4), 3) --\\x3e (0,1,2), (0,1,3), (0,2,3), (1,2,3)",tp$new(t,i){return combinationsNew.call(this,e.combinations.prototype,t,i)}}}),e.combinations_with_replacement=Sk.abstr.buildIteratorClass("itertools.combinations_with_replacement",{constructor:function combinations_with_replacement(t,e){this.pool=t,this.r=e,this.indices=new Array(e).fill(0),this.n=t.length,this.tp$iternext=()=>{if(this.r&&!this.n)return;this.tp$iternext=this.constructor.prototype.tp$iternext;const t=this.indices.map((t=>this.pool[t]));return new Sk.builtin.tuple(t)}},iternext(t){let e,i=!1;for(e=this.r-1;e>=0;e--)if(this.indices[e]!=this.n-1){i=!0;break}if(!i)return void(this.r=0);const r=this.indices[e]+1;for(let n=e;nthis.pool[t]));return new Sk.builtin.tuple(s)},slots:{tp$doc:"combinations_with_replacement(iterable, r) --\\x3e combinations_with_replacement object\\n\\nReturn successive r-length combinations of elements in the iterable\\nallowing individual elements to have successive repeats.\\ncombinations_with_replacement(\'ABC\', 2) --\\x3e AA AB AC BB BC CC",tp$new(t,i){return combinationsNew.call(this,e.combinations_with_replacement.prototype,t,i)}}}),e.compress=Sk.abstr.buildIteratorClass("itertools.compress",{constructor:function compress(t,e){this.data=t,this.selectors=e},iternext(){let t=this.data.tp$iternext(),e=this.selectors.tp$iternext();for(;void 0!==t&&void 0!==e;){if(Sk.misceval.isTrue(e))return t;t=this.data.tp$iternext(),e=this.selectors.tp$iternext()}},slots:{tp$doc:"compress(data, selectors) --\\x3e iterator over selected data\\n\\nReturn data elements corresponding to true selector elements.\\nForms a shorter iterator from selected data elements using the\\nselectors to choose the data elements.",tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("compress",["data","selectors"],t,i,[]),r=Sk.abstr.iter(r),s=Sk.abstr.iter(s),this===e.count.prototype)return new e.compress(r,s);{const t=new this.constructor;return e.compress.call(t,r,s),t}}}}),e.count=Sk.abstr.buildIteratorClass("itertools.count",{constructor:function count(t,e){this.start=t,this.step=e},iternext(){const t=this.start;return this.start=Sk.abstr.numberBinOp(this.start,this.step,"Add"),t},slots:{tp$doc:"count(start=0, step=1) --\\x3e count object\\n\\nReturn a count object whose .__next__() method returns consecutive values.\\nEquivalent to:\\n\\n def count(firstval=0, step=1):\\n x = firstval\\n while 1:\\n yield x\\n x += step\\n",tp$new(t,i){const[r,s]=Sk.abstr.copyKeywordsToNamedArgs("count",["start","step"],t,i,[new Sk.builtin.int_(0),new Sk.builtin.int_(1)]);if(!Sk.builtin.checkNumber(r)&&!Sk.builtin.checkComplex(r))throw new Sk.builtin.TypeError("a number is required");if(!Sk.builtin.checkNumber(s)&&!Sk.builtin.checkComplex(s))throw new Sk.builtin.TypeError("a number is required");if(this===e.count.prototype)return new e.count(r,s);{const t=new this.constructor;return e.count.call(t,r,s),t}},$r(){const t=Sk.misceval.objectRepr(this.start);let e=Sk.misceval.objectRepr(this.step);return e="1"===e?"":", "+e,new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+e+")")}}}),e.cycle=Sk.abstr.buildIteratorClass("itertools.cycle",{constructor:function cycle(t){this.iter=t,this.saved=[],this.consumed=!1,this.i=0,this.length},iternext(){let t;if(!this.consumed){if(t=this.iter.tp$iternext(),void 0!==t)return this.saved.push(t),t;if(this.consumed=!0,this.length=this.saved.length,!this.length)return}return t=this.saved[this.i],this.i=(this.i+1)%this.length,t},slots:{tp$doc:"cycle(iterable) --\\x3e cycle object\\n\\nReturn elements from the iterable until it is exhausted.\\nThen repeat the sequence indefinitely.",tp$new(t,i){Sk.abstr.checkOneArg("cycle",t,i);const r=Sk.abstr.iter(t[0]);if(this===e.cycle.prototype)return new e.cycle(r);{const t=new this.constructor;return e.cycle.call(t,r),t}}}}),e.dropwhile=Sk.abstr.buildIteratorClass("itertools.dropwhile",{constructor:function dropwhile(t,e){this.predicate=t,this.iter=e,this.passed},iternext(){let t=this.iter.tp$iternext();for(;void 0===this.passed&&void 0!==t;){const e=Sk.misceval.callsimArray(this.predicate,[t]);if(!Sk.misceval.isTrue(e))return this.passed=!0,t;t=this.iter.tp$iternext()}return t},slots:{tp$doc:"dropwhile(predicate, iterable) --\\x3e dropwhile object\\n\\nDrop items from the iterable while predicate(item) is true.\\nAfterwards, return every element until the iterable is exhausted.",tp$new(t,i){Sk.abstr.checkNoKwargs("dropwhile",i),Sk.abstr.checkArgsLen("dropwhile",t,2,2);const r=t[0],s=Sk.abstr.iter(t[1]);if(this===e.dropwhile.prototype)return new e.dropwhile(r,s);{const t=new this.constructor;return e.dropwhile.call(t,r,s),t}}}}),e.filterfalse=Sk.abstr.buildIteratorClass("itertools.filterfalse",{constructor:function filterfalse(t,e){this.predicate=t,this.iter=e},iternext(t){let e=this.iter.tp$iternext();if(void 0===e)return;let i=Sk.misceval.callsimArray(this.predicate,[e]);for(;Sk.misceval.isTrue(i);){if(e=this.iter.tp$iternext(),void 0===e)return;i=Sk.misceval.callsimArray(this.predicate,[e])}return e},slots:{tp$doc:"filterfalse(function or None, sequence) --\\x3e filterfalse object\\n\\nReturn those items of sequence for which function(item) is false.\\nIf function is None, return the items that are false.",tp$new(t,i){Sk.abstr.checkNoKwargs("filterfalse",i),Sk.abstr.checkArgsLen("filterfalse",t,2,2);const r=Sk.builtin.checkNone(t[0])?Sk.builtin.bool:t[0],s=Sk.abstr.iter(t[1]);if(this===e.filterfalse.prototype)return new e.filterfalse(r,s);{const t=new this.constructor;return e.filterfalse.call(t,r,s),t}}}}),e._grouper=Sk.abstr.buildIteratorClass("itertools._grouper",{constructor:function _grouper(t,e){this.groupby=t,this.tgtkey=t.tgtkey,this.id=t.id},iternext(t){const e=Sk.misceval.richCompareBool(this.groupby.currkey,this.tgtkey,"Eq");if(this.groupby.id===this.id&&e){let t=this.groupby.currval;return this.groupby.currval=this.groupby.iter.tp$iternext(),void 0!==this.groupby.currval&&(this.groupby.currkey=Sk.misceval.callsimArray(this.groupby.keyf,[this.groupby.currval])),t}}}),e.groupby=Sk.abstr.buildIteratorClass("itertools.groupby",{constructor:function groupby(t,e){this.iter=t,this.keyf=e,this.currval,this.currkey=this.tgtkey=new Sk.builtin.object,this.id},iternext(t){this.id=new Object;let i=Sk.misceval.richCompareBool(this.currkey,this.tgtkey,"Eq");for(;i;){if(this.currval=this.iter.tp$iternext(),void 0===this.currval)return;this.currkey=Sk.misceval.callsimArray(this.keyf,[this.currval]),i=Sk.misceval.richCompareBool(this.currkey,this.tgtkey,"Eq")}this.tgtkey=this.currkey;const r=new e._grouper(this);return new Sk.builtin.tuple([this.currkey,r])},slots:{tp$doc:"groupby(iterable, key=None) -> make an iterator that returns consecutive\\nkeys and groups from the iterable. If the key function is not specified or\\nis None, the element itself is used for grouping.\\n",tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("groupby",["iterable","key"],t,i,[Sk.builtin.none.none$]),r=Sk.abstr.iter(r),s=Sk.builtin.checkNone(s)?new Sk.builtin.func((t=>t)):s,this===e.groupby.prototype)return new e.groupby(r,s);{const t=new this.constructor;return e.groupby.call(t,r,s),t}}}}),e.islice=Sk.abstr.buildIteratorClass("itertools.islice",{constructor:function islice(t,e,i,r){this.iter=t,this.previt=e,this.stop=i,this.step=r,this.tp$iternext=()=>{if(this.tp$iternext=this.constructor.prototype.tp$iternext,!(this.previt>=this.stop)){for(let t=0;t=this.stop)){for(let t=this.previt+1;tNumber.MAX_SAFE_INTEGER)throw new Sk.builtin.ValueError("Stop for islice() must be None or an integer: 0 <= x <= sys.maxsize.");if(!Sk.builtin.checkNone(s)&&!Sk.misceval.isIndex(s))throw new Sk.builtin.ValueError("Indices for islice() must be None or an integer: 0 <= x <= sys.maxsize.");if(s=Sk.builtin.checkNone(s)?0:Sk.misceval.asIndexSized(s),s<0||s>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.ValueError("Indices for islice() must be None or an integer: 0 <= x <= sys.maxsize.");if(!Sk.builtin.checkNone(o)&&!Sk.misceval.isIndex(o))throw new Sk.builtin.ValueError("Step for islice() must be a positive integer or None");if(o=Sk.builtin.checkNone(o)?1:Sk.misceval.asIndexSized(o),o<=0||o>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.ValueError("Step for islice() must be a positive integer or None.");if(this===e.islice.prototype)return new e.islice(r,s,n,o);{const t=new this.constructor;return e.islice.call(t,r,s,n,o),t}}}}),e.permutations=Sk.abstr.buildIteratorClass("itertools.permutations",{constructor:function permutations(t,e){this.pool=t,this.r=e;const i=t.length;this.indices=new Array(i).fill().map(((t,e)=>e)),this.cycles=new Array(e).fill().map(((t,e)=>i-e)),this.n=i,this.tp$iternext=()=>{if(!(this.r>this.n))return this.tp$iternext=this.constructor.prototype.tp$iternext,new Sk.builtin.tuple(this.pool.slice(0,this.r))}},iternext(t){for(let e=this.r-1;e>=0;e--){if(this.cycles[e]--,0!=this.cycles[e]){const t=this.cycles[e];[this.indices[e],this.indices[this.n-t]]=[this.indices[this.n-t],this.indices[e]];const i=this.indices.map((t=>this.pool[t])).slice(0,this.r);return new Sk.builtin.tuple(i)}this.indices.push(this.indices.splice(e,1)[0]),this.cycles[e]=this.n-e}this.r=0},slots:{tp$doc:"permutations(iterable[, r]) --\\x3e permutations object\\n\\nReturn successive r-length permutations of elements in the iterable.\\n\\npermutations(range(3), 2) --\\x3e (0,1), (0,2), (1,0), (1,2), (2,0), (2,1)",tp$new(t,i){let r,s;[r,s]=Sk.abstr.copyKeywordsToNamedArgs("permutations",["iterable","r"],t,i,[Sk.builtin.none.none$]);const n=Sk.misceval.arrayFromIterable(r);if(s=Sk.builtin.checkNone(s)?n.length:Sk.misceval.asIndexSized(s,Sk.builtin.OverFlowError),s<0)throw new Sk.builtin.ValueError("r must be non-negative");if(this===e.permutations.prototype)return new e.permutations(n,s);{const t=new this.constructor;return e.permutations.call(t,n,s),t}}}}),e.product=Sk.abstr.buildIteratorClass("itertools.product",{constructor:function product(t){this.pools=t,this.n=t.length,this.indices=Array(t.length).fill(0),this.pool_sizes=t.map((t=>t.length)),this.tp$iternext=()=>{this.tp$iternext=this.constructor.prototype.tp$iternext;const t=this.indices.map(((t,e)=>this.pools[e][this.indices[e]]));if(!t.some((t=>void 0===t)))return new Sk.builtin.tuple(t);this.n=0}},iternext(t){let e=this.n-1;for(;e>=0&&e=this.pool_sizes[e]?(this.indices[e]=-1,e--):e++;if(this.n&&!this.indices.every((t=>-1===t))){const t=this.indices.map(((t,e)=>this.pools[e][this.indices[e]]));return new Sk.builtin.tuple(t)}this.n=0},slots:{tp$doc:"product(*iterables, repeat=1) --\\x3e product object\\n\\nCartesian product of input iterables. Equivalent to nested for-loops.\\n\\nFor example, product(A, B) returns the same as: ((x,y) for x in A for y in B).\\nThe leftmost iterators are in the outermost for-loop, so the output tuples\\ncycle in a manner similar to an odometer (with the rightmost element changing\\non every iteration).\\n\\nTo compute the product of an iterable with itself, specify the number\\nof repetitions with the optional repeat keyword argument. For example,\\nproduct(A, repeat=4) means the same as product(A, A, A, A).\\n\\nproduct(\'ab\', range(3)) --\\x3e (\'a\',0) (\'a\',1) (\'a\',2) (\'b\',0) (\'b\',1) (\'b\',2)\\nproduct((0,1), (0,1), (0,1)) --\\x3e (0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) ...",tp$new(t,i){let[r]=Sk.abstr.copyKeywordsToNamedArgs("product",["repeat"],[],i,[new Sk.builtin.int_(1)]);if(r=Sk.misceval.asIndexSized(r,Sk.builtin.OverFlowError),r<0)throw new Sk.builtin.ValueError("repeat argument cannot be negative");const s=[];for(let e=0;ethis.object)},iternext(t){return this.times-- >0?this.object:void 0},slots:{tp$doc:"repeat(object [,times]) -> create an iterator which returns the object\\nfor the specified number of times. If not specified, returns the object\\nendlessly.",tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("repeat",["object","times"],t,i,[null]),s=null!==s?Sk.misceval.asIndexSized(s,Sk.builtin.OverFlowError):void 0,this===e.repeat.prototype)return new e.repeat(r,s);{const t=new this.constructor;return e.repeat.call(t,r,s),t}},$r(){const t=Sk.misceval.objectRepr(this.object),e=void 0===this.times?"":", "+(this.times>=0?this.times:0);return new Sk.builtin.str(Sk.abstr.typeName(this)+"("+t+e+")")}},methods:{__lenght_hint__:{$meth(){if(void 0===this.times)throw new Sk.builtin.TypeError("len() of unsized object");return new Sk.builtin.int_(this.times)},$flags:{NoArgs:!0},$textsig:null}}}),e.starmap=Sk.abstr.buildIteratorClass("itertools.starmap",{constructor:function starmap(t,e){this.func=t,this.iter=e},iternext(t){const e=this.iter.tp$iternext();if(void 0===e)return;const i=Sk.misceval.arrayFromIterable(e);return Sk.misceval.callsimArray(this.func,i)},slots:{tp$new(t,i){let r,s;if([r,s]=Sk.abstr.copyKeywordsToNamedArgs("starmap",["func","iterable"],t,i,[]),s=Sk.abstr.iter(s),r=Sk.builtin.checkNone(r)?Sk.builtin.bool:r,this===e.starmap.prototype)return new e.starmap(r,s);{const t=new this.constructor;return e.starmap.call(t,r,s),t}}}}),e.takewhile=Sk.abstr.buildIteratorClass("itertools.takewhile",{constructor:function takewhile(t,e){this.predicate=t,this.iter=e},iternext(){const t=this.iter.tp$iternext();if(void 0!==t){const e=Sk.misceval.callsimArray(this.predicate,[t]);if(Sk.misceval.isTrue(e))return t;this.tp$iternext=()=>{}}},slots:{tp$doc:"takewhile(predicate, iterable) --\\x3e takewhile object\\n\\nReturn successive entries from an iterable as long as the \\npredicate evaluates to true for each entry.",tp$new(t,i){Sk.abstr.checkNoKwargs("takewhile",i),Sk.abstr.checkArgsLen("takewhile",t,2,2);const r=t[0],s=Sk.abstr.iter(t[1]);if(this===e.takewhile.prototype)return new e.takewhile(r,s);{const t=new this.constructor;return e.takewhile.call(t,r,s),t}}}}),e.tee=new Sk.builtin.func((function(){throw new Sk.builtin.NotImplementedError("tee is not yet implemented in Skulpt")})),e.zip_longest=Sk.abstr.buildIteratorClass("itertools.zip_longest",{constructor:function zip_longest(t,e){this.iters=t,this.fillvalue=e,this.active=this.iters.length},iternext(t){if(!this.active)return;let i;const r=[];for(let s=0;s{throw new a(e+" is not yet implemented in skulpt")}))}const j=E.JSONDecodeError=N("json.JSONDecodeError",{base:l,constructor:function JSONDecodeError(e,t,n){const r=t.slice(0,n),o=r.split("\\n").length,s=n-r.lastIndexOf("\\n"),i=`${e}: line ${o} column ${s} (char ${n})`;l.call(this,i),this.$msg=e,this.$doc=t,this.$pos=n,this.$lineno=o,this.$colno=s},getsets:Object.fromEntries(["msg","doc","pos","lineno","colno"].map((e=>[e,{$get(){return g(this["$"+e])}}])))});class JSONEncoder{constructor(e,t,n,r,o,s,i,l){this.skipkeys=e,this.ensure_ascii=t,this.check_circular=n,this.allow_nan=r,this.indent=o,this.separators=s,this.sort_keys=l,this.item_separator=", ",this.key_separator=": ",null!==this.separators?[this.item_separator,this.key_separator]=this.separators:null!==this.indent&&(this.item_separator=","),null!==i&&(this.default=i),this.encoder=this.make_encoder()}default(e){throw new i(`Object of type ${y(e)} is not JSON serializable`)}encode(t){return new e(this.encoder(t))}make_encoder(){let e,t;e=this.check_circular?new Set:null,t=(this.ensure_ascii,JSON.stringify);return function _make_iterencode(e,t,n,r,s,a,u,h,d){null!==r&&"string"!=typeof r&&(r=" ".repeat(r));let f,p,g,w;null!==e?(f=t=>{if(e.has(t))throw new l("Circular reference detected");e.add(t)},p=t=>e.delete(t)):(f=e=>{},p=e=>{});null!==r?(g=(e,t)=>{t+=1;const n="\\n"+r.repeat(t);return[e+=n,t,u+n]},w=(e,t,n)=>(n-=1,e+="\\n"+r.repeat(n)+t)):(g=(e,t)=>[e,t,u],w=(e,t,n)=>e+t);const _unhandled=(e,n)=>{f(e);const r=_iterencode(t(e),n);return p(e),r},_iterencode_list=(e,t)=>{if(!e.length)return"[]";let n,r;f(e),[n,t,r]=g("[",t);let o=!0;for(let s of e)o?o=!1:n+=r,n+=_iterencode(s,t);return p(e),w(n,"]",t)},_iterencode_dict=(e,t)=>{if(!e.sq$length())return"{}";let r,l;f(e),[r,t,l]=g("{",t);let u=!0;if(h){const t=$(e.tp$getattr(v)),n=c(t);e=$(o,[n])}for(let[o,c]of e.$items()){const e=o.valueOf(),h=typeof e;if("string"===h)o=e;else if("number"===h)o=s(o);else if("boolean"===h||null===e)o=String(e);else{if(!JSBI.__isBigInt(e)){if(d)continue;throw new i("keys must be str, int, float, bool or None, not "+y(o))}o=e.toString()}u?u=!1:r+=l,r+=n(o),r+=a,r+=_iterencode(c,t)}return p(e),w(r,"}",t)},_iterencode=(e,t=0)=>String(m(e,{stringHook:e=>n(e),numberHook:(e,t)=>s(t),bigintHook:e=>e.toString(),dictHook:e=>_iterencode_dict(e,t),arrayHook:e=>_iterencode_list(e,t),setHook:e=>_unhandled(e,t),funcHook:(e,n)=>_unhandled(n,t),objecthook:(e,n)=>_unhandled(n,t),unhandledHook:e=>_unhandled(e,t)}));return _iterencode}(e,this.default,t,this.indent,((e,t=this.allow_nan)=>{const n=e.valueOf();let r;if(Number.isFinite(n))return J(e);if(r=n.toString(),!t)throw new l("Out of range float values are not JSON compliant: "+J(e));return r}),this.key_separator,this.item_separator,this.sort_keys,this.skipkeys)}}const v=new e("items");const x=[!1,!0,!0,!0,null,null,null,!1],D=new JSONEncoder(...x),F=/(-?(?:0|[1-9]\\d*))(\\.\\d+)?([eE][-+]?\\d+)?/;const I=/"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"/m;function scanstring(t,n){const r=t.substring(n-1).match(I);if(null===r)throw new j("Unterminated string starting at",t,n-1);try{return[new e(JSON.parse(r[0])),n+r[0].length-1]}catch(o){let e=o.message.match(/(?:column|position) (\\d+)/);e=e&&Number(e[1]);n=n+(e||0)-(void 0===o.columnNumber?1:2);const r=o.message.replace("JSON.parse: ","").replace(/ at line \\d+ column \\d+ of the JSON data/,"").replace(/ in JSON at position \\d+$/,"");throw new j(r,t,n)}}const A=/[ \\t\\n\\r]*/;function JSONArray(e,t,r){const o=[];let s=e[t];const adjust_white_space=()=>{if(" "===s||"\\t"===s||"\\n"===s||"\\r"===s){const n=e.substring(t).match(A);t+=n[0].length,s=e[t]}};if(adjust_white_space(),"]"===s)return[new n([]),t+1];for(;;){let n;if([n,t]=r(e,t),void 0===n)throw new j("Expecting value",e,t);if(o.push(n),s=e[t],adjust_white_space(),t++,"]"===s)break;if(","!==s)throw new j("Expecting \',\' delimiter",e,t-1);s=e[t],adjust_white_space()}return[new n(o),t]}function JSONObject(e,t,s,i,l){let a=[],c=e[t];const adjust_white_space=()=>{if(" "===c||"\\t"===c||"\\n"===c||"\\r"===c){const n=e.substring(t).match(A);t+=n[0].length,c=e[t]}};if(\'"\'!==c){if(adjust_white_space(),"}"===c){if(null!==l){return[l(new n([])),t+1]}return a=new o([]),null!==i&&(a=i(a)),[a,t+1]}if(\'"\'!==c)throw new j("Expecting property name enclosed in double quotes",e,t)}let u,h;for(t+=1;;){if([u,t]=scanstring(e,t),":"!==(c=e[t])&&(adjust_white_space(),":"!==e[t]))throw new j("Expecting \':\' delimiter",e,t);if(c=e[++t],adjust_white_space(),[h,t]=s(e,t),void 0===h)throw new j("Expecting value",e,t);if(c=e[t],a.push([u,h]),adjust_white_space(),t++,"}"===c)break;if(","!==c)throw new j("Expecting \',\' delimiter",e,t-1);if(c=e[t],adjust_white_space(),t++,\'"\'!==c)throw new j("Expecting property name enclosed in double quotes",e,t-1)}if(null!==l){return[l(new n(a.map((e=>new r(e))))),t]}return a=new o(a.flat()),null!==i&&(a=i(a)),[a,t]}const H={NaN:new t(NaN),Infinity:new t(1/0),"-Infinity":new t(-1/0)};class JSONDecoder{constructor(e,t,n,r,o){this.object_hook=e,this.parse_float=t||w,this.parse_int=n||_,this.parse_constant=r||(e=>H[e]),this.object_pairs_hook=o,this.parse_object=JSONObject,this.parse_array=JSONArray,this.parse_string=scanstring,this.scan_once=function make_scanner(e){const{parse_object:t,parse_array:n,parse_string:r,parse_float:o,parse_int:s,parse_constant:i,object_hook:l,object_pairs_hook:a}=e,scan_once=(e,c)=>{const f=e[c];if(void 0===f)return[f,c];if(\'"\'===f)return r(e,c+1);if("{"===f)return t(e,c+1,scan_once,l,a);if("["===f)return n(e,c+1,scan_once);if("n"===f&&"null"===e.substring(c,c+4))return[u,c+4];if("t"===f&&"true"===e.substring(c,c+4))return[h,c+4];if("f"===f&&"false"===e.substring(c,c+5))return[d,c+5];const p=e.substring(c).match(F);if(null!==p){let e;const[t,n,r,i]=p;return e=r||i?o(n+(r||"")+(i||"")):s(n),[e,c+t.length]}return"N"===f&&"NaN"===e.substring(c,c+3)?[i("NaN"),c+3]:"I"==f&&"Infinity"===e.substring(c,c+8)?[i("Infinity"),c+8]:"-"==f&&"-Infinity"===e.substring(c,c+9)?[i("-Infinity"),c+9]:[void 0,c]};return scan_once}(this)}white(e,t){const n=(0===t?e:e.substring(t)).match(A);return null!==n&&(t+=n[0].length),t}decode(e){e=e.toString();let[t,n]=this.scan_once(e,this.white(e,0));if(void 0===t)throw new j("Expecting value",e,n);if(n=this.white(e,n),n!==e.length)throw new j("Extra data",e,n);return t}}const T=Array(5).fill(null),C=new JSONDecoder(...T);function convertToNullOrFunc(e){return null===e||e===u?null:t=>$(e,[g(t)])}return k("json",E,{loads:{$meth(e,t){O("dumps",e);let n=e[0];if(f(n));else{if(!p(n))throw new i(`the JSON object must be str or bytes, not ${y(n)}`);n=(new TextDecoder).decode(n.valueOf())}const r=S("dumps",["object_hook","parse_float","parse_int","parse_constant","object_pairs_hook"],[],t,T).map(convertToNullOrFunc);return r.every((e=>null===e))?C.decode(n):new JSONDecoder(...r).decode(n)},$doc:"Deserialize ``s`` (a ``str`` or ``bytes`` instance containing a JSON document) to a Python object.",$flags:{FastCall:!0}},dumps:{$meth(e,t){O("dumps",e);const n=e[0];let[r,o,s,l,a,c,u,h]=S("loads",["skipkeys","ensure_ascii","check_circular","allow_nan","indent","separators","default","sort_keys"],[],t,x);if(r=b(r),o=b(o),s=b(s),l=b(l),a=m(a),c=m(c),u=convertToNullOrFunc(u),h=b(h),!r&&o&&s&&l&&null===a&&null===c&&null===u&&!h)return D.encode(n);if(null===c);else if(!Array.isArray(c)||2!==c.length||"string"!=typeof c[0]||"string"!=typeof c[1])throw new i("separators shuld be a list or tuple of strings of length 2");return new JSONEncoder(r,o,s,l,a,c,u,h).encode(n)},$doc:"Serialize ``obj`` to a JSON formatted ``str``",$flags:{FastCall:!0}}}),E}',"src/lib/keyword.js":'function $builtinmodule(){const{ffi:{remapToPy:t},builtin:{frozenset:e,str:s}}=Sk,i=new s("keyword"),n=t(["iskeyword","issoftkeyword","kwlist","softkwlist"]),o=t(["False","None","True","and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal","not","or","pass","raise","return","try","while","with","yield"]),a=t(["_","case","match"]);return{__name__:i,__all__:n,kwlist:o,softkwlist:a,iskeyword:new e(o).tp$getattr(s.$contains),issoftkeyword:new e(a).tp$getattr(s.$contains)}}',"src/lib/math.js":'const $builtinmodule=function(e){const{builtin:{str:t,int_:n,float_:i,TypeError:r,pyCheckType:u,checkNumber:l},abstr:{lookupSpecial:o},misceval:{callsimOrSuspendArray:a}}=Sk,s={pi:new Sk.builtin.float_(Math.PI),e:new Sk.builtin.float_(Math.E),tau:new Sk.builtin.float_(2*Math.PI),nan:new Sk.builtin.float_(NaN),inf:new Sk.builtin.float_(1/0)},b=new t("__ceil__");const get_sign=function(e){return e=e?e<0?-1:1:1/e<0?-1:1};const c=18;function factorial(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let t=Sk.builtin.asnum$(e);if((e=Math.floor(t))!=t)throw new Sk.builtin.ValueError("factorial() only accepts integral values");if(e<0)throw new Sk.builtin.ValueError("factorial() not defined for negative numbers");let n=1;for(let i=2;i<=e&&i<=c;i++)n*=i;if(e<=c)return new Sk.builtin.int_(n);n=JSBI.BigInt(n);for(let i=c+1;i<=e;i++)n=JSBI.multiply(n,JSBI.BigInt(i));return new Sk.builtin.int_(n)}const m=new t("__floor__");function _gcd_internal(e,t){let n;return"number"==typeof e&&"number"==typeof t?(n=function _gcd(e,t){return 0==t?e:_gcd(t,e%t)}(e=Math.abs(e),t=Math.abs(t)),n=n<0?-n:n):(n=function _biggcd(e,t){return JSBI.equal(t,JSBI.__ZERO)?e:_biggcd(t,JSBI.remainder(e,t))}(e=JSBI.BigInt(e),t=JSBI.BigInt(t)),JSBI.lessThan(n,JSBI.__ZERO)&&(n=JSBI.multiply(n,JSBI.BigInt(-1)))),n}return Sk.abstr.setUpModuleMethods("math",s,{acos:{$meth:function acos(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.acos(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the arc cosine (measured in radians) of x."},acosh:{$meth:function acosh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=(e=Sk.builtin.asnum$(e))+Math.sqrt(e*e-1);return new Sk.builtin.float_(Math.log(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the inverse hyperbolic cosine of x."},asin:{$meth:function asin(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.asin(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the arc sine (measured in radians) of x."},asinh:{$meth:function asinh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=(e=Sk.builtin.asnum$(e))+Math.sqrt(e*e+1);return new Sk.builtin.float_(Math.log(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the inverse hyperbolic sine of x."},atan:{$meth:function atan(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.atan(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the arc tangent (measured in radians) of x."},atan2:{$meth:function atan2(e,t){return Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(t)),new Sk.builtin.float_(Math.atan2(Sk.builtin.asnum$(e),Sk.builtin.asnum$(t)))},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, y, x, /)",$doc:"Return the arc tangent (measured in radians) of y/x.\\n\\nUnlike atan(y/x), the signs of both x and y are considered."},atanh:{$meth:function atanh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=(1+(e=Sk.builtin.asnum$(e)))/(1-e);return new Sk.builtin.float_(Math.log(t)/2)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the inverse hyperbolic tangent of x."},ceil:{$meth:function ceil(e){let t;if(e.ob$type!==i){const n=o(e,b);if(void 0!==n)return a(n);u("","real number",l(e)),t=Sk.builtin.asnum$(e)}else t=e.v;return new n(Math.ceil(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the ceiling of x as an Integral.\\n\\nThis is the smallest integer >= x."},comb:{$meth:function comb(e,t){let n=Sk.misceval.asIndexOrThrow(e),i=Sk.misceval.asIndexOrThrow(t);if(n<0)throw new Sk.builtin.ValueError("n must be an non-negative integer");if(i<0)throw new Sk.builtin.ValueError("k must be a non-negative integer");if(i>e)return new Sk.builtin.int_(0);e=new Sk.builtin.int_(n),t=new Sk.builtin.int_(i);let r=Sk.ffi.remapToJs(e.nb$subtract(t));if(rNumber.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError("min(n - k, k) must not exceed "+Number.MAX_SAFE_INTEGER);const u=new Sk.builtin.int_(1);let l=e;for(let o=1;o n.\\n\\nIf k is not specified or is None, then k defaults to n\\nand the function returns n!.\\n\\nRaises TypeError if either of the arguments are not integers.\\nRaises ValueError if either of the arguments are negative."},copysign:{$meth:function copysign(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));const n=Sk.builtin.asnum$(t),i=Sk.builtin.asnum$(e),r=get_sign(i)*get_sign(n);return new Sk.builtin.float_(i*r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return a float with the magnitude (absolute value) of x but the sign of y.\\n\\nOn platforms that support signed zeros, copysign(1.0, -0.0)\\nreturns -1.0.\\n"},cos:{$meth:function cos(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.cos(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the cosine of x (measured in radians)."},cosh:{$meth:function cosh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),e=Sk.builtin.asnum$(e);const t=Math.E,n=Math.pow(t,e),i=(n+1/n)/2;return new Sk.builtin.float_(i)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the hyperbolic cosine of x."},degrees:{$meth:function degrees(e){Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e));const t=180/Math.PI*Sk.builtin.asnum$(e);return new Sk.builtin.float_(t)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Convert angle x from radians to degrees."},erf:{$meth:function erf(e){throw new Sk.builtin.NotImplementedError("math.erf() is not yet implemented in Skulpt")},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Error function at x."},erfc:{$meth:function erfc(e){throw new Sk.builtin.NotImplementedError("math.erfc() is not yet implemented in Skulpt")},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Complementary error function at x."},exp:{$meth:function exp(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let t=e.v;if("number"!=typeof t&&(t=e.nb$float().v),t==1/0||t==-1/0||isNaN(t))return new Sk.builtin.float_(Math.exp(t));const n=Math.exp(t);if(!isFinite(n))throw new Sk.builtin.OverflowError("math range error");return new Sk.builtin.float_(n)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return e raised to the power of x."},expm1:{$meth:function expm1(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e);if(Math.abs(t)<.7){const e=Math.exp(t);if(1==e)return new Sk.builtin.float_(t);{const n=(e-1)*t/Math.log(e);return new Sk.builtin.float_(n)}}{const e=Math.exp(t)-1;return new Sk.builtin.float_(e)}},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return exp(x)-1.\\n\\nThis function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x."},fabs:{$meth:function fabs(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let t=e.v;return JSBI.__isBigInt(t)&&(t=e.nb$float().v),t=Math.abs(t),new Sk.builtin.float_(t)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the absolute value of the float x."},factorial:{$meth:factorial,$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Find x!.\\n\\nRaise a ValueError if x is negative or non-integral."},floor:{$meth:function floor(e){let t;if(e.ob$type===i)t=e.v;else{const n=o(e,m);if(void 0!==n)return a(n);u("x","number",l(e)),t=Sk.builtin.asnum$(e)}return new n(Math.floor(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the floor of x as an Integral.\\n\\nThis is the largest integer <= x."},fmod:{$meth:function fmod(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));let n=e.v,i=t.v;if("number"!=typeof n&&(n=e.nb$float().v),"number"!=typeof i&&(i=t.nb$float().v),(i==1/0||i==-1/0)&&isFinite(n))return new Sk.builtin.float_(n);const r=n%i;if(isNaN(r)&&!isNaN(n)&&!isNaN(i))throw new Sk.builtin.ValueError("math domain error");return new Sk.builtin.float_(r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return fmod(x, y), according to platform C.\\n\\nx % y may differ."},frexp:{$meth:function frexp(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e),n=[t,0];if(0!==t&&Number.isFinite(t)){const e=Math.abs(t);let i=Math.max(-1023,Math.floor(Math.log2(e))+1),r=e*Math.pow(2,-i);for(;r<.5;)r*=2,i--;for(;r>=1;)r*=.5,i++;t<0&&(r=-r),n[0]=r,n[1]=i}return n[0]=new Sk.builtin.float_(n[0]),n[1]=new Sk.builtin.int_(n[1]),new Sk.builtin.tuple(n)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the mantissa and exponent of x, as pair (m, e).\\n\\nm is a float and e is an int, such that x = m * 2.**e.\\nIf x is 0, m and e are both 0. Else 0.5 <= abs(m) < 1.0."},fsum:{$meth:function fsum(e){if(!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("\'"+Sk.abstr.typeName(e)+"\' object is not iterable");let t,n,i,r=[];for(let l=(e=Sk.abstr.iter(e)).tp$iternext();void 0!==l;l=e.tp$iternext()){Sk.builtin.pyCheckType("","real number",Sk.builtin.checkNumber(l)),t=0;let e=l.v;"number"!=typeof e&&(e=l.nb$float().v),l=e;for(let u=0,o=r.length;u0;){n--;let t=a;a=JSBI.signedRightShift(u,JSBI.BigInt(n));const r=JSBI.subtract(JSBI.subtract(a,t),i),s=JSBI.leftShift(o,r),b=JSBI.add(JSBI.subtract(JSBI.subtract(l,t),a),i),c=JSBI.signedRightShift(e,b);o=JSBI.add(s,JSBI.divide(c,o))}let s=o;return JSBI.greaterThan(JSBI.multiply(s,s),e)&&(s=JSBI.subtract(s,i)),JSBI.lessThanOrEqual(s,JSBI.BigInt(Number.MAX_SAFE_INTEGER))&&(s=Number(s)),new Sk.builtin.int_(s)}(t)},$flags:{OneArg:!0},$textsig:"($module, n, /)",$doc:"Return the integer part of the square root of the input."},lcm:{$meth:function lcm(...e){function abs(e){return"number"==typeof e?new Sk.builtin.int_(Math.abs(e)):JSBI.lessThan(e,JSBI.__ZERO)?new Sk.builtin.int_(JSBI.unaryMinus(e)):new Sk.builtin.int_(e)}const t=e.length;if(0===t)return new Sk.builtin.int_(1);let n;for(n=0;nNumber.MAX_SAFE_INTEGER?JSBI.BigInt(r):e}else r=JSBI.BigInt(r);"number"!=typeof r&&(i=JSBI.BigInt(i),r=JSBI.multiply(JSBI.divide(r,_gcd_internal(r,i)),i))}return abs(r)},$flags:{MinArgs:0},$textsig:"($module, *integers, /)",$doc:"Return the least common multiple of the specified integer arguments. If all arguments are nonzero, then the returned value is the smallest positive integer that is a multiple of all arguments. If any of the arguments is zero, then the returned value is 0. lcm() without arguments returns 1."},ldexp:{$meth:function ldexp(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("i","integer",Sk.builtin.checkInt(t));let n=e.v;"number"!=typeof n&&(n=e.nb$float().v);const i=Sk.builtin.asnum$(t);if(n==1/0||n==-1/0||0==n||isNaN(n))return new Sk.builtin.float_(n);const r=n*Math.pow(2,i);if(!isFinite(r))throw new Sk.builtin.OverflowError("math range error");return new Sk.builtin.float_(r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, i, /)",$doc:"Return x * (2**i).\\n\\nThis is essentially the inverse of frexp()."},lgamma:{$meth:function lgamma(e){throw new Sk.builtin.NotImplementedError("math.lgamma() is not yet implemented in Skulpt")},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Natural logarithm of absolute value of Gamma function at x."},log:{$meth:function log(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));let n,i,r=Sk.builtin.asnum$(e);if(r<=0)throw new Sk.builtin.ValueError("math domain error");if(void 0===t?n=Math.E:(Sk.builtin.pyCheckType("base","number",Sk.builtin.checkNumber(t)),n=Sk.builtin.asnum$(t)),n<=0)throw new Sk.builtin.ValueError("math domain error");if(Sk.builtin.checkFloat(e)||re)return new Sk.builtin.int_(0);if(0===t)return new Sk.builtin.int_(1);if(t>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError("k must not exceed "+Number.MAX_SAFE_INTEGER);const n=new Sk.builtin.int_(1);let i=e=new Sk.builtin.int_(e);for(let r=1;r n.\\n\\nIf k is not specified or is None, then k defaults to n\\nand the function returns n!.\\n\\nRaises TypeError if either of the arguments are not integers.\\nRaises ValueError if either of the arguments are negative.\'"},prod:{$meth:function prod(e,t){Sk.abstr.checkArgsLen("prod",e,1,1),e=Sk.abstr.copyKeywordsToNamedArgs("prod",[null,"start"],e,t,[new Sk.builtin.int_(1)]);const n=Sk.abstr.iter(e[0]);let i,r=e[1];return i=r.constructor===Sk.builtin.int_?function fastProdInt(){return Sk.misceval.iterFor(n,(e=>{if(e.constructor!==Sk.builtin.int_)return e.constructor===Sk.builtin.float_?(r=r.nb$float().nb$multiply(e),new Sk.misceval.Break("float")):(r=Sk.abstr.numberBinOp(r,e,"Mult"),new Sk.misceval.Break("slow"));r=r.nb$multiply(e)}))}():r.constructor===Sk.builtin.float_?"float":"slow",Sk.misceval.chain(i,(e=>"float"===e?function fastProdFloat(){return Sk.misceval.iterFor(n,(e=>{if(e.constructor!==Sk.builtin.float_&&e.constructor!==Sk.builtin.int_)return r=Sk.abstr.numberBinOp(r,e,"Mult"),new Sk.misceval.Break("slow");r=r.nb$multiply(e)}))}():e),(e=>{if("slow"===e)return function slowProd(){return Sk.misceval.iterFor(n,(e=>{r=Sk.abstr.numberBinOp(r,e,"Mult")}))}()}),(()=>r))},$flags:{FastCall:!0},$textsig:"($module, iterable, /, *, start=1)",$doc:"Calculate the product of all the elements in the input iterable. The default start value for the product is 1.\\n\\nWhen the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types."},pow:{$meth:function pow(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));let n=e.v,i=t.v;if("number"!=typeof n&&(n=e.nb$float().v),"number"!=typeof i&&(i=t.nb$float().v),0==n&&i<0)throw new Sk.builtin.ValueError("math domain error");if(1==n)return new Sk.builtin.float_(1);if(Number.isFinite(n)&&Number.isFinite(i)&&n<0&&!Number.isInteger(i))throw new Sk.builtin.ValueError("math domain error");if(-1==n&&(i==-1/0||i==1/0))return new Sk.builtin.float_(1);const r=Math.pow(n,i);if(!Number.isFinite(n)||!Number.isFinite(i))return new Sk.builtin.float_(r);if(r==1/0||r==-1/0)throw new Sk.builtin.OverflowError("math range error");return new Sk.builtin.float_(r)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return x**y (x to the power of y)."},radians:{$meth:function radians(e){Sk.builtin.pyCheckType("deg","number",Sk.builtin.checkNumber(e));const t=Math.PI/180*Sk.builtin.asnum$(e);return new Sk.builtin.float_(t)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Convert angle x from degrees to radians."},remainder:{$meth:function remainder(e,t){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),Sk.builtin.pyCheckType("y","number",Sk.builtin.checkNumber(t));let n=e.v,i=t.v;if("number"!=typeof n&&(n=e.nb$float().v),"number"!=typeof i&&(i=t.nb$float().v),isFinite(n)&&isFinite(i)){let e,t,r,u,l;if(0==i)throw new Sk.builtin.ValueError("math domain error");if(e=Math.abs(n),t=Math.abs(i),u=e%t,r=t-u,ur)l=-r;else{if(u!=r)throw new Sk.builtin.AssertionError;l=u-.5*(e-u)%t*2}return new Sk.builtin.float_(get_sign(n)*l)}if(isNaN(n))return e;if(isNaN(i))return t;if(n==1/0||n==-1/0)throw new Sk.builtin.ValueError("math domain error");if(i!=1/0&&i!=-1/0)throw new Sk.builtin.AssertionError;return new Sk.builtin.float_(n)},$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Difference between x and the closest integer multiple of y.\\n\\nReturn x - n*y where n*y is the closest integer multiple of y.\\nIn the case where x is exactly halfway between two multiples of\\ny, the nearest even value of n is used. The result is always exact."},sin:{$meth:function sin(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.sin(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the sine of x (measured in radians)."},sinh:{$meth:function sinh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e)),e=Sk.builtin.asnum$(e);const t=Math.E,n=Math.pow(t,e),i=(n-1/n)/2;return new Sk.builtin.float_(i)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the hyperbolic sine of x."},sqrt:{$meth:function sqrt(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e);if(t<0)throw new Sk.builtin.ValueError("math domain error");return new Sk.builtin.float_(Math.sqrt(t))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the square root of x."},tan:{$meth:function tan(e){return Sk.builtin.pyCheckType("rad","number",Sk.builtin.checkNumber(e)),new Sk.builtin.float_(Math.tan(Sk.builtin.asnum$(e)))},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the tangent of x (measured in radians)."},tanh:{$meth:function tanh(e){Sk.builtin.pyCheckType("x","number",Sk.builtin.checkNumber(e));const t=Sk.builtin.asnum$(e);if(0===t)return new Sk.builtin.float_(t);const n=Math.E,i=Math.pow(n,t),r=1/i,u=(i-r)/2/((i+r)/2);return new Sk.builtin.float_(u)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the hyperbolic tangent of x."},trunc:{$meth:function trunc(e){if(e.ob$type===i)return e.nb$int();const n=o(e,t.$trunc);if(void 0===n)throw new r(`type ${e.tp$name} doesn\'t define __trunc__ method`);return a(n)},$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Truncates the Real x to the nearest Integral toward 0.\\n\\nUses the __trunc__ magic method."}}),s};',"src/lib/mixiot/__init__.js":'var $builtinmodule=function(i){var n={__name__:new Sk.builtin.str("mixiot")};n.MixIO=Sk.misceval.buildClass(n,(function(i,n){n.__init__=new Sk.builtin.func((function(i,n,e,o,t,c,f){n=Sk.ffi.remapToJs(n),e=Sk.ffi.remapToJs(e),o=Sk.ffi.remapToJs(o),t=Sk.ffi.remapToJs(t),c=Sk.ffi.remapToJs(c),f=Sk.ffi.remapToJs(f),mixio_client=new MixIO(n,e,o,t,c,f)})),n.publish=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n),t=Sk.ffi.remapToJs(e);mixio_client.publish(o,t)})),n.subscribe=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n);if(!(e instanceof Sk.builtin.func))throw new Sk.builtin.TypeError("Callback given is not a function");var t=function pythonToJavascriptFunction(i,n){return function(){var e=Array.prototype.slice.call(arguments).map((function(i){return Sk.ffi.remapToPy(i)}));return"undefined"!=typeof n&&e.unshift(n),Sk.misceval.applyAsync(void 0,i,void 0,void 0,void 0,e).catch(Sk.uncaughtException)}}(e);mixio_client.subscribeAndSetCallback(o,t)})),n.unsubscribe=new Sk.builtin.func((function(i,n){var e=Sk.ffi.remapToJs(n);mixio_client.unsubscribe(e)})),n.disconnect=new Sk.builtin.func((function(i){mixio_client.disconnect()}))}),"MixIO",[]);n.MixIO_init_by_mixly_key=Sk.misceval.buildClass(n,(function(i,n){n.__init__=new Sk.builtin.func((function(i,n,e,o,t){n=Sk.ffi.remapToJs(n),e=Sk.ffi.remapToJs(e),mixiomixlyKey=Sk.ffi.remapToJs(o),t=Sk.ffi.remapToJs(t),mixio_client=MixIO.fromMixlyKey(n,e,o,t)})),n.publish=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n),t=Sk.ffi.remapToJs(e);mixio_client.publish(o,t)})),n.subscribe=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n);if(!(e instanceof Sk.builtin.func))throw new Sk.builtin.TypeError("Callback given is not a function");var t=function pythonToJavascriptFunction(i,n){return function(){var e=Array.prototype.slice.call(arguments).map((function(i){return Sk.ffi.remapToPy(i)}));return"undefined"!=typeof n&&e.unshift(n),Sk.misceval.applyAsync(void 0,i,void 0,void 0,void 0,e).catch(Sk.uncaughtException)}}(e);mixio_client.subscribeAndSetCallback(o,t)})),n.unsubscribe=new Sk.builtin.func((function(i,n){var e=Sk.ffi.remapToJs(n);mixio_client.unsubscribe(e)})),n.disconnect=new Sk.builtin.func((function(i){mixio_client.disconnect()}))}),"MixIO_init_by_mixly_key",[]);return n.MixIO_init_by_share_key=Sk.misceval.buildClass(n,(function(i,n){n.__init__=new Sk.builtin.func((function(i,n,e,o,t){n=Sk.ffi.remapToJs(n),e=Sk.ffi.remapToJs(e),mixiomixlyKey=Sk.ffi.remapToJs(o),t=Sk.ffi.remapToJs(t),mixio_client=MixIO.fromShareKey(n,e,o,t).then((i=>{console.log(i),mixio_client_sharekey=i})).catch((i=>{console.error("Failed to create MixIO from share key: ",i),sleep(1)}))})),n.publish=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n),t=Sk.ffi.remapToJs(e);mixio_client_sharekey.publish(o,t)})),n.subscribe=new Sk.builtin.func((function(i,n,e){var o=Sk.ffi.remapToJs(n);if(!(e instanceof Sk.builtin.func))throw new Sk.builtin.TypeError("Callback given is not a function");var t=function pythonToJavascriptFunction(i,n){return function(){var e=Array.prototype.slice.call(arguments).map((function(i){return Sk.ffi.remapToPy(i)}));return"undefined"!=typeof n&&e.unshift(n),Sk.misceval.applyAsync(void 0,i,void 0,void 0,void 0,e).catch(Sk.uncaughtException)}}(e);mixio_client_sharekey.subscribeAndSetCallback(o,t)})),n.unsubscribe=new Sk.builtin.func((function(i,n){var e=Sk.ffi.remapToJs(n);mixio_client_sharekey.unsubscribe(e)})),n.disconnect=new Sk.builtin.func((function(i){mixio_client_sharekey.disconnect()}))}),"MixIO_init_by_share_key",[]),n};',"src/lib/operator.js":'function $builtinmodule(e){const{builtin:{str:t,tuple:a,list:r,int_:o,bool:n,TypeError:s,ValueError:i,none:{none$:m},NotImplemented:{NotImplemented$:d},abs:l,len:h,checkString:u,checkInt:c},abstr:{buildNativeClass:M,checkNoKwargs:b,checkArgsLen:g,checkOneArg:f,numberUnaryOp:p,numberBinOp:A,numberInplaceBinOp:k,objectGetItem:$,objectDelItem:_,objectSetItem:w,sequenceConcat:v,sequenceContains:x,sequenceGetCountOf:j,sequenceGetIndexOf:O,sequenceInPlaceConcat:I,typeName:S,lookupSpecial:y,gattr:q,setUpModuleMethods:R},misceval:{richCompareBool:B,asIndexOrThrow:N,chain:E,callsimArray:T,callsimOrSuspendArray:C,objectRepr:D},generic:{getAttr:G}}=Sk,L=["abs","add","and_","concat","contains","delitem","eq","floordiv","ge","getitem","gt","iadd","iand","iconcat","ifloordiv","ilshift","imatmul","imod","imul","index","inv","invert","ior","ipow","irshift","isub","itruediv","ixor","le","lshift","lt","matmul","mod","mul","ne","neg","not_","or_","pos","pow","rshift","setitem","sub","truediv","xor"],F=["attrgetter","countOf","indexOf","is_","is_not","itemgetter","length_hint","methodcaller","truth",...L].sort(),P={__name__:new t("operator"),__doc__:new t("Operator interface.\\n\\nThis module exports a set of functions implemented in javascript corresponding\\nto the intrinsic operators of Python. For example, operator.add(x, y)\\nis equivalent to the expression x+y. The function names are those\\nused for special methods; variants without leading and trailing\\n\'__\' are also provided for convenience."),__all__:new r(F.map((e=>new t(e))))};P.itemgetter=M("operator.itemgetter",{constructor:function itemgetter(e){this.items=e,this.oneitem=1===e.length,this.item=e[0],this.in$repr=!1},slots:{tp$getattr:G,tp$new:(e,t)=>(b("itemgetter",t),g("itemgetter",e,1),new P.itemgetter(e)),tp$call(e,t){f("itemgetter",e,t);const r=e[0];return this.oneitem?$(r,this.item,!0):new a(this.items.map((e=>$(r,e))))},tp$doc:"Return a callable object that fetches the given item(s) from its operand.\\n After f = itemgetter(2), the call f(r) returns r[2].\\n After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])",$r(){if(this.in$repr)return new t(this.tp$name+"(...)");this.in$repr=!0;const e=this.tp$name+"("+this.items.map((e=>D(e))).join(", ")+")";return this.in$repr=!1,e}}}),P.attrgetter=M("operator.attrgetter",{constructor:function attrgetter(e){this.attrs=e,this.oneattr=1===e.length,this.attr=e[0],this.in$repr=!1},slots:{tp$getattr:G,tp$new(e,a){b("attrgetter",a),g("attrgetter",e,1);const r=[];for(let o=0;onew t(e)))):r.push([a])}return new P.attrgetter(r)},tp$call(e,t){f("attrgetter",e,t);const r=e[0];if(this.oneattr)return this.attr.reduce(((e,t)=>q(e,t)),r);const o=this.attrs.map((e=>e.reduce(((e,t)=>q(e,t)),r)));return new a(o)},tp$doc:"attrgetter(attr, ...) --\\x3e attrgetter object\\n\\nReturn a callable object that fetches the given attribute(s) from its operand.\\nAfter f = attrgetter(\'name\'), the call f(r) returns r.name.\\nAfter g = attrgetter(\'name\', \'date\'), the call g(r) returns (r.name, r.date).\\nAfter h = attrgetter(\'name.first\', \'name.last\'), the call h(r) returns\\n(r.name.first, r.name.last).",$r(){if(this.in$repr)return new t(this.tp$name+"(...)");this.in$repr=!0;const e=this.tp$name+"("+this.items.map((e=>D(e))).join(", ")+")";return this.in$repr=!1,e}}}),P.methodcaller=M("operator.methodcaller",{constructor:function methodcaller(e,t,a){this.$name=e,this.args=t,this.kwargs=a||[],this.in$repr=!1},slots:{tp$getattr:G,tp$new(e,t){g("methodcaller",e,1);const a=e[0];if(!u(a))throw new s("method name must be a string");return new P.methodcaller(a,e.slice(1),t)},tp$call(e,t){f("methodcaller",e,t);const a=e[0];return E(q(a,this.$name,!0),(e=>C(e,this.args,this.kwargs)))},tp$doc:"methodcaller(name, ...) --\\x3e methodcaller object\\n\\nReturn a callable object that calls the given method on its operand.\\nAfter f = methodcaller(\'name\'), the call f(r) returns r.name().\\nAfter g = methodcaller(\'name\', \'date\', foo=1), the call g(r) returns\\nr.name(\'date\', foo=1).",$r(){if(this.in$repr)return new t(this.tp$name+"(...)");this.in$repr=!0;let e=[D(this.$name)];e.push(...this.args.map((e=>D(e))));for(let t=0;tn(B(e,t,"Lt"))),sameAs("a < b")),le:makeModuleMethod(((e,t)=>n(B(e,t,"LtE"))),sameAs("a <= b")),eq:makeModuleMethod(((e,t)=>n(B(e,t,"Eq"))),sameAs("a == b")),ne:makeModuleMethod(((e,t)=>n(B(e,t,"NotEq"))),sameAs("a != b")),ge:makeModuleMethod(((e,t)=>n(B(e,t,"GtE"))),sameAs("a >= b")),gt:makeModuleMethod(((e,t)=>n(B(e,t,"Gt"))),sameAs("a > b")),not_:makeModuleMethod((e=>p(e,"Not")),sameAs("not a")),truth:makeModuleMethod((e=>n(e)),"Return True if a is true, False otherwise."),is_:makeModuleMethod(((e,t)=>n(B(e,t,"Is"))),sameAs("a is b")),is_not:makeModuleMethod(((e,t)=>n(B(e,t,"IsNot"))),sameAs("a is not b")),abs:makeModuleMethod((e=>l(e)),sameAs("abs(a)")),add:makeModuleMethod(((e,t)=>A(e,t,"Add")),sameAs("a + b")),and_:makeModuleMethod(((e,t)=>A(e,t,"BitAnd")),sameAs("a & b")),floordiv:makeModuleMethod(((e,t)=>A(e,t,"FloorDiv")),sameAs("a // b")),index:makeModuleMethod((e=>new o(N(e))),sameAs("a.__index__()")),inv:makeModuleMethod((e=>p(e,"Invert")),sameAs("~a")),invert:makeModuleMethod((e=>p(e,"Invert")),sameAs("~a")),lshift:makeModuleMethod(((e,t)=>A(e,t,"LShift")),sameAs("a << b")),mod:makeModuleMethod(((e,t)=>A(e,t,"Mod")),sameAs("a % b")),mul:makeModuleMethod(((e,t)=>A(e,t,"Mult")),sameAs("a * b")),matmul:makeModuleMethod(((e,t)=>A(e,t,"MatMult")),sameAs("a @ b")),neg:makeModuleMethod((e=>p(e,"USub")),sameAs("-a")),or_:makeModuleMethod(((e,t)=>A(e,t,"BitOr")),sameAs("a | b")),pos:makeModuleMethod((e=>p(e,"UAdd")),sameAs("+a")),pow:makeModuleMethod(((e,t)=>A(e,t,"Pow")),sameAs("a ** b")),rshift:makeModuleMethod(((e,t)=>A(e,t,"RShift")),sameAs("a >> b")),sub:makeModuleMethod(((e,t)=>A(e,t,"Sub")),sameAs("a - b")),truediv:makeModuleMethod(((e,t)=>A(e,t,"Div")),sameAs("a / b")),xor:makeModuleMethod(((e,t)=>A(e,t,"BitXor")),sameAs("a ^ b")),concat:makeModuleMethod(((e,t)=>v(e,t)),sameAs("a + b, for a and b sequences")),contains:makeModuleMethod(((e,t)=>E(x(e,t),n)),sameAs("b in a (note reversed operands)")),countOf:makeModuleMethod(((e,t)=>j(e,t)),"Return thenumber of times b occurs in a."),delitem:makeModuleMethod(((e,t)=>E(_(e,t,!0),(()=>m))),sameAs("del a[b]")),getitem:makeModuleMethod(((e,t)=>$(e,t,!0)),sameAs("a[b]")),indexOf:makeModuleMethod(((e,t)=>O(e,t)),"Return the first index of b in a"),setitem:makeModuleMethod(((e,t,a)=>E(w(e,t,a,!0),(()=>m))),sameAs("a[b] = c")),length_hint:{$meth:function length_hint(e,a){if(void 0===a)a=new o(0);else if(!c(a))throw new s("\'"+S(a)+"\' object cannot be interpreted as an integer");try{return h(e)}catch(m){if(!(m instanceof s))throw m}const r=y(e,t.$length_hint);if(void 0===r)return a;let n;try{n=T(r,[])}catch(m){if(!(m instanceof s))throw m;return a}if(n===d)return a;if(!c(n))throw new s("__length_hint__ must be an integer, not "+S(n));if(n.nb$isnegative())throw new i("__length_hint__() should return >= 0");return n},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($module, obj, default=0, /)",$doc:"Return an estimate of the number of items in obj.\\n\\nThis is useful for presizing containers when building from an iterable.\\n\\nIf the object supports len(), the result will be exact.\\nOtherwise, it may over- or under-estimate by an arbitrary amount.\\nThe result will be an integer >= 0."},iadd:makeModuleMethod(((e,t)=>k(e,t,"Add")),sameAs("a += b")),iand:makeModuleMethod(((e,t)=>k(e,t,"BitAnd")),sameAs("a &= b")),iconcat:makeModuleMethod(((e,t)=>I(e,t)),sameAs("a += b, for a and b sequences")),ifloordiv:makeModuleMethod(((e,t)=>k(e,t,"FloorDiv")),sameAs("a //= b")),ilshift:makeModuleMethod(((e,t)=>k(e,t,"LShift")),sameAs("a <<= b")),imod:makeModuleMethod(((e,t)=>k(e,t,"Mod")),sameAs("a %= b")),imul:makeModuleMethod(((e,t)=>k(e,t,"Mult")),sameAs("a *= b")),imatmul:makeModuleMethod(((e,t)=>k(e,t,"MatMult")),sameAs("a @= b")),ior:makeModuleMethod(((e,t)=>k(e,t,"BitOr")),sameAs("a |= b")),ipow:makeModuleMethod(((e,t)=>k(e,t,"Pow")),sameAs("a **= b")),irshift:makeModuleMethod(((e,t)=>k(e,t,"RShift")),sameAs("a >>= b")),isub:makeModuleMethod(((e,t)=>k(e,t,"Sub")),sameAs("a -= b")),itruediv:makeModuleMethod(((e,t)=>k(e,t,"Div")),sameAs("a /= b")),ixor:makeModuleMethod(((e,t)=>k(e,t,"BitXor")),sameAs("a ^= b"))}),L.forEach((e=>{P[`__${e.replace("_","")}__`]=P[e]})),P.div=P.truediv,P.__div__=P.div,P}',"src/lib/platform.js":'var $builtinmodule=function(n){var e={},i="undefined"!=typeof window&&"undefined"!=typeof window.navigator;return e.python_implementation=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("python_implementation",arguments.length,0,0),new Sk.builtin.str("Skulpt")})),e.node=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("node",arguments.length,0,0),new Sk.builtin.str("")})),e.version=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("version",arguments.length,0,0),new Sk.builtin.str("")})),e.python_version=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("python_version",arguments.length,0,0),n=Sk.__future__.python_version?"3.2.0":"2.7.0",new Sk.builtin.str(n)})),e.system=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("system",arguments.length,0,0),n=i?window.navigator.appCodeName:"",new Sk.builtin.str(n)})),e.machine=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("machine",arguments.length,0,0),n=i?window.navigator.platform:"",new Sk.builtin.str(n)})),e.release=new Sk.builtin.func((function(){var n;return Sk.builtin.pyCheckArgsLen("release",arguments.length,0,0),n=i?window.navigator.appVersion:"",new Sk.builtin.str(n)})),e.architecture=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("architecture",arguments.length,0,0),new Sk.builtin.tuple([new Sk.builtin.str("64bit"),new Sk.builtin.str("")])})),e.processor=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("processor",arguments.length,0,0),new Sk.builtin.str("")})),e};',"src/lib/processing.js":'var $builtinmodule=function(n){var i,e,t,u,o,s,l,c={__name__:new Sk.builtin.str("processing")},r=[],v=!0,f=null;c.processing=null,c.p=null,c.X=new Sk.builtin.int_(0),c.Y=new Sk.builtin.int_(1),c.Z=new Sk.builtin.int_(2),c.R=new Sk.builtin.int_(3),c.G=new Sk.builtin.int_(4),c.B=new Sk.builtin.int_(5),c.A=new Sk.builtin.int_(6),c.U=new Sk.builtin.int_(7),c.V=new Sk.builtin.int_(8),c.NX=new Sk.builtin.int_(9),c.NY=new Sk.builtin.int_(10),c.NZ=new Sk.builtin.int_(11),c.EDGE=new Sk.builtin.int_(12),c.SR=new Sk.builtin.int_(13),c.SG=new Sk.builtin.int_(14),c.SB=new Sk.builtin.int_(15),c.SA=new Sk.builtin.int_(16),c.SW=new Sk.builtin.int_(17),c.TX=new Sk.builtin.int_(18),c.TY=new Sk.builtin.int_(19),c.TZ=new Sk.builtin.int_(20),c.VX=new Sk.builtin.int_(21),c.VY=new Sk.builtin.int_(22),c.VZ=new Sk.builtin.int_(23),c.VW=new Sk.builtin.int_(24),c.AR=new Sk.builtin.int_(25),c.AG=new Sk.builtin.int_(26),c.AB=new Sk.builtin.int_(27),c.DR=new Sk.builtin.int_(3),c.DG=new Sk.builtin.int_(4),c.DB=new Sk.builtin.int_(5),c.DA=new Sk.builtin.int_(6),c.SPR=new Sk.builtin.int_(28),c.SPG=new Sk.builtin.int_(29),c.SPB=new Sk.builtin.int_(30),c.SHINE=new Sk.builtin.int_(31),c.ER=new Sk.builtin.int_(32),c.EG=new Sk.builtin.int_(33),c.EB=new Sk.builtin.int_(34),c.BEEN_LIT=new Sk.builtin.int_(35),c.VERTEX_FIELD_COUNT=new Sk.builtin.int_(36),c.CENTER=new Sk.builtin.int_(3),c.RADIUS=new Sk.builtin.int_(2),c.CORNERS=new Sk.builtin.int_(1),c.CORNER=new Sk.builtin.int_(0),c.DIAMETER=new Sk.builtin.int_(3),c.BASELINE=new Sk.builtin.int_(0),c.TOP=new Sk.builtin.int_(101),c.BOTTOM=new Sk.builtin.int_(102),c.NORMAL=new Sk.builtin.int_(1),c.NORMALIZED=new Sk.builtin.int_(1),c.IMAGE=new Sk.builtin.int_(2),c.MODEL=new Sk.builtin.int_(4),c.SHAPE=new Sk.builtin.int_(5),c.AMBIENT=new Sk.builtin.int_(0),c.DIRECTIONAL=new Sk.builtin.int_(1),c.SPOT=new Sk.builtin.int_(3),c.RGB=new Sk.builtin.int_(1),c.ARGB=new Sk.builtin.int_(2),c.HSB=new Sk.builtin.int_(3),c.ALPHA=new Sk.builtin.int_(4),c.CMYK=new Sk.builtin.int_(5),c.TIFF=new Sk.builtin.int_(0),c.TARGA=new Sk.builtin.int_(1),c.JPEG=new Sk.builtin.int_(2),c.GIF=new Sk.builtin.int_(3),c.MITER=new Sk.builtin.str("miter"),c.BEVEL=new Sk.builtin.str("bevel"),c.ROUND=new Sk.builtin.str("round"),c.SQUARE=new Sk.builtin.str("butt"),c.PROJECT=new Sk.builtin.str("square"),c.P2D=new Sk.builtin.int_(1),c.JAVA2D=new Sk.builtin.int_(1),c.WEBGL=new Sk.builtin.int_(2),c.P3D=new Sk.builtin.int_(2),c.OPENGL=new Sk.builtin.int_(2),c.PDF=new Sk.builtin.int_(0),c.DXF=new Sk.builtin.int_(0),c.OTHER=new Sk.builtin.int_(0),c.WINDOWS=new Sk.builtin.int_(1),c.MAXOSX=new Sk.builtin.int_(2),c.LINUX=new Sk.builtin.int_(3),c.EPSILON=new Sk.builtin.float_(1e-4),c.MAX_FLOAT=new Sk.builtin.float_(34028235e31),c.MIN_FLOAT=new Sk.builtin.float_(-34028235e31),c.MAX_INT=new Sk.builtin.int_(2147483647),c.MIN_INT=new Sk.builtin.int_(-2147483648),c.HALF_PI=new Sk.builtin.float_(Math.PI/2),c.THIRD_PI=new Sk.builtin.float_(Math.PI/3),c.PI=new Sk.builtin.float_(Math.PI),c.TWO_PI=new Sk.builtin.float_(2*Math.PI),c.TAU=new Sk.builtin.float_(2*Math.PI),c.QUARTER_PI=new Sk.builtin.float_(Math.PI/4),c.DEG_TO_RAD=new Sk.builtin.float_(Math.PI/180),c.RAD_TO_DEG=new Sk.builtin.float_(180/Math.PI),c.WHITESPACE=new Sk.builtin.str(" \\t\\n\\r\\f "),c.POINT=new Sk.builtin.int_(2),c.POINTS=new Sk.builtin.int_(2),c.LINE=new Sk.builtin.int_(4),c.LINES=new Sk.builtin.int_(4),c.TRIANGLE=new Sk.builtin.int_(8),c.TRIANGLES=new Sk.builtin.int_(9),c.TRIANGLE_FAN=new Sk.builtin.int_(11),c.TRIANGLE_STRIP=new Sk.builtin.int_(10),c.QUAD=new Sk.builtin.int_(16),c.QUADS=new Sk.builtin.int_(16),c.QUAD_STRIP=new Sk.builtin.int_(17),c.POLYGON=new Sk.builtin.int_(20),c.PATH=new Sk.builtin.int_(21),c.RECT=new Sk.builtin.int_(30),c.ELLIPSE=new Sk.builtin.int_(31),c.ARC=new Sk.builtin.int_(32),c.SPHERE=new Sk.builtin.int_(40),c.BOX=new Sk.builtin.int_(41),c.GROUP=new Sk.builtin.int_(0),c.PRIMITIVE=new Sk.builtin.int_(1),c.GEOMETRY=new Sk.builtin.int_(3),c.VERTEX=new Sk.builtin.int_(0),c.BEZIER_VERTEX=new Sk.builtin.int_(1),c.CURVE_VERTEX=new Sk.builtin.int_(2),c.BREAK=new Sk.builtin.int_(3),c.CLOSESHAPE=new Sk.builtin.int_(4),c.REPLACE=new Sk.builtin.int_(0),c.BLEND=new Sk.builtin.int_(1),c.ADD=new Sk.builtin.int_(2),c.SUBTRACT=new Sk.builtin.int_(4),c.LIGHTEST=new Sk.builtin.int_(8),c.DARKEST=new Sk.builtin.int_(16),c.DIFFERENCE=new Sk.builtin.int_(32),c.EXCLUSION=new Sk.builtin.int_(64),c.MULTIPLY=new Sk.builtin.int_(128),c.SCREEN=new Sk.builtin.int_(256),c.OVERLAY=new Sk.builtin.int_(512),c.HARD_LIGHT=new Sk.builtin.int_(1024),c.SOFT_LIGHT=new Sk.builtin.int_(2048),c.DODGE=new Sk.builtin.int_(4096),c.BURN=new Sk.builtin.int_(8192),c.ALPHA_MASK=new Sk.builtin.int_(4278190080),c.RED_MASK=new Sk.builtin.int_(16711680),c.GREEN_MASK=new Sk.builtin.int_(65280),c.BLUE_MASK=new Sk.builtin.int_(255),c.CUSTOM=new Sk.builtin.int_(0),c.ORTHOGRAPHIC=new Sk.builtin.int_(2),c.PERSPECTIVE=new Sk.builtin.int_(3),c.ARROW=new Sk.builtin.str("default"),c.CROSS=new Sk.builtin.str("crosshair"),c.HAND=new Sk.builtin.str("pointer"),c.MOVE=new Sk.builtin.str("move"),c.TEXT=new Sk.builtin.str("text"),c.WAIT=new Sk.builtin.str("wait"),c.NOCURSOR=Sk.builtin.assk$("url(\'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\'), auto"),c.DISABLE_OPENGL_2X_SMOOTH=new Sk.builtin.int_(1),c.ENABLE_OPENGL_2X_SMOOTH=new Sk.builtin.int_(-1),c.ENABLE_OPENGL_4X_SMOOTH=new Sk.builtin.int_(2),c.ENABLE_NATIVE_FONTS=new Sk.builtin.int_(3),c.DISABLE_DEPTH_TEST=new Sk.builtin.int_(4),c.ENABLE_DEPTH_TEST=new Sk.builtin.int_(-4),c.ENABLE_DEPTH_SORT=new Sk.builtin.int_(5),c.DISABLE_DEPTH_SORT=new Sk.builtin.int_(-5),c.DISABLE_OPENGL_ERROR_REPORT=new Sk.builtin.int_(6),c.ENABLE_OPENGL_ERROR_REPORT=new Sk.builtin.int_(-6),c.ENABLE_ACCURATE_TEXTURES=new Sk.builtin.int_(7),c.DISABLE_ACCURATE_TEXTURES=new Sk.builtin.int_(-7),c.HINT_COUNT=new Sk.builtin.int_(10),c.OPEN=new Sk.builtin.int_(1),c.CLOSE=new Sk.builtin.int_(2),c.BLUR=new Sk.builtin.int_(11),c.GRAY=new Sk.builtin.int_(12),c.INVERT=new Sk.builtin.int_(13),c.OPAQUE=new Sk.builtin.int_(14),c.POSTERIZE=new Sk.builtin.int_(15),c.THRESHOLD=new Sk.builtin.int_(16),c.ERODE=new Sk.builtin.int_(17),c.DILATE=new Sk.builtin.int_(18),c.BACKSPACE=new Sk.builtin.int_(8),c.TAB=new Sk.builtin.int_(9),c.ENTER=new Sk.builtin.int_(10),c.RETURN=new Sk.builtin.int_(13),c.ESC=new Sk.builtin.int_(27),c.DELETE=new Sk.builtin.int_(127),c.CODED=new Sk.builtin.int_(65535),c.SHIFT=new Sk.builtin.int_(16),c.CONTROL=new Sk.builtin.int_(17),c.ALT=new Sk.builtin.int_(18),c.CAPSLK=new Sk.builtin.int_(20),c.PGUP=new Sk.builtin.int_(33),c.PGDN=new Sk.builtin.int_(34),c.END=new Sk.builtin.int_(35),c.HOME=new Sk.builtin.int_(36),c.LEFT=new Sk.builtin.int_(37),c.UP=new Sk.builtin.int_(38),c.RIGHT=new Sk.builtin.int_(39),c.DOWN=new Sk.builtin.int_(40),c.F1=new Sk.builtin.int_(112),c.F2=new Sk.builtin.int_(113),c.F3=new Sk.builtin.int_(114),c.F4=new Sk.builtin.int_(115),c.F5=new Sk.builtin.int_(116),c.F6=new Sk.builtin.int_(117),c.F7=new Sk.builtin.int_(118),c.F8=new Sk.builtin.int_(119),c.F9=new Sk.builtin.int_(120),c.F10=new Sk.builtin.int_(121),c.F11=new Sk.builtin.int_(122),c.F12=new Sk.builtin.int_(123),c.NUMLK=new Sk.builtin.int_(144),c.META=new Sk.builtin.int_(157),c.INSERT=new Sk.builtin.int_(155),c.SINCOS_LENGTH=new Sk.builtin.int_(720),c.PRECISIONB=new Sk.builtin.int_(15),c.PRECISIONF=new Sk.builtin.int_(32768),c.PREC_MAXVAL=new Sk.builtin.int_(32767),c.PREC_ALPHA_SHIFT=new Sk.builtin.int_(9),c.PREC_RED_SHIFT=new Sk.builtin.int_(1),c.NORMAL_MODE_AUTO=new Sk.builtin.int_(0),c.NORMAL_MODE_SHAPE=new Sk.builtin.int_(1),c.NORMAL_MODE_VERTEX=new Sk.builtin.int_(2),c.MAX_LIGHTS=new Sk.builtin.int_(8),c.line=new Sk.builtin.func((function(n,i,e,t){c.processing.line(n.v,i.v,e.v,t.v)})),c.ellipse=new Sk.builtin.func((function(n,i,e,t){c.processing.ellipse(n.v,i.v,e.v,t.v)})),c.circle=new Sk.builtin.func((function(n,i,e){c.processing.ellipse(n.v,i.v,e.v,e.v)})),c.text=new Sk.builtin.func((function(n,i,e){c.processing.text(n.v,i.v,e.v)})),c.point=new Sk.builtin.func((function(n,i){c.processing.point(n.v,i.v)})),c.arc=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.arc(n.v,i.v,e.v,t.v,u.v,o.v)})),c.quad=new Sk.builtin.func((function(n,i,e,t,u,o,s,l){c.processing.quad(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v)})),c.rect=new Sk.builtin.func((function(n,i,e,t,u){"undefined"==typeof u?c.processing.rect(n.v,i.v,e.v,t.v):c.processing.rect(n.v,i.v,e.v,t.v,u.v)})),c.triangle=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.triangle(n.v,i.v,e.v,t.v,u.v,o.v)})),c.bezier=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r,v,f,S){"undefined"==typeof r?c.processing.bezier(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):c.processing.bezier(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v,f.v,S.v)})),c.alpha=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof i?new Sk.builtin.float_(c.processing.alpha(n.v)):"undefined"==typeof e?new Sk.builtin.float_(c.processing.alpha(n.v,i.v)):new Sk.builtin.float_(c.processing.alpha(n.v,i.v,e.v))})),c.ambient=new Sk.builtin.func((function(n,i,e){"undefined"==typeof i?c.processing.ambient(n.v):"undefined"==typeof e?c.processing.ambient(n.v,i.v):c.processing.ambient(n.v,i.v,e.v)})),c.ambientLight=new Sk.builtin.func((function(n,i,e,t,u,o){"undefined"==typeof t?c.processing.ambientLight(n.v,i.v,e.v):"undefined"==typeof u?c.processing.ambientLight(n.v,i.v,e.v,t.v):"undefined"==typeof o?c.processing.ambientLight(n.v,i.v,e.v,t.v,u.v):c.processing.ambientLight(n.v,i.v,e.v,t.v,u.v,o.v)})),c.beginCamera=new Sk.builtin.func((function(){c.processing.beginCamera()})),c.beginShape=new Sk.builtin.func((function(n){"undefined"==typeof n&&(n=c.POLYGON),c.processing.beginShape(n.v)})),c.bezierDetail=new Sk.builtin.func((function(n){n="undefined"!=typeof n?n.v:20,c.processing.bezierDetail(n)})),c.bezierPoint=new Sk.builtin.func((function(n,i,e,t,u){c.processing.bezierPoint(n.v,i.v,e.v,t.v,u.v)})),c.bezierTangent=new Sk.builtin.func((function(n,i,e,t,u){c.processing.bezierTangent(n.v,i.v,e.v,t.v,u.v)})),c.bezierVertex=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r){"undefined"==typeof s?c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v):"undefined"==typeof l?c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v,s.v):"undefined"==typeof r?c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):c.processing.bezierVertex(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v)})),c.blend=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r,v){n instanceof Sk.builtin.int_||n instanceof Sk.builtin.float_?c.processing.blend(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v):c.processing.blend(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v)})),c.blendColor=new Sk.builtin.func((function(n,i,e){var t=Sk.misceval.callsimArray(c.color,[new Sk.builtin.int_(0),new Sk.builtin.int_(0),new Sk.builtin.int_(0)]);return t.v=c.processing.blendColor(n.v,i.v,e.v),t})),c.brightness=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof i?new Sk.builtin.float_(c.processing.brightness(n.v)):"undefined"==typeof e?new Sk.builtin.float_(c.processing.brightness(n.v,i.v)):new Sk.builtin.float_(c.processing.brightness(n.v,i.v,e.v))})),c.camera=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r){"undefined"==typeof n?c.processing.camera():c.processing.camera(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v)})),c.constrain=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.constrain(n.v,i.v,e.v))})),c.copy=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r){n instanceof Sk.builtin.int_||n instanceof Sk.builtin.float_?c.processing.copy(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):c.processing.copy(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v)})),c.createFont=new Sk.builtin.func((function(n,i,e,t){var u=Sk.misceval.callsimArray(c.PFont);return u.v="undefined"==typeof e?c.processing.createFont(n.v,i.v):"undefined"==typeof t?c.processing.createFont(n.v,i.v,e.v):c.processing.createFont(n.v,i.v,e.v,t.v),u})),c.createGraphics=new Sk.builtin.func((function(n,i,e,t){var u=Sk.misceval.callsimArray(c.PGraphics);return u.v="undefined"==typeof t?c.processing.createGraphics(n.v,i.v,e.v):c.processing.createGraphics(n.v,i.v,e.v,t.v),u})),c.createImage=new Sk.builtin.func((function(n,i,e){var t=Sk.misceval.callsimArray(c.PImage);return t.v=c.processing.createImage(n.v,i.v,e.v),t})),c.cursor=new Sk.builtin.func((function(n,i,e){"undefined"==typeof n?c.processing.cursor():"undefined"==typeof i?c.processing.cursor(n.v):"undefined"==typeof e?c.processing.cursor(n.v,i.v):c.processing.cursor(n.v,i.v,e.v)})),c.curve=new Sk.builtin.func((function(n,i,e,t,u,o,s,l,r,v,f,S){"undefined"==typeof r?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v):"undefined"==typeof v?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v):"undefined"==typeof f?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v):"undefined"==typeof S?c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v,f.v):c.processing.curve(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v,r.v,v.v,f.v,S.v)})),c.curveDetail=new Sk.builtin.func((function(n){c.processing.curveDetail(n.v)})),c.curvePoint=new Sk.builtin.func((function(n,i,e,t,u){c.processing.curvePoint(n.v,i.v,e.v,t.v,u.v)})),c.curveTangent=new Sk.builtin.func((function(n,i,e,t,u){c.processing.curveTangent(n.v,i.v,e.v,t.v,u.v)})),c.curveTightness=new Sk.builtin.func((function(n){c.processing.curveTightness(n.v)})),c.curveVertex=new Sk.builtin.func((function(n,i,e){"undefined"==typeof e?c.processing.curveVertex(n.v,i.v):c.processing.curveVertex(n.v,i.v,e.v)})),c.day=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.day())})),c.degrees=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.degrees(n.v))})),c.directionalLight=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.directionalLight(n.v,i.v,e.v,t.v,u.v,o.v)})),c.dist=new Sk.builtin.func((function(n,i,e,t,u,o){return"undefined"==typeof u?new Sk.builtin.float_(c.processing.dist(n.v,i.v,e.v,t.v)):"undefined"==typeof o?new Sk.builtin.float_(c.processing.dist(n.v,i.v,e.v,t.v,u.v)):new Sk.builtin.float_(c.processing.dist(n.v,i.v,e.v,t.v,u.v,o.v))})),c.emissive=new Sk.builtin.func((function(n,i,e){"undefined"==typeof i?c.processing.emissive(n.v):"undefined"==typeof e?c.processing.emissive(n.v,i.v):c.processing.emissive(n.v,i.v,e.v)})),c.endCamera=new Sk.builtin.func((function(){c.processing.endCamera()})),c.endShape=new Sk.builtin.func((function(n){"undefined"==typeof n?c.processing.endShape():c.processing.endShape(n.v)})),c.filter=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.filter(n.v):c.processing.filter(n.v,i.v)})),c.frustum=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.frustum(n,i,e,t,u,o)})),c.hint=new Sk.builtin.func((function(n){c.processing.hint(n)})),c.hour=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.hour())})),c.hue=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.hue(n.v))})),c.imageMode=new Sk.builtin.func((function(n){c.processing.imageMode(n.v)})),c.lerp=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.lerp(n.v,i.v,e.v))})),c.lerpColor=new Sk.builtin.func((function(n,i,e){var t=Sk.misceval.callsimArray(c.color,[new Sk.builtin.int_(0),new Sk.builtin.int_(0),new Sk.builtin.int_(0)]);return t.v=c.processing.lerpColor(n.v,i.v,e.v),t})),c.lightFalloff=new Sk.builtin.func((function(n,i,e){c.processing.lightFalloff(n.v,i.v,e.v)})),c.lights=new Sk.builtin.func((function(){c.processing.lights()})),c.lightSpecular=new Sk.builtin.func((function(n,i,e){c.processing.lightSpecular(n.v,i.v,e.v)})),c.loadBytes=new Sk.builtin.func((function(n){return new Sk.builtin.list(c.processing.loadBytes(n.v))})),c.loadFont=new Sk.builtin.func((function(n){var i=Sk.misceval.callsimArray(c.PFont);return i.v=c.processing.loadFont(n.v),i})),c.loadShape=new Sk.builtin.func((function(n){return Sk.misceval.callsimArray(c.PShapeSVG,[new Sk.builtin.str("string"),n])})),c.loadStrings=new Sk.builtin.func((function(n){return new Sk.builtin.list(c.processing.loadStrings(n.v))})),c.mag=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof e?new Sk.builtin.float_(c.processing.mag(n.v,i.v)):new Sk.builtin.float_(c.processing.mag(n.v,i.v,e.v))})),c.map=new Sk.builtin.func((function(n,i,e,t,u){return new Sk.builtin.float_(c.processing.map(n.v,i.v,e.v,t.v,u.v))})),c.millis=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.millis())})),c.minute=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.minute())})),c.modelX=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.modelX(n.v,i.v,e.v))})),c.modelY=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.modelY(n.v,i.v,e.v))})),c.modelZ=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.modelZ(n.v,i.v,e.v))})),c.month=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.month())})),c.noCursor=new Sk.builtin.func((function(){c.processing.noCursor()})),c.noise=new Sk.builtin.func((function(n,i,e){return"undefined"==typeof i?new Sk.builtin.float_(c.processing.noise(n.v)):"undefined"==typeof e?new Sk.builtin.float_(c.processing.noise(n.v,i.v)):new Sk.builtin.float_(c.processing.noise(n.v,i.v,e.v))})),c.noiseDetail=new Sk.builtin.func((function(n,i){c.processing.noiseDetail(n.v,i.v)})),c.noiseSeed=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.noiseSeed(n.v))})),c.noLights=new Sk.builtin.func((function(){c.processing.noLights()})),c.norm=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.norm(n.v,i.v,e.v))})),c.normal=new Sk.builtin.func((function(n,i,e){c.processing.normal(n.v,i.v,e.v)})),c.noTint=new Sk.builtin.func((function(){c.processing.noTint()})),c.ortho=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.ortho(n.v,i.v,e.v,t.v,u.v,o.v)})),c.perspective=new Sk.builtin.func((function(n,i,e,t){"undefined"==typeof n?c.processing.perspective():"undefined"==typeof i?c.processing.perspective(n.v):"undefined"==typeof e?c.processing.perspective(n.v,i.v):"undefined"==typeof t?c.processing.perspective(n.v,i.v,e.v):c.processing.perspective(n.v,i.v,e.v,t.v)})),c.pointLight=new Sk.builtin.func((function(n,i,e,t,u,o){c.processing.pointLight(n.v,i.v,e.v,t.v,u.v,o.v)})),c.printCamera=new Sk.builtin.func((function(){c.processing.printCamera()})),c.println=new Sk.builtin.func((function(n){c.processing.println(n.v)})),c.printProjection=new Sk.builtin.func((function(){c.processing.printProjection()})),c.radians=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.radians(n.v))})),c.randomSeed=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.randomSeed(n.v))})),c.random=new Sk.builtin.func((function(n,i){return"undefined"==typeof n?new Sk.builtin.float_(c.processing.random()):"undefined"==typeof i?new Sk.builtin.float_(c.processing.random(n.v)):new Sk.builtin.float_(c.processing.random(n.v,i.v))})),c.requestImage=new Sk.builtin.func((function(n,i){var e=Sk.misceval.callsimArray(c.PImage);return e.v="undefined"==typeof i?c.processing.requestImage(n.v):c.processing.requestImage(n.v,i.v),e})),c.saturation=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.saturation(n.v))})),c.save=new Sk.builtin.func((function(n){c.processing.save(n.v)})),c.saveFrame=new Sk.builtin.func((function(n){"undefined"==typeof n?c.processing.saveFrame():c.processing.saveFrame(n.v)})),c.saveStrings=new Sk.builtin.func((function(n,i){c.processing.saveStrings(n.v,i.v)})),c.screenX=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.screenX(n.v,i.v,e.v))})),c.screenY=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.screenY(n.v,i.v,e.v))})),c.screenZ=new Sk.builtin.func((function(n,i,e){return new Sk.builtin.float_(c.processing.screenZ(n.v,i.v,e.v))})),c.second=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.second())})),c.shape=new Sk.builtin.func((function(n,i,e,t,u){"undefined"==typeof i?c.processing.shape(n.v):"undefined"==typeof e?c.processing.shape(n.v,i.v):"undefined"==typeof t?c.processing.shape(n.v,i.v,e.v):"undefined"==typeof u?c.processing.shape(n.v,i.v,e.v,t.v):c.processing.shape(n.v,i.v,e.v,t.v,u.v)})),c.shapeMode=new Sk.builtin.func((function(n){c.processing.shapeMode(n.v)})),c.shininess=new Sk.builtin.func((function(n){c.processing.shininess(n.v)})),c.specular=new Sk.builtin.func((function(n,i,e){"undefined"==typeof i?c.processing.specular(n.v):"undefined"==typeof e?c.processing.specular(n.v,i.v):c.processing.specular(n.v,i.v,e.v)})),c.spotLight=new Sk.builtin.func((function(n,i,e,t,u,o,s,l){c.processing.spotLight(n.v,i.v,e.v,t.v,u.v,o.v,s.v,l.v)})),c.sq=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.sq(n))})),c.status=new Sk.builtin.func((function(n){c.processing.status(n.v)})),c.textAlign=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.textAlign(n.v):c.processing.textAlign(n.v,i.v)})),c.textAscent=new Sk.builtin.func((function(){return new Sk.builtin.float_(c.processing.textAscent())})),c.textDescent=new Sk.builtin.func((function(){return new Sk.builtin.float_(c.processing.textDescent())})),c.textFont=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.textFont(n.v):c.processing.textFont(n.v,i.v)})),c.textLeading=new Sk.builtin.func((function(n){c.processing.textLeading(n.v)})),c.textMode=new Sk.builtin.func((function(n){c.processing.textMode(n.v)})),c.textSize=new Sk.builtin.func((function(n){c.processing.textSize(n.v)})),c.texture=new Sk.builtin.func((function(n){c.processing.texture(n.v)})),c.textureMode=new Sk.builtin.func((function(n){c.processing.textureMode(n.v)})),c.textWidth=new Sk.builtin.func((function(n){return new Sk.builtin.float_(c.processing.textWidth(n.v))})),c.tint=new Sk.builtin.func((function(n,i,e,t){"undefined"==typeof i?c.processing.tint(n.v):"undefined"==typeof e?c.processing.tint(n.v,i.v):"undefined"==typeof t?c.processing.tint(n.v,i.v,e.v):c.processing.tint(n.v,i.v,e.v,t.v)})),c.updatePixels=new Sk.builtin.func((function(){c.processing.updatePixels()})),c.vertex=new Sk.builtin.func((function(n,i,e,t,u){"undefined"==typeof e?c.processing.vertex(n.v,i.v):"undefined"==typeof t?c.processing.vertex(n.v,i.v,e.v):"undefined"==typeof u?c.processing.vertex(n.v,i.v,e.v,t.v):c.processing.vertex(n.v,i.v,e.v,t.v,u.v)})),c.year=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.year())})),c.box=new Sk.builtin.func((function(n){c.processing.box(n.v)})),c.sphere=new Sk.builtin.func((function(n){c.processing.sphere(n.v)})),c.sphereDetail=new Sk.builtin.func((function(n,i){"undefined"==typeof i?c.processing.sphereDetail(n.v):c.processing.sphereDetail(n.v,i.v)})),c.background=new Sk.builtin.func((function(n,i,e){"undefined"!=typeof i&&(i=i.v),"undefined"!=typeof e&&(e=e.v),c.processing.background(n.v,i,e)})),c.fill=new Sk.builtin.func((function(n,i,e,t){"undefined"!=typeof i&&(i=i.v),"undefined"!=typeof e&&(e=e.v),"undefined"!=typeof t&&(t=t.v),c.processing.fill(n.v,i,e,t)})),c.stroke=new Sk.builtin.func((function(n,i,e,t){"undefined"!=typeof i&&(i=i.v),"undefined"!=typeof e&&(e=e.v),"undefined"!=typeof t&&(t=t.v),c.processing.stroke(n.v,i,e,t)})),c.noStroke=new Sk.builtin.func((function(){c.processing.noStroke()})),c.colorMode=new Sk.builtin.func((function(n,i,e,t,u){i="undefined"==typeof i?255:i.v,"undefined"!=typeof e&&(e=e.v),"undefined"!=typeof t&&(t=t.v),"undefined"!=typeof u&&(u=u.v),c.processing.colorMode(n.v,i,e,t,u)})),c.noFill=new Sk.builtin.func((function(){c.processing.noFill()})),c.loop=new Sk.builtin.func((function(){if(null===c.processing)throw new Sk.builtin.Exception("loop() should be called after run()");v=!0,c.processing.loop()})),c.noLoop=new Sk.builtin.func((function(){if(null===c.processing)throw new Sk.builtin.Exception("noLoop() should be called after run()");v=!1,c.processing.noLoop()})),c.frameRate=new Sk.builtin.func((function(n){c.processing.frameRate(n.v)})),c.width=new Sk.builtin.int_(0),c.height=new Sk.builtin.int_(0),c.renderMode=c.P2D,c.size=new Sk.builtin.func((function(n,i,e){"undefined"==typeof e&&(e=c.P2D),c.processing.size(n.v,i.v,e.v),c.width=new Sk.builtin.int_(c.processing.width),c.height=new Sk.builtin.int_(c.processing.height),c.renderMode=e})),c.exitp=new Sk.builtin.func((function(){c.processing.exit()})),c.mouseX=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.mouseX)})),c.mouseY=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.mouseY)})),c.pmouseX=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.pmouseX)})),c.pmouseY=new Sk.builtin.func((function(){return new Sk.builtin.int_(c.processing.pmouseY)})),c.rectMode=new Sk.builtin.func((function(n){c.processing.rectMode(n.v)})),c.strokeWeight=new Sk.builtin.func((function(n){c.processing.strokeWeight(n.v)})),c.smooth=new Sk.builtin.func((function(){c.processing.smooth()})),c.noSmooth=new Sk.builtin.func((function(){c.processing.noSmooth()})),c.ellipseMode=new Sk.builtin.func((function(n){c.processing.ellipseMode(n.v)})),c.strokeCap=new Sk.builtin.func((function(n){c.processing.strokeCap(n.v)})),c.strokeJoin=new Sk.builtin.func((function(n){c.processing.strokeJoin(n.v)})),c.rotate=new Sk.builtin.func((function(n){c.processing.rotate(n.v)})),c.rotateX=new Sk.builtin.func((function(n){c.processing.rotateX(n.v)})),c.rotateY=new Sk.builtin.func((function(n){c.processing.rotateY(n.v)})),c.rotateZ=new Sk.builtin.func((function(n){c.processing.rotateZ(n.v)})),c.scale=new Sk.builtin.func((function(n,i,e){i="undefined"==typeof i?1:i.v,e="undefined"==typeof e?1:e.v,c.processing.scale(n.v,i,e)})),c.translate=new Sk.builtin.func((function(n,i,e){i="undefined"==typeof i?1:i.v,e="undefined"==typeof e?1:e.v,c.processing.translate(n.v,i,e)})),c.popMatrix=new Sk.builtin.func((function(){c.processing.popMatrix()})),c.pushMatrix=new Sk.builtin.func((function(){c.processing.pushMatrix()})),c.applyMatrix=new Sk.builtin.func((function(){var n,i=Array.prototype.slice.call(arguments,0,16);for(n=0;n>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&n)>>>16)<<16)+1812433253*(65535&n)+this.mti,this.mt[this.mti]>>>=0},MersenneTwister.prototype.init_by_array=function(n,t){var i,e,r;for(this.init_genrand(19650218),i=1,e=0,r=this.N>t?this.N:t;r;r--){var u=this.mt[i-1]^this.mt[i-1]>>>30;this.mt[i]=(this.mt[i]^(1664525*((4294901760&u)>>>16)<<16)+1664525*(65535&u))+n[e]+e,this.mt[i]>>>=0,e++,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),e>=t&&(e=0)}for(r=this.N-1;r;r--){u=this.mt[i-1]^this.mt[i-1]>>>30;this.mt[i]=(this.mt[i]^(1566083941*((4294901760&u)>>>16)<<16)+1566083941*(65535&u))-i,this.mt[i]>>>=0,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1)}this.mt[0]=2147483648},MersenneTwister.prototype.genrand_int32=function(){var n,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var i;for(this.mti==this.N+1&&this.init_genrand(5489),i=0;i>>1^t[1&n];for(;i>>1^t[1&n];n=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^n>>>1^t[1&n],this.mti=0}return n=this.mt[this.mti++],n^=n>>>11,n^=n<<7&2636928640,n^=n<<15&4022730752,(n^=n>>>18)>>>0},MersenneTwister.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},MersenneTwister.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},MersenneTwister.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},MersenneTwister.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},MersenneTwister.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var $builtinmodule=function(n){var t={},i=new MersenneTwister,e=void 0;t.seed=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("seed",arguments.length,0,1),n=Sk.builtin.asnum$(n),i=arguments.length>0?new MersenneTwister(n):new MersenneTwister,Sk.builtin.none.none$})),t.random=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("random",arguments.length,0,0),new Sk.builtin.float_(i.genrand_res53())}));var toInt=function(n){return 0|n},randrange=function(n,t,e){var r,u,s;if(!Sk.builtin.checkInt(n))throw new Sk.builtin.ValueError("non-integer first argument for randrange()");if(void 0===t)return s=toInt(i.genrand_res53()*n),new Sk.builtin.int_(s);if(!Sk.builtin.checkInt(t))throw new Sk.builtin.ValueError("non-integer stop for randrange()");if(void 0===e&&(e=1),r=t-n,1==e&&r>0)return s=n+toInt(i.genrand_res53()*r),new Sk.builtin.int_(s);if(1==e)throw new Sk.builtin.ValueError("empty range for randrange() ("+n+", "+t+", "+r+")");if(!Sk.builtin.checkInt(e))throw new Sk.builtin.ValueError("non-integer step for randrange()");if(e>0)u=toInt((r+e-1)/e);else{if(!(e<0))throw new Sk.builtin.ValueError("zero step for randrange()");u=toInt((r+e+1)/e)}if(u<=0)throw new Sk.builtin.ValueError("empty range for randrange()");return s=n+e*toInt(i.genrand_res53()*u),new Sk.builtin.int_(s)};t.randint=new Sk.builtin.func((function(n,t){return Sk.builtin.pyCheckArgsLen("randint",arguments.length,2,2),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),randrange(n,t+1)})),t.randrange=new Sk.builtin.func((function(n,t,i){return Sk.builtin.pyCheckArgsLen("randrange",arguments.length,1,3),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),i=Sk.builtin.asnum$(i),randrange(n,t,i)})),t.uniform=new Sk.builtin.func((function(n,t){Sk.builtin.pyCheckArgsLen("uniform",arguments.length,2,2),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t);const e=n+i.genrand_res53()*(t-n);return new Sk.builtin.float_(e)})),t.triangular=new Sk.builtin.func((function(n,t,e){var r,u,s;return Sk.builtin.pyCheckArgsLen("triangular",arguments.length,2,3),Sk.builtin.pyCheckType("low","number",Sk.builtin.checkNumber(n)),Sk.builtin.pyCheckType("high","number",Sk.builtin.checkNumber(t)),(n=Sk.builtin.asnum$(n))>(t=Sk.builtin.asnum$(t))&&(s=n,n=t,t=s),void 0===e||e===Sk.builtin.none.none$?e=(t-n)/2:(Sk.builtin.pyCheckType("mode","number",Sk.builtin.checkNumber(e)),e=Sk.builtin.asnum$(e)),u=(r=i.genrand_res53())<(e-n)/(t-n)?n+Math.sqrt(r*(t-n)*(e-n)):t-Math.sqrt((1-r)*(t-n)*(t-e)),new Sk.builtin.float_(u)}));var normalSample=function(n,t){var r,u,s,h,l;return void 0!==e?(l=e,e=void 0):(r=i.genrand_res53(),u=i.genrand_res53(),s=Math.sqrt(-2*Math.log(r)),h=2*Math.PI*u,l=s*Math.cos(h),e=s*Math.sin(h)),n+t*l};return t.gauss=new Sk.builtin.func((function(n,t){return Sk.builtin.pyCheckArgsLen("gauss",arguments.length,2,2),Sk.builtin.pyCheckType("mu","number",Sk.builtin.checkNumber(n)),Sk.builtin.pyCheckType("sigma","number",Sk.builtin.checkNumber(t)),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),new Sk.builtin.float_(normalSample(n,t))})),t.normalvariate=t.gauss,t.lognormvariate=new Sk.builtin.func((function(n,t){return Sk.builtin.pyCheckArgsLen("lognormvariate",arguments.length,2,2),Sk.builtin.pyCheckType("mu","number",Sk.builtin.checkNumber(n)),Sk.builtin.pyCheckType("sigma","number",Sk.builtin.checkNumber(t)),n=Sk.builtin.asnum$(n),t=Sk.builtin.asnum$(t),new Sk.builtin.float_(Math.exp(normalSample(n,t)))})),t.expovariate=new Sk.builtin.func((function(n){Sk.builtin.pyCheckArgsLen("expovariate",arguments.length,1,1),Sk.builtin.pyCheckType("lambd","number",Sk.builtin.checkNumber(n)),n=Sk.builtin.asnum$(n);var t=i.genrand_res53();return new Sk.builtin.float_(-Math.log(t)/n)})),t.choice=new Sk.builtin.func((function(n){if(Sk.builtin.pyCheckArgsLen("choice",arguments.length,1,1),Sk.builtin.pyCheckType("seq","sequence",Sk.builtin.checkSequence(n)),void 0!==n.sq$length){var t=new Sk.builtin.int_(toInt(i.genrand_res53()*n.sq$length()));return n.mp$subscript(t)}throw new Sk.builtin.TypeError("object has no length")})),t.shuffle=new Sk.builtin.func((function(n){if(Sk.builtin.pyCheckArgsLen("shuffle",arguments.length,1,1),Sk.builtin.pyCheckType("x","sequence",Sk.builtin.checkSequence(n)),n.constructor===Sk.builtin.list){const u=n.v;for(var t=u.length-1;t>0;t-=1){var e=u[r=toInt(i.genrand_res53()*(t+1))];u[r]=u[t],u[t]=e}}else{if(void 0===n.sq$length)throw new Sk.builtin.TypeError("object has no length");if(void 0===n.mp$ass_subscript)throw new Sk.builtin.TypeError("object is immutable");for(t=n.sq$length()-1;t>0;t-=1){var r=new Sk.builtin.int_(toInt(i.genrand_res53()*(t+1)));t=new Sk.builtin.int_(t);e=n.mp$subscript(r);n.mp$ass_subscript(r,n.mp$subscript(t)),n.mp$ass_subscript(t,e)}}return Sk.builtin.none.none$})),t.sample=new Sk.builtin.func((function(n,t){var e,r,u,s,h;for(Sk.builtin.pyCheckArgsLen("sample",arguments.length,2,2),Sk.builtin.pyCheckType("population","iterable",Sk.builtin.checkIterable(n)),Sk.builtin.pyCheckType("k","integer",Sk.builtin.checkInt(t)),t=Sk.builtin.asnum$(t),h=[],e=0,s=(u=Sk.abstr.iter(n)).tp$iternext();void 0!==s;e++,s=u.tp$iternext())r=Math.floor(i.genrand_res53()*(e+1)),enew pyStr(e))))},_value2member={},RegexFlagMeta=buildNativeClass("RegexFlagMeta",{constructor:function RegexFlagMeta(){},base:pyType,slots:{tp$iter(){const e=Object.values(_members)[Symbol.iterator]();return new pyIterator((()=>e.next().value))},sq$contains(e){if(!(e instanceof this))throw new TypeError("unsupported operand type(s) for \'in\': \'"+typeName(e)+"\' and \'"+typeName(this)+"\'");return Object.values(_members).includes(e)}}});re.RegexFlag=buildNativeClass("RegexFlag",{meta:RegexFlagMeta,base:pyInt,constructor:function RegexFlag(e){const t=_value2member[e];if(t)return t;this.v=e,_value2member[e]=this},slots:{tp$new(e,t){checkOneArg("RegexFlag",e,t);const r=e[0].valueOf();if(!checkInt(r))throw new ValueError(objectRepr(r)+" is not a valid RegexFlag");return new re.RegexFlag(r)},$r(){let e=this.valueOf();const t=e<0;e=t?~e:e;const r=[];Object.entries(_members).forEach((([t,n])=>{const s=n.valueOf();e&s&&(e&=~s,r.push("re."+t))})),e&&r.push(hex(e).toString());let n=r.join("|");return t&&(n=r.length>1?"~("+n+")":"~"+n),new pyStr(n)},sq$contains(e){if(!(e instanceof re.RegexFlag))throw new TypeError("\'in\' requires a RegexFlag not "+typeName(e));return this.nb$and(e)===e},nb$and:flagBitSlot(((e,t)=>e&t),JSBI.bitwiseAnd),nb$or:flagBitSlot(((e,t)=>e|t),JSBI.bitwiseOr),nb$xor:flagBitSlot(((e,t)=>e^t),JSBI.bitwiseXor),nb$invert:function(){const e=this.v;return"number"==typeof e?new re.RegexFlag(~e):new re.RegexFlag(JSBI.bitwiseNot(e))}},proto:{valueOf(){return this.v}},flags:{sk$acceptable_as_base_class:!1}}),re.TEMPLATE=re.T=new re.RegexFlag(1),re.IGNORECASE=re.I=new re.RegexFlag(2),re.LOCALE=re.L=new re.RegexFlag(4),re.MULTILINE=re.M=new re.RegexFlag(8),re.DOTALL=re.S=new re.RegexFlag(16),re.UNICODE=re.U=new re.RegexFlag(32),re.VERBOSE=re.X=new re.RegexFlag(64),re.DEBUG=new re.RegexFlag(128),re.ASCII=re.A=new re.RegexFlag(256);const _members={ASCII:re.A,IGNORECASE:re.I,LOCALE:re.L,UNICODE:re.U,MULTILINE:re.M,DOTALL:re.S,VERBOSE:re.X,TEMPLATE:re.T,DEBUG:re.DEBUG};function flagBitSlot(e,t){return function(r){if(r instanceof re.RegexFlag||r instanceof pyInt){let n=this.v,s=r.v;if("number"==typeof n&&"number"==typeof s){let t=e(n,s);return t<0&&(t+=4294967296),new re.RegexFlag(t)}return n=JSBI.BigUp(n),s=JSBI.BigUp(s),new re.RegexFlag(JSBI.numberIfSafe(t(n,s)))}return pyNotImplemented}}const jsFlags={i:re.I,m:re.M,s:re.S,u:re.U},jsInlineFlags={i:re.I,a:re.A,s:re.S,L:re.L,m:re.M,u:re.U,x:re.X};RegExp.prototype.hasOwnProperty("sticky")||delete jsFlags.s,RegExp.prototype.hasOwnProperty("unicode")||delete jsFlags.u;const flagFails=Object.entries({"cannot use LOCALE flag with a str pattern":re.L,"ASCII and UNICODE flags are incompatible":new re.RegexFlag(re.A.valueOf()|re.U.valueOf())}),inline_regex=/\\(\\?([isamux]+)\\)/g;function adjustFlags(e,t){let r=e.toString(),n="g",s=0;return r=r.replace(inline_regex,((e,t)=>{for(let r of t){const e=jsInlineFlags[r];s|=e.valueOf()}return""})),flagFails.forEach((([e,t])=>{if((t.valueOf()&s)===t.valueOf())throw new re.error("bad bad inline flags: "+e)})),t=numberBinOp(new re.RegexFlag(s),t,"BitOr"),flagFails.forEach((([e,r])=>{if(numberBinOp(r,t,"BitAnd")===r)throw new ValueError(e)})),numberBinOp(re.A,t,"BitAnd")!==re.A&&(t=numberBinOp(re.U,t,"BitOr")),Object.entries(jsFlags).forEach((([e,r])=>{numberBinOp(r,t,"BitAnd")===r&&(n+=e)})),t=new re.RegexFlag(t.valueOf()),[r,n,t]}let neg_lookbehind_A="(?)(?!(?:\\]|[^\\[]*[^\\\\]\\]))/g,py_to_js_unicode_escape=/\\\\[\\t\\r\\n \\v\\f#&~"\'!:,;`<>]|\\\\-(?!(?:\\]|[^\\[]*[^\\\\]\\]))/g,quantifierErrors=/Incomplete quantifier|Lone quantifier/g,_compiled_patterns=Object.create(null);function compile_pattern(e,t){let r,n;[r,n,t]=adjustFlags(e,t);const s=_compiled_patterns[e.toString()];if(s&&s.$flags===t)return s;const i={};let o,a;r="_"+r,r=r.replace(initialUnescapedBracket,"$1$2\\\\]$3"),r=r.replace(py_to_js_regex,((t,r,n,s,o,a)=>{switch(n){case"\\\\A":return r+neg_lookbehind_A+"^";case"\\\\Z":return r+"$(?!\\\\n)";case"{,":return r+"{0,";case"$":return r+"(?:(?=\\\\n$)|$)";default:if(n.endsWith(">"))return i[o]=!0,r+"(?<"+o+">";if(!i[s])throw new re.error("unknown group name "+s+" at position "+a+1,e,new pyInt(a+1));return r+"\\\\k<"+s+">"}})),r=r.slice(1);let l=r;n.includes("u")&&(l=r.replace(py_to_js_unicode_escape,(e=>{switch(e){case"\\\\ ":return" ";case"\\\\\\t":return"\\\\t";case"\\\\\\n":return"\\\\n";case"\\\\\\v":return"\\\\v";case"\\\\\\f":return"\\\\f";case"\\\\r":return"\\\\r";default:return e.slice(1)}})));try{o=new RegExp(l,n)}catch(g){if(!quantifierErrors.test(g.message))throw a=g.message.substring(g.message.lastIndexOf(":")+2)+" in pattern: "+e.toString(),new re.error(a,e);try{o=new RegExp(r,n.replace("u",""))}catch(g){throw a=g.message.substring(g.message.lastIndexOf(":")+2)+" in pattern: "+e.toString(),new re.error(a,e)}}const p=new re.Pattern(o,e,t);return _compiled_patterns[e.toString()]=p,p}function _compile(e,t){if(e instanceof re.Pattern){if(t!==zero||t.valueOf())throw new ValueError("cannot process flags argument with compiled pattern");return e}if(!checkString(e))throw new TypeError("first argument must be string or compiled pattern");return compile_pattern(e,t)}re.error=buildNativeClass("re.error",{base:Exception,constructor:function error(e,t,r){this.$pattern=t,this.$msg=e,this.$pos=r||pyNone,Exception.call(this,e)},slots:{tp$doc:"Exception raised for invalid regular expressions.\\n\\n Attributes:\\n\\n msg: The unformatted error message\\n pattern: The regular expression pattern\\n",tp$init(e,t){const[r,n,s]=copyKeywordToNamedArgs("re.error",["msg","pattern","pos"],e,t,[pyNone,pyNone]);this.$pattern=n,this.$pos=s,this.$msg=r}},getsets:{msg:{$get(){return this.$msg}},pattern:{$get(){return this.$pattern}},pos:{$get(){return this.$pos}}}});const zero=new pyInt(0),maxsize=Number.MAX_SAFE_INTEGER;re.Pattern=buildNativeClass("re.Pattern",{constructor:function(e,t,r){this.v=e,this.str=t,this.$flags=r,this.$groups=null,this.$groupindex=null},slots:{$r(){const e=objectRepr(this.str).slice(0,200),t=objectRepr(this.$flags.nb$and(re.U.nb$invert()));return new pyStr("re.compile("+e+(t?", "+t:"")+")")},tp$richcompare(e,t){if("Eq"!==t&&"NotEq"!==t||!(e instanceof re.Pattern))return pyNotImplemented;const r=this.str===e.str&&this.$flags===e.$flags;return"Eq"===t?r:!r},tp$hash(){},tp$doc:"Compiled regular expression object."},methods:{match:{$meth:function match(e,t,r){return this.$match(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Matches zero or more characters at the beginning of the string."},fullmatch:{$meth:function fullmatch(e,t,r){return this.full$match(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Matches against all of the string."},search:{$meth:function search(e,t,r){return this.$search(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Scan through string looking for a match, and return a corresponding match object instance.\\n\\nReturn None if no position in the string matches."},sub:{$meth:function sub(e,t,r){return this.$sub(e,t,r)},$flags:{NamedArgs:["repl","string","count"],Defaults:[zero]},$textsig:"($self, /, repl, string, count=0)",$doc:"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl."},subn:{$meth:function(e,t,r){return this.$subn(e,t,r)},$flags:{NamedArgs:["repl","string","count"],Defaults:[zero]},$textsig:"($self, /, repl, string, count=0)",$doc:"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl."},findall:{$meth:function findall(e,t,r){return this.find$all(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Return a list of all non-overlapping matches of pattern in string."},split:{$meth:function split(e,t){return this.$split(e,t)},$flags:{NamedArgs:["string","maxsplit"],Defaults:[zero]},$textsig:"($self, /, string, maxsplit=0)",$doc:"Split string by the occurrences of pattern."},finditer:{$meth:function finditer(e,t,r){return this.find$iter(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:"Return an iterator over all non-overlapping matches for the RE pattern in string.\\n\\nFor each match, the iterator returns a match object."},scanner:{$meth:function scanner(e,t,r){return this.$scanner(e,t,r)},$flags:{NamedArgs:["string","pos","endpos"],Defaults:[zero,maxsize]},$textsig:"($self, /, string, pos=0, endpos=sys.maxsize)",$doc:null},__copy__:{$meth:function copy(){return this},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:null},__deepcopy__:{$meth:function(){return this},$flags:{OneArg:!0},$textsig:"($self, memo, /)",$doc:null}},getsets:{pattern:{$get(){return this.str},$doc:"The pattern string from which the RE object was compiled."},flags:{$get(){return this.$flags},$doc:"The regex matching flags."},groups:{$get(){if(null===this.$groups){const e=(this.str.v.match(this.group$regex)||[]).length;this.$groups=new pyInt(e)}return this.$groups},$doc:"The number of capturing groups in the pattern."},groupindex:{$get(){if(null===this.$groupindex){const e=this.str.v.matchAll(this.group$regex),t=[];let r=1;for(const n of e)n[1]&&(t.push(new pyStr(n[1])),t.push(new pyInt(r))),r++;this.$groupindex=new pyMappingProxy(new pyDict(t))}return this.$groupindex},$doc:"A dictionary mapping group names to group numbers."}},proto:{group$regex:/\\((?!\\?(?!P<).*)(?:\\?P<([^\\d\\W]\\w*)>)?(?![^\\[]*\\])/g,get$count:e=>(e=asIndexSized(e,OverflowError))||Number.POSITIVE_INFINITY,get$jsstr(e,t,r){if(!checkString(e))throw new TypeError("expected string or bytes-like object");if(t===zero&&r===maxsize||void 0===t&&void 0===r)return{jsstr:e.toString(),pos:zero.valueOf(),endpos:e.sq$length()};const{start:n,end:s}=pySlice.startEnd$wrt(e,t,r);return{jsstr:e.toString().slice(n,s),pos:n,endpos:s}},find$all(e,t,r){let{jsstr:n}=this.get$jsstr(e,t,r);const s=this.v,i=n.matchAll(s),o=[];for(let a of i)o.push(1===a.length?new pyStr(a[0]):2===a.length?new pyStr(a[1]):new pyTuple(a.slice(1).map((e=>new pyStr(e)))));return new pyList(o)},$split(e,t){t=(t=asIndexSized(t))||Number.POSITIVE_INFINITY;let{jsstr:r}=this.get$jsstr(e);const n=this.v,s=[];let i,o=0,a=0;for(;null!==(i=n.exec(r))&&o1&&s.push(...i.slice(1).map((e=>void 0===e?pyNone:new pyStr(e)))),o++,a=n.lastIndex,i.index===n.lastIndex){if(!r)break;r=r.slice(i.index),a=0,n.lastIndex=1}return n.lastIndex=0,s.push(new pyStr(r.slice(a))),new pyList(s)},match$from_repl(e,t,r,n){let s;const i=e[e.length-1];return"object"==typeof i?(s=e.slice(0,e.length-3),Object.assign(s,{groups:i}),s.index=e[e.length-3]):(s=e.slice(0,e.length-2),s.groups=void 0,s.index=e[e.length-2]),new re.Match(s,this.str,t,r,n)},do$sub(e,t,r){const{jsstr:n,pos:s,endpos:i}=this.get$jsstr(t);let o;checkCallable(e)?o=t=>{const r=pyCall(e,[t]);if(!checkString(r))throw new TypeError("expected str instance, "+typeName(r)+" found");return r.toString()}:(e=this.get$jsstr(e).jsstr,o=t=>t.template$repl(e)),r=this.get$count(r);let a=0;const l=n.replace(this.v,((...e)=>{if(a>=r)return e[0];a++;const n=this.match$from_repl(e,t,s,i);return o(n)}));return[new pyStr(l),new pyInt(a)]},$sub(e,t,r){const[n]=this.do$sub(e,t,r);return n},$subn(e,t,r){return new pyTuple(this.do$sub(e,t,r))},do$match(e,t,r,n){let s;({jsstr:s,pos:r,endpos:n}=this.get$jsstr(t,r,n));const i=s.match(e);return null===i?pyNone:new re.Match(i,this,t,r,n)},$search(e,t,r){var n=new RegExp(this.v.source,this.v.flags.replace("g",""));return this.do$match(n,e,t,r)},$match(e,t,r){let n=this.v.source,s=this.v.flags.replace("g","").replace("m","");n="^"+n;var i=new RegExp(n,s);return this.do$match(i,e,t,r)},full$match(e,t,r){let n=this.v.source,s=this.v.flags.replace("g","").replace("m","");n="^(?:"+n+")$";var i=new RegExp(n,s);return this.do$match(i,e,t,r)},find$iter(e,t,r){let n;({jsstr:n,pos:t,endpos:r}=this.get$jsstr(e,t,r));const s=n.matchAll(this.v);return new pyIterator((()=>{const n=s.next().value;if(void 0!==n)return new re.Match(n,this,e,t,r)}))}},flags:{sk$acceptable_as_base_class:!1}}),re.Match=buildNativeClass("re.Match",{constructor:function(e,t,r,n,s){this.v=e,this.$match=new pyStr(this.v[0]),this.str=r,this.$re=t,this.$pos=n,this.$endpos=s,this.$groupdict=null,this.$groups=null,this.$lastindex=null,this.$lastgroup=null,this.$regs=null},slots:{tp$doc:"The result of re.match() and re.search().\\nMatch objects always have a boolean value of True.",$r(){let e="",new pyStr(e)},tp$as_squence_or_mapping:!0,mp$subscript(e){const t=this.get$group(e);return void 0===t?pyNone:new pyStr(t)}},methods:{group:{$meth:function group(...e){let t;return e.length<=1?(t=this.get$group(e[0]),void 0===t?pyNone:new pyStr(t)):(t=[],e.forEach((e=>{e=this.get$group(e),t.push(void 0===e?pyNone:new pyStr(e))})),new pyTuple(t))},$flags:{MinArgs:0},$textsig:null,$doc:"group([group1, ...]) -> str or tuple.\\n Return subgroup(s) of the match by indices or names.\\n For 0 returns the entire match."},start:{$meth:function start(e){const t=this.get$group(e);return new pyInt(void 0===t?-1:this.str.v.indexOf(t,this.v.index+this.$pos))},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, group=0, /)",$doc:"Return index of the start of the substring matched by group."},end:{$meth:function end(e){const t=this.get$group(e);return new pyInt(void 0===t?-1:this.str.v.indexOf(t,this.v.index+this.$pos)+[...t].length)},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, group=0, /)",$doc:"Return index of the end of the substring matched by group."},span:{$meth:function span(e){return this.$span(e)},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, group=0, /)",$doc:"For match object m, return the 2-tuple (m.start(group), m.end(group))."},groups:{$meth:function groups(e){return null!==this.$groups||(this.$groups=Array.from(this.v.slice(1),(t=>void 0===t?e:new pyStr(t))),this.$groups=new pyTuple(this.$groups)),this.$groups},$flags:{NamedArgs:["default"],Defaults:[pyNone]},$textsig:"($self, /, default=None)",$doc:"Return a tuple containing all the subgroups of the match, from 1.\\n\\n default\\n Is used for groups that did not participate in the match."},groupdict:{$meth:function groupdict(e){if(null!==this.$groupdict)return this.$groupdict;if(void 0===this.v.groups)this.$groupdict=new pyDict;else{const t=[];Object.entries(this.v.groups).forEach((([r,n])=>{t.push(new pyStr(r)),t.push(void 0===n?e:new pyStr(n))})),this.$groupdict=new pyDict(t)}return this.$groupdict},$flags:{NamedArgs:["default"],Defaults:[pyNone]},$textsig:"($self, /, default=None)",$doc:"Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\\n\\n default\\n Is used for groups that did not participate in the match."},expand:{$meth:function expand(e){if(!checkString(e))throw new TypeError("expected str instance got "+typeName(e));return e=e.toString(),e=this.template$repl(e),new pyStr(e)},$flags:{OneArg:!0},$textsig:"($self, /, template)",$doc:"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method."},__copy__:{$meth:function __copy__(){return this},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:null},__deepcopy__:{$meth:function __deepcopy__(){return this},$flags:{OneArg:!0},$textsig:"($self, memo, /)",$doc:null}},getsets:{lastindex:{$get(){if(null!==this.$lastindex)return this.$lastindex;let e,t=0;return this.v.forEach(((r,n)=>{n&&void 0!==r&&e!==r&&(t=n,e=r)})),this.$lastindex=t?new pyInt(t):pyNone,this.$lastindex},$doc:"The integer index of the last matched capturing group."},lastgroup:{$get(){if(null!==this.$lastgroup)return this.$lastgroup;if(void 0===this.v.groups)this.$lastgroup=pyNone;else{let e;Object.entries(this.v.groups).forEach((([t,r])=>{void 0!==r&&(e=t)})),this.$lastgroup=void 0===e?pyNone:new pyStr(e)}return this.$lastgroup},$doc:"The name of the last matched capturing group."},regs:{$get(){if(null!==this.$regs)return this.$regs;const e=[];return this.v.forEach(((t,r)=>{e.push(this.$span(r))})),this.$regs=new pyTuple(e),this.$regs}},string:{$get(){return this.str},$doc:"The string passed to match() or search()."},re:{$get(){return this.$re},$doc:"The regular expression object."},pos:{$get(){return new pyInt(this.$pos)},$doc:"The index into the string at which the RE engine started looking for a match."},endpos:{$get(){return new pyInt(this.$endpos)},$doc:"The index into the string beyond which the RE engine will not go."}},proto:{get$group(e){if(void 0===e)return this.v[0];if(checkString(e)){if(e=e.toString(),this.v.groups&&Object.prototype.hasOwnProperty.call(this.v.groups,e))return this.v.groups[e]}else if(isIndex(e)&&(e=asIndexSized(e))>=0&&e|\\\\g<([^\\d\\W]\\w*)>|\\\\g?/g,template$repl(e){return e.replace(this.template$regex,((e,t,r,n,s,i)=>{let o;if(void 0!==(t=t||r)?o=t{delete _compiled_patterns[e]})),pyNone},$flags:{NoArgs:!0},$textsig:"($module, / )",$doc:"Clear the regular expression caches"},template:{$meth:function template(e,t){return _compile(e,numberBinOp(re.T,t,"BitOr"))},$flags:{NamedArgs:["pattern","flags"],Defaults:[zero]},$textsig:"($module, / , pattern, flags=0)",$doc:"Compile a template pattern, returning a Pattern object"},escape:{$meth:function(e){if(!checkString(e))throw new TypeError("expected a str instances, got "+typeName(e));return e=(e=e.toString()).replace(escape_chrs,"\\\\$&"),new pyStr(e)},$flags:{NamedArgs:["pattern"],Defaults:[]},$textsig:"($module, / , pattern)",$doc:"\\n Escape special characters in a string.\\n "}});const escape_chrs=/[\\&\\~\\#.*+\\-?^${}()|[\\]\\\\\\t\\r\\v\\f\\n ]/g;return re}',"src/lib/requests/__init__.js":'var $builtinmodule=function(e){var n={__name__:new Sk.builtin.str("requests")};n.Response=Sk.misceval.buildClass(n,(function(e,n){n.__init__=new Sk.builtin.func((function(e,n){e.data$=n,e.lineList=e.data$.split("\\n"),e.lineList=e.lineList.slice(0,-1);for(var t=0;t")})),n.__repr__=n.__str__,n.__iter__=new Sk.builtin.func((function(e){var n=e.lineList;return Sk.builtin.makeGenerator((function(){if(!(this.$index>=this.$lines.length))return new Sk.builtin.str(this.$lines[this.$index++])}),{$obj:e,$index:0,$lines:n})})),n.read=new Sk.builtin.func((function(e,n){if(e.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var t=e.data$.length;void 0===n&&(n=t);var i=new Sk.builtin.str(e.data$.substr(e.pos$,n));return e.pos$+=n,e.pos$>=t&&(e.pos$=t),i})),n.readline=new Sk.builtin.func((function(e,n){var t="";return e.currentLine{var t="";if(e instanceof String||e instanceof Number||e instanceof Boolean)try{var i=n.toString().replaceAll("=","@");i=i.replaceAll("&","$");var r=e.toString().replaceAll("=","@");r=r.replaceAll("&","$"),t+="&"+i+"="+encodeURIComponent(r)}catch(s){t+="&"+n+"="+encodeURIComponent(e)}else $.each(e,(function(i){t+="&"+jsonToUrl(this,null==n?i:n+(e instanceof Array?"["+i+"]":"."+i))}));return t.substr(1)},requestFunc=function(e,t){e=Sk.ffi.remapToJs(e),t=Sk.ffi.remapToJs(t);const i=["method","url","params","data","headers","cookies","files","auth","timeout","allow_redirects","proxies","hooks","stream","verify","cert","json"];let r={method:"GET",url:"",params:null,data:"",headers:{"Content-type":"application/x-www-form-urlencoded"},cookies:null,files:null,auth:null,timeout:1e3,allow_redirects:null,proxies:null,hooks:null,stream:null,verify:null,cert:null,json:null};for(let n in e)r[i[n]]=e[n];for(let n=0;n=n){r=t.decoder.decode(new Uint8Array(e));break}}else{switch(224&o){case 252:n=6;break;case 248:n=5;break;case 240:n=4;break;case 224:n=3;break;default:n=2}e.push(o)}}return r},t.startReadLine=function(){t.readLineTimer=window.setTimeout((()=>{if(!t.keepReading)return void window.clearTimeout(t.readLineTimer);let e=!1;do{const n=t.readLine();e=n.endWithLF;const{text:r}=n;if(r&&t.output.push((t.output.length?t.output.pop():"")+r),e){t.output.length&&console.log(t.output),t.output.push("")}}while(e);for(;t.output.length>500;)t.output.shift();t.keepReading&&t.startReadLine()}),100)},t.addReadEvent=async function(){for(t.output=[],t.inputBuffer=[],t.outputBuffer=[],t.refreshInputBuffer=!1,t.refreshOutputBuffer=!0,t.startReadLine();t.obj.readable&&t.keepReading;){t.reader=t.obj.readable.getReader();try{for(;;){const{value:e,done:n}=await t.reader.read();if(t.refreshOutputBuffer&&e&&(t.outputBuffer=[...t.outputBuffer,...e]),t.refreshInputBuffer&&e&&(t.inputBuffer=[...t.inputBuffer,...e]),n)break}}catch(e){console.log(e)}finally{t.reader.releaseLock()}}},t.writeString=async function(e){const n=t.encoder.encode(e);await t.writeByteArr(n)},t.writeByteArr=async function(e){const n=t.obj.writable.getWriter();await n.write(new Int8Array(e).buffer),n.releaseLock(),await t.sleep(200)},t.setBaudRate=async function(e){t.keepReading=!1;const n=t.obj;await t.close(),await n.open({baudRate:e-0}),t.obj=n,t.keepReading=!0,t.addReadEvent()},t.setDTR=async function(e){t.dtr=e,await t.obj.setSignals({dataTerminalReady:e})},t.setRTS=async function(e){t.rts=e,await t.obj.setSignals({requestToSend:e})},t.setSignals=async function(e,n){t.dtr=e,t.rts=n,await t.obj.setSignals({dataTerminalReady:e,requestToSend:n})};let n={__name__:new Sk.builtin.str("serial")},r={baudrate:115200,bytesize:8,parity:"N",stopbits:1,timeout:1e3,xonxoff:!1,rtscts:!1,dsrdtr:!1};const serialInitFunc=function(e,n){e=Sk.ffi.remapToJs(e),n=Sk.ffi.remapToJs(n);const o=["baudrate","bytesize","parity","stopbits","timeout","xonxoff","rtscts","dsrdtr"];for(let t in e)e[t]&&(r[o[t]]=e[t]);const i=new Promise(((e,n)=>{t.isConnected()?e(t.obj):navigator.serial.requestPort().then((function(t){e(t)})).catch((function(e){t.obj=null,n(e)}))}));let u,a=new Sk.misceval.Suspension;return a.resume=function(){if(a.data.error)throw a.data.error;return Sk.builtin.none.none$},a.data={type:"Sk.promise",promise:i.then((function(e){return t.obj=e,Sk.builtin.none.none$}),(function(e){return console.log("err3",e),u="",Promise.reject(e)}))},a};serialInitFunc.co_fastcall=1;const serialOpenFunc=function(e,n){const o=new Promise(((e,n)=>{t.isConnected()?t.isOpend()?e():t.obj.open({baudRate:r.baudrate}).then((async function(){t.keepReading=!0,t.addReadEvent(),e()})).catch((function(e){t.obj=null,n(e)})):n("No serial found")}));let i=new Sk.misceval.Suspension;return i.resume=function(){if(i.data.error)throw i.data.error;return Sk.builtin.none.none$},i.data={type:"Sk.promise",promise:o.then((function(e){return Sk.builtin.none.none$}),(function(e){return console.log("err3",e),Promise.reject(e)}))},i},serialReadlineFunc=function(e,n){if(!t.isConnected())return new Sk.builtin.str("");if(console.log("length:",t.output.length),!t.isOpend()||t.output.length<2)return new Sk.builtin.str("");let r=t.output.shift();return console.log(r),new Sk.builtin.str(r)};return n.Serial=Sk.misceval.buildClass(n,(function(e,t){t.__init__=new Sk.builtin.func(serialInitFunc),t.__str__=new Sk.builtin.func((function(e){return Sk.ffi.remapToPy("")})),t.open=new Sk.builtin.func(serialOpenFunc),t.readline=new Sk.builtin.func(serialReadlineFunc)}),"Serial",[]),n};',"src/lib/signal.js":'var $builtinmodule=function(n){var i={};return i.SIG_DFL=new Sk.builtin.int_(0),i.SIG_IGN=new Sk.builtin.int_(1),i.CTRL_C_EVENT=new Sk.builtin.int_(0),i.CTRL_BREAK_EVENT=new Sk.builtin.int_(0),i.NSIG=new Sk.builtin.int_(23),i.SIGHUP=new Sk.builtin.int_(1),i.SIGNINT=new Sk.builtin.int_(2),i.SIGILL=new Sk.builtin.int_(4),i.SIGFPE=new Sk.builtin.int_(8),i.SIGKILL=new Sk.builtin.int_(9),i.SIGSEGV=new Sk.builtin.int_(11),i.SIGTERM=new Sk.builtin.int_(15),i.SIGBREAK=new Sk.builtin.int_(21),i.SIGABRT=new Sk.builtin.int_(22),i.pause=new Sk.builtin.func((function(){Sk.builtin.pyCheckArgsLen("pause",arguments.length,0,0);var n=new Sk.misceval.Suspension;return n.resume=function(){return Sk.builtin.none.none$},n.data={type:"Sk.promise",promise:new Promise((function(n,i){if(null!=Sk.signals&&Sk.signals.addEventListener){Sk.signals.addEventListener((function handleSignal(i){Sk.signals.removeEventListener(handleSignal),n()}))}else console.warn("signal.pause() not supported"),Sk.misceval.print_("signal.pause() not supported"),n()}))},n})),i.signal=new Sk.builtin.func((function(){throw new Sk.builtin.NotImplementedError("signal.signal is not supported.")})),i};',"src/lib/string.js":'var $builtinmodule=function(i){var t={};return t.ascii_lowercase=new Sk.builtin.str("abcdefghijklmnopqrstuvwxyz"),t.ascii_uppercase=new Sk.builtin.str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),t.ascii_letters=new Sk.builtin.str(t.ascii_lowercase.v+t.ascii_uppercase.v),t.lowercase=new Sk.builtin.str("abcdefghijklmnopqrstuvwxyz"),t.uppercase=new Sk.builtin.str("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),t.letters=new Sk.builtin.str(t.lowercase.v+t.uppercase.v),t.digits=new Sk.builtin.str("0123456789"),t.hexdigits=new Sk.builtin.str("0123456789abcdefABCDEF"),t.octdigits=new Sk.builtin.str("01234567"),t.punctuation=new Sk.builtin.str("!\\"#$%&\'()*+,-./:;<=>?@[\\\\]^_`{|}~"),t.whitespace=new Sk.builtin.str("\\t\\n\\v\\f\\r "),t.printable=new Sk.builtin.str(t.digits.v+t.letters.v+t.punctuation.v+" \\t\\n\\r\\v\\f"),t.split=new Sk.builtin.func((function(...i){return Sk.misceval.callsimArray(Sk.builtin.str.prototype.split,i)})),t.capitalize=new Sk.builtin.func((function(i){return Sk.misceval.callsimArray(Sk.builtin.str.prototype.capitalize,[i])})),t.join=new Sk.builtin.func((function(i,t){return void 0===t&&(t=new Sk.builtin.str(" ")),Sk.misceval.callsimArray(Sk.builtin.str.prototype.join,[t,i])})),t.capwords=new Sk.builtin.func((function(i,n){if(Sk.builtin.pyCheckArgsLen("capwords",arguments.length,1,2),!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("s must be a string");if(void 0===n&&(n=new Sk.builtin.str(" ")),!Sk.builtin.checkString(n))throw new Sk.builtin.TypeError("sep must be a string");for(var e=Sk.misceval.callsimArray(t.split,[i,n]).v,r=[],l=0;l1&&function isLeapYear(t){return 0==(3&t)&&(t%100!=0||t%400==0)}(e?t.getUTCFullYear():t.getFullYear())&&u++,u}function stdTimezoneOffset(){var t=new Date(2002,0,1),e=new Date(2002,6,1);return Math.max(t.getTimezoneOffset(),e.getTimezoneOffset())}function dst(t){return t.getTimezoneOffset()1)return n[1];if(void 0===e)return null;try{return(n=t.toLocaleString(e,{timeZoneName:"short"}).split(" "))[n.length-1]}catch(i){return null}}function from_seconds(t,e){var i=new Date;if(t){Sk.builtin.pyCheckType("secs","number",Sk.builtin.checkNumber(t));var u=Sk.builtin.asnum$(t);i.setTime(1e3*u)}return function date_to_struct_time(t,e){let i;if(e=e||!1)i=[new Sk.builtin.str("UTC"),new Sk.builtin.int_(0)];else{var u=-t.getTimezoneOffset()/60,r=(u<0?"-":"+")+(""+Math.abs(u)).padStart(2,"0");i=[new Sk.builtin.str(r),new Sk.builtin.int_(3600*u)]}return new n([Sk.builtin.assk$(e?t.getUTCFullYear():t.getFullYear()),Sk.builtin.assk$((e?t.getUTCMonth():t.getMonth())+1),Sk.builtin.assk$(e?t.getUTCDate():t.getDate()),Sk.builtin.assk$(e?t.getUTCHours():t.getHours()),Sk.builtin.assk$(e?t.getUTCMinutes():t.getMinutes()),Sk.builtin.assk$(e?t.getUTCSeconds():t.getSeconds()),Sk.builtin.assk$(((e?t.getUTCDay():t.getDay())+6)%7),Sk.builtin.assk$(getDayOfYear(t,e)),Sk.builtin.assk$(e?0:dst(t)?1:0)],i)}(i,e)}e.struct_time=n,e.time=new Sk.builtin.func((function(){return Sk.builtin.pyCheckArgsLen("time",arguments.length,0,0),new Sk.builtin.float_(Date.now()/1e3)})),e.sleep=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("sleep",arguments.length,1,1),Sk.builtin.pyCheckType("delay","float",Sk.builtin.checkNumber(t)),new Sk.misceval.promiseToSuspension(new Promise((function(e){Sk.setTimeout((function(){e(Sk.builtin.none.none$)}),1e3*Sk.ffi.remapToJs(t))})))})),e.localtime=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("localtime",arguments.length,0,1),from_seconds(t,!1)})),e.gmtime=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("gmtime",arguments.length,0,1),from_seconds(t,!0)}));var i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],u=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];function asctime_f(t){if(Sk.builtin.pyCheckArgsLen("asctime",arguments.length,0,1),!t||Sk.builtin.checkNone(t)?t=from_seconds():t instanceof n||(t=new n(t)),t instanceof Sk.builtin.tuple&&9==t.v.length){var e=[];return e.push(u[Sk.builtin.asnum$(t.v[6])]),e.push(i[Sk.builtin.asnum$(t.v[1])-1]),e.push(padLeft(Sk.builtin.asnum$(t.v[2]).toString(),2,"0")),e.push(padLeft(Sk.builtin.asnum$(t.v[3]).toString(),2,"0")+":"+padLeft(Sk.builtin.asnum$(t.v[4]).toString(),2,"0")+":"+padLeft(Sk.builtin.asnum$(t.v[5]).toString(),2,"0")),e.push(padLeft(Sk.builtin.asnum$(t.v[0]).toString(),4,"0")),new Sk.builtin.str(e.join(" "))}}function mktime_f(t){if(Sk.builtin.pyCheckArgsLen("mktime",arguments.length,1,1),t instanceof Sk.builtin.tuple&&9==t.v.length){var e=new Date(Sk.builtin.asnum$(t.v[0]),Sk.builtin.asnum$(t.v[1])-1,Sk.builtin.asnum$(t.v[2]),Sk.builtin.asnum$(t.v[3]),Sk.builtin.asnum$(t.v[4]),Sk.builtin.asnum$(t.v[5]));return Sk.builtin.assk$(e.getTime()/1e3,void 0)}throw new Sk.builtin.TypeError("mktime() requires a struct_time or 9-tuple")}e.asctime=new Sk.builtin.func(asctime_f),e.ctime=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgsLen("ctime",arguments.length,0,1),asctime_f(from_seconds(t))})),e.mktime=new Sk.builtin.func(mktime_f),e.timezone=new Sk.builtin.int_(60*stdTimezoneOffset()),e.altzone=new Sk.builtin.int_(60*function altTimezoneOffset(){var t=new Date(2002,0,1),e=new Date(2002,6,1);return Math.min(t.getTimezoneOffset(),e.getTimezoneOffset())}()),e.daylight=new Sk.builtin.int_(function daylight_check(){const t=new Date(2002,0,1),e=new Date(2002,6,1);return t.getTimezoneOffset()!=e.getTimezoneOffset()}()?1:0),e.tzname=new Sk.builtin.tuple(function timeZoneNames(){var t=new Date(2002,0,1),e=new Date(2002,6,1);return dst(t)?[new Sk.builtin.str(timeZoneName(e)),new Sk.builtin.str(timeZoneName(t))]:[new Sk.builtin.str(timeZoneName(t)),new Sk.builtin.str(timeZoneName(e))]}()),e.accept2dyear=Sk.builtin.assk$(1),e.clock=new Sk.builtin.func((function(){var t=0;return t=Sk.global.performance&&Sk.global.performance.now?performance.now()/1e3:(new Date).getTime()/1e3,new Sk.builtin.float_(t)})),e.strftime=new Sk.builtin.func((function strftime_f(t,e){var i;if(Sk.builtin.pyCheckArgsLen("strftime",arguments.length,1,2),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("format must be a string");return e?e instanceof n||(e=new n(e)):e=from_seconds(),function check_struct_time(t){if(!(t instanceof n))throw new Sk.builtin.TypeError("Required argument \'struct_time\' must be of type: \'struct_time\'");var e,i=t.v.length,u=t.v;for(e=0;e(r=e.tp$getattr(new Sk.builtin.str("_strptime_time")),r.tp$call(t)))):r.tp$call(t)})),e};',"src/lib/token.js":'var $builtinmodule=function(n){var e={};e.__file__=new Sk.builtin.str("/src/lib/token.py");const t=[];for(let i in Sk.token.tok_name){const n=Sk.token.tok_name[i].slice(2),k=parseInt(i,10);t.push(Sk.ffi.remapToPy(k)),t.push(Sk.ffi.remapToPy(n)),e[n]=Sk.ffi.remapToPy(k)}return e.tok_name=new Sk.builtin.dict(t),e.ISTERMINAL=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("ISTERMINAL",arguments.length,1,1),Sk.token.ISTERMINAL(Sk.ffi.remapToJs(n))})),e.ISNONTERMINAL=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("ISNONTERMINAL",arguments.length,1,1),Sk.token.ISNONTERMINAL(Sk.ffi.remapToJs(n))})),e.ISEOF=new Sk.builtin.func((function(n){return Sk.builtin.pyCheckArgsLen("ISEOF",arguments.length,1,1),Sk.token.ISEOF(Sk.ffi.remapToJs(n))})),e};',"src/lib/tokenize.js":'var $builtinmodule=function(e){var i={};return i.tokenize=new Sk.builtin.func((function(e){Sk.builtin.pyCheckArgsLen("tokenize",1,1),Sk.builtin.checkFunction(e);const i=[];return Sk._tokenize("",(function jsReadline(){const i=Sk.misceval.callsimArray(e);return Sk.ffi.remapToJs(i)}),"UTF-8",(function receiveToken(e){i.push(new Sk.builtin.tuple([Sk.ffi.remapToPy(e.type),Sk.ffi.remapToPy(e.string),new Sk.builtin.tuple([Sk.ffi.remapToPy(e.start[0]),Sk.ffi.remapToPy(e.start[1])]),new Sk.builtin.tuple([Sk.ffi.remapToPy(e.end[0]),Sk.ffi.remapToPy(e.end[1])]),Sk.ffi.remapToPy(e.line)]))})),new Sk.builtin.list(i)})),i};',"src/lib/turtle.js":'var $builtinmodule=function(e){"use strict";var t=function getConfiguredTarget(){var e,t;for(t="string"==typeof(e=Sk.TurtleGraphics&&Sk.TurtleGraphics.target||"turtle")?document.getElementById(e):e;t.firstChild;)t.removeChild(t.firstChild);return t}();return t.turtleInstance?t.turtleInstance.reset():t.turtleInstance=function generateTurtleModule(e){var t,n,r,i,s,a,o,l,u={__name__:new Sk.builtin.str("turtle")},c=!0,h=1e3/30,d={},f={},_={target:"turtle",width:400,height:400,worldWidth:0,worldHeight:0,animate:!0,bufferSize:0,allowUndo:!0,assets:{}};function getAsset(e){var t=i.assets,n="function"==typeof t?t(e):t[e];return"string"==typeof n?new Promise((function(t,r){var s=new Image;s.onload=function(){i.assets[e]=this,t(s)},s.onerror=function(){r(new Error("Missing asset: "+n))},s.src=n})):new InstantPromise(void 0,n)}function InstantPromise(e,t){this.lastResult=t,this.lastError=e}function FrameManager(){this.reset()}function getFrameManager(){return o||(o=new FrameManager),o}function MouseHandler(){var e=this;for(var t in this._target=getTarget(),this._managers={},this._handlers={mousedown:function(t){e.onEvent("mousedown",t)},mouseup:function(t){e.onEvent("mouseup",t)},mousemove:function(t){e.onEvent("mousemove",t)}},this._handlers)this._target.addEventListener(t,this._handlers[t])}function EventManager(e,t){this._type=e,this._target=t,this._handlers=void 0,function getMouseHandler(){return a||(a=new MouseHandler),a}().addManager(e,this)}function Turtle(e){if(getFrameManager().addTurtle(this),this._screen=getScreen(),this._managers={},this._shape=e.v,!d.hasOwnProperty(this._shape))throw new Sk.builtin.ValueError("Shape:\'"+this._shape+"\' not in default shape, please check shape again!");this.reset()}function Screen(){var e,t;this._frames=1,this._delay=void 0,this._bgcolor="none",this._mode="standard",this._managers={},this._keyLogger={},e=(i.worldWidth||i.width||getWidth())/2,t=(i.worldHeight||i.height||getHeight())/2,this.setUpWorld(-e,-t,e,t)}function ensureAnonymous(){return s||(s=Sk.misceval.callsimArray(u.Turtle)),s.instance}function getTarget(){return e}function getScreen(){return r||(r=new Screen),r}function getWidth(){return 0|(r&&r._width||i.width||getTarget().clientWidth||_.width)}function getHeight(){return 0|(r&&r._height||i.height||getTarget().clientHeight||_.height)}function createLayer(e,t){var n,r=document.createElement("canvas"),i=getWidth(),s=getHeight(),a=getTarget().firstChild?-s+"px":"0";return r.width=i,r.height=s,r.style.position="relative",r.style.display="block",r.style.setProperty("margin-top",a),r.style.setProperty("z-index",e),t&&(r.style.display="none"),getTarget().appendChild(r),(n=r.getContext("2d")).lineCap="round",n.lineJoin="round",applyWorld(getScreen(),n),n}function cancelAnimationFrame(){t&&((window.cancelAnimationFrame||window.mozCancelAnimationFrame)(t),t=void 0),n&&(window.clearTimeout(n),n=void 0)}function applyWorld(e,t){var n=e.llx,r=(e.lly,e.urx,e.ury),i=e.xScale,s=e.yScale;t&&(clearLayer(t),t.restore(),t.save(),t.scale(1/i,1/s),t.translate(-n,-r))}function pushUndo(e){var t,n,r;if(i.allowUndo&&e._bufferSize){for(e._undoBuffer||(e._undoBuffer=[]);e._undoBuffer.length>e._bufferSize;)e._undoBuffer.shift();for(n={},t="x y angle radians color fill down filling shown shape size".split(" "),r=0;r=0;)this._turtles[e].reset();this._turtles=[],this._frames=[],this._frameCount=0,this._buffer=1,this._rate=0,this._animationFrame=animationFrame()},e.addFrame=function(e,t){return t&&(this._frameCount+=1),this.frames().push(e),!i.animate||this._buffer&&this._frameCount===this.frameBuffer()?this.update():new InstantPromise},e.frames=function(){return this._frames},e.frameBuffer=function(e){return"number"==typeof e&&(this._buffer=0|e,e&&e<=this._frameCount)?this.update():this._buffer},e.refreshInterval=function(e){return"number"==typeof e&&(this._rate=0|e,this._animationFrame=animationFrame(e)),this._rate},e.update=function(){return this._frames&&this._frames.length?this.requestAnimationFrame():new InstantPromise},e.requestAnimationFrame=function(){var e,t,n=this._frames,r=this._animationFrame,i=this._turtles,s=getScreen().spriteLayer();return this._frames=[],this._frameCount=0,new Promise((function(a){r((function paint(){for(t=0;t=0;)l[a].test(n,r,i,s)&&l[a].canMove("mousedown"===e);if(o&&o.length)for(computeCoordinates(),a=o.length;--a>=0;)("mousemove"===e&&o[a].canMove()&&o[a].test(n,r,i,s)||"mousedown"===e&&o[a].test(n,r,i,s))&&o[a].trigger([i,s])},l.reset=function(){this._managers={}},l.addManager=function(e,t){this._managers[e]||(this._managers[e]=[]),this._managers[e].push(t)},function(e){e.reset=function(){this._handlers=void 0},e.canMove=function(e){return!(!this._target||!this._target.hitTest)&&(void 0!==e&&(this._target.hitTest.hit=e),this._target.hitTest.hit)},e.test=function(e,t,n,r){return this._target&&this._target.hitTest?this._target.hitTest(e,t,n,r):!!this._target},e.trigger=function(e){var t,n=this._handlers;if(n&&n.length)for(t=0;t.5&&e<10.5?Sk.builtin.asnum$(Sk.builtin.round(Sk.builtin.assk$(e))):0,this._speed=e,this._computed_speed=2*e,this.addUpdate(void 0,!1,{speed:this._computed_speed})},e.$speed.minArgs=0,e.$speed.co_varnames=["speed"],e.$pencolor=function(e,t,n,r){return void 0!==e?(this._color=createColor(this._colorMode,e,t,n,r),this.addUpdate(void 0,this._shown,{color:this._color})):hexToRGB(this._color)},e.$pencolor.co_varnames=["r","g","b","a"],e.$pencolor.minArgs=0,e.$pencolor.returnType=f.COLOR,e.$fillcolor=function(e,t,n,r){return void 0!==e?(this._fill=createColor(this._colorMode,e,t,n,r),this.addUpdate(void 0,this._shown,{fill:this._fill})):hexToRGB(this._fill)},e.$fillcolor.co_varnames=["r","g","b","a"],e.$fillcolor.minArgs=0,e.$fillcolor.returnType=f.COLOR,e.$color=function(e,t,n,r){return void 0!==e?(void 0===t||void 0!==n?(this._color=createColor(this._colorMode,e,t,n,r),this._fill=this._color):(this._color=createColor(this._colorMode,e),this._fill=createColor(this._colorMode,t)),this.addUpdate(void 0,this._shown,{color:this._color,fill:this._fill})):[this.$pencolor(),this.$fillcolor()]},e.$color.minArgs=0,e.$color.co_varnames=["color","fill","b","a"],e.$color.returnType=function(e){return new Sk.builtin.tuple([f.COLOR(e[0]),f.COLOR(e[1])])},e.$fill=function(e){if(void 0!==e){if((e=!!e)===this._filling)return;return this._filling=e,e?(pushUndo(this),this.addUpdate(void 0,!1,{filling:!0,fillBuffer:[{x:this._x,y:this._y}]})):(pushUndo(this),this.addUpdate((function(){this.fillBuffer.push(this),drawFill.call(this)}),!0,{filling:!1,fillBuffer:void 0}))}return this._filling},e.$fill.co_varnames=["flag"],e.$fill.minArgs=0,e.$begin_fill=function(){return this.$fill(!0)},e.$end_fill=function(){return this.$fill(!1)},e.$stamp=function(){return pushUndo(this),this.addUpdate((function(){drawTurtle(this,this.context())}),!0)},e.$dot=function(e,t,n,r,i){return pushUndo(this),e="number"==typeof(e=Sk.builtin.asnum$(e))?Math.max(1,0|Math.abs(e)):Math.max(this._size+4,2*this._size),t=void 0!==t?createColor(this._colorMode,t,n,r,i):this._color,this.addUpdate(drawDot,!0,void 0,e,t)},e.$dot.co_varnames=["size","color","g","b","a"],e.$write=function(e,t,n,r){var i,s,a,o,l,u=this;return pushUndo(this),e=String(e),r&&r.constructor===Array&&(s="string"==typeof r[0]?r[0]:"Arial",a=String(r[1]||"12pt"),o="string"==typeof r[2]?r[2]:"normal",/^\\d+$/.test(a)&&(a+="pt"),r=[o,a,s].join(" ")),n||(n="left"),i=this.addUpdate(drawText,!0,void 0,e,n,r),!t||"left"!==n&&"center"!==n||(l=function measureText(e,t){return t&&(p.font=t),p.measureText(e).width}(e,r),"center"===n&&(l/=2),i=i.then((function(){var e=u.getState();return u.translate(e.x,e.y,l,0,!0)}))),i},e.$write.co_varnames=["message","move","align","font"],e.$write.minArgs=1,e.$pensize=e.$width=function(e){return void 0!==e?(this._size=e,this.addUpdate(void 0,this._shown,{size:e})):this._size},e.$pensize.minArgs=e.$width.minArgs=0,e.$pensize.co_varnames=e.$width.co_varnames=["width"],e.$showturtle=e.$st=function(){return this._shown=!0,this.addUpdate(void 0,!0,{shown:!0})},e.$hideturtle=e.$ht=function(){return this._shown=!1,this.addUpdate(void 0,!0,{shown:!1})},e.$isvisible=function(){return this._shown},e.$shape=function(e){return e&&d[e]?(this._shape=e,this.addUpdate(void 0,this._shown,{shape:e})):this._shape},e.$shape.minArgs=0,e.$shape.co_varnames=["name"],e.$window_width=function(){return this._screen.$window_width()},e.$window_height=function(){return this._screen.$window_height()},e.$tracer=function(e,t){return this._screen.$tracer(e,t)},e.$tracer.minArgs=0,e.$tracer.co_varnames=["n","delay"],e.$update=function(){return this._screen.$update()},e.$delay=function(e){return this._screen.$delay(e)},e.$delay.minArgs=0,e.$delay.co_varnames=["delay"],e.$reset=function(){return this.reset(),this.$clear()},e.$mainloop=e.$done=function(){return this._screen.$mainloop()},e.$clear=function(){return this.addUpdate((function(){clearLayer(this.context())}),!0)},e.$dot.minArgs=0,e.$onclick=function(e,t,n){this.getManager("mousedown").addHandler(e,n)},e.$onclick.minArgs=1,e.$onclick.co_varnames=["method","btn","add"],e.$onrelease=function(e,t,n){this.getManager("mouseup").addHandler(e,n)},e.$onrelease.minArgs=1,e.$onrelease.co_varnames=["method","btn","add"],e.$ondrag=function(e,t,n){this.getManager("mousemove").addHandler(e,n)},e.$ondrag.minArgs=1,e.$ondrag.co_varnames=["method","btn","add"],e.$getscreen=function(){return Sk.misceval.callsimArray(u.Screen)},e.$getscreen.isSk=!0,e.$clone=function(){var e=Sk.misceval.callsimOrSuspendArray(u.Turtle);return e.instance._x=this._x,e.instance._y=this._y,e.instance._angle=this._angle,e.instance._radians=this._radians,e.instance._shape=this._shape,e.instance._color=this._color,e.instance._fill=this._fill,e.instance._filling=this._filling,e.instance._size=this._size,e.instance._computed_speed=this._computed_speed,e.instance._down=this._down,e.instance._shown=this._shown,e.instance._colorMode=this._colorMode,e.instance._isRadians=this._isRadians,e.instance._fullCircle=this._fullCircle,e.instance._bufferSize=this._bufferSize,e.instance._undoBuffer=this._undoBuffer,e._clonedFrom=this,e},e.$clone.returnType=function(e){return e},e.$getturtle=e.$getpen=function(){return this.skInstance},e.$getturtle.isSk=!0}(Turtle.prototype),function(e){e.spriteLayer=function(){return this._sprites||(this._sprites=createLayer(3))},e.bgLayer=function(){return this._background||(this._background=createLayer(1))},e.hitTestLayer=function(){return this._hitTest||(this._hitTest=createLayer(0,!0))},e.getManager=function(e){return this._managers[e]||(this._managers[e]=new EventManager(e,this)),this._managers[e]},e.reset=function(){var e;for(e in this._keyListeners=void 0,this._keyLogger)window.clearInterval(this._keyLogger[e]),window.clearTimeout(this._keyLogger[e]),delete this._keyLogger[e];for(e in this._keyDownListener&&(getTarget().removeEventListener("keydown",this._keyDownListener),this._keyDownListener=void 0),this._keyUpListener&&(getTarget().removeEventListener("keyup",this._keyUpListener),this._keyUpListener=void 0),this._timer&&(window.clearTimeout(this._timer),this._timer=void 0),this._managers)this._managers[e].reset();this._mode="standard",removeLayer(this._sprites),this._sprites=void 0,removeLayer(this._background),this._background=void 0},e.setUpWorld=function(e,t,n,r){var i=this;i.llx=e,i.lly=t,i.urx=n,i.ury=r,i.xScale=(n-e)/getWidth(),i.yScale=-1*(r-t)/getHeight(),i.lineScale=Math.min(Math.abs(i.xScale),Math.abs(i.yScale))},e.$setup=function(e,t,n,r){return isNaN(parseFloat(e))&&(e=getWidth()),isNaN(parseFloat(t))&&(t=getHeight()),e<=1&&(e=getWidth()*e),t<=1&&(t=getHeight()*t),this._width=e,this._height=t,this._xOffset=void 0===n||isNaN(parseInt(n))?0:parseInt(n),this._yOffset=void 0===r||isNaN(parseInt(r))?0:parseInt(r),"world"===this._mode?this._setworldcoordinates(this.llx,this.lly,this.urx,this.ury):this._setworldcoordinates(-e/2,-t/2,e/2,t/2)},e.$setup.minArgs=0,e.$setup.co_varnames=["width","height","startx","starty"],e.$register_shape=e.$addshape=function(e,t){if(!t)return getAsset(e).then((function(t){d[e]=t}));d[e]=t},e.$register_shape.minArgs=1,e.$register_shape.co_varnames=["name","shape"],e.$getshapes=function(){return Object.keys(d)},e.$tracer=function(e,t){return void 0!==e||void 0!==t?("number"==typeof t&&(this._delay=t,getFrameManager().refreshInterval(t)),"number"==typeof e?(this._frames=e,getFrameManager().frameBuffer(e)):void 0):this._frames},e.$tracer.co_varnames=["frames","delay"],e.$tracer.minArgs=0,e.$delay=function(e){return void 0!==e?this.$tracer(void 0,e):void 0===this._delay?h:this._delay},e.$delay.co_varnames=["delay"],e._setworldcoordinates=function(e,t,n,r){return getFrameManager().turtles(),this.setUpWorld(e,t,n,r),this._sprites&&applyWorld(this,this._sprites),this._background&&applyWorld(this,this._background),this.$clear()},e.$setworldcoordinates=function(e,t,n,r){return this._mode="world",this._setworldcoordinates(e,t,n,r)},e.$setworldcoordinates.co_varnames=["llx","lly","urx","ury"],e.minArgs=4,e.$clear=e.$clearscreen=function(){return this.reset(),this.$reset()},e.$update=function(){return getFrameManager().update()},e.$reset=e.$resetscreen=function(){var e=this,t=getFrameManager().turtles();return getFrameManager().addFrame((function(){applyWorld(e,e._sprites),applyWorld(e,e._background);for(var n=0;n1&&t[s]&&t[s].test(r),r===a||i){e._keyListeners[r](),e._createKeyRepeater(r,s),n.preventDefault();break}}},getTarget().addEventListener("keydown",this._keyDownListener))},e._createKeyUpListener=function(){var e=this;this._keyUpListener||(this._keyUpListener=function(t){var n=e._keyLogger[t.charCode||t.keyCode];void 0!==n&&(t.preventDefault(),window.clearInterval(n),window.clearTimeout(n),delete e._keyLogger[t.charCode||t.keyCode])},getTarget().addEventListener("keyup",this._keyUpListener))},e.$title=function(e){document.title=e},e.$title.minArgs=1,e.$title.co_varnames=["title"],e.$listen=function(){this._createKeyUpListener(),this._createKeyDownListener()},e.$onkey=function(e,t){if("function"==typeof t){var n=e;e=t,t=n}t=String(t).toLowerCase(),e&&"function"==typeof e?(this._keyListeners||(this._keyListeners={}),this._keyListeners[t]=e):delete this._keyListeners[t]},e.$onkey.minArgs=2,e.$onkey.co_varnames=["method","keyValue"],e.$onscreenclick=function(e,t,n){this.getManager("mousedown").addHandler(e,n)},e.$onscreenclick.minArgs=1,e.$onscreenclick.co_varnames=["method","btn","add"],e.$ontimer=function(e,t){this._timer&&(window.clearTimeout(this._timer),this._timer=void 0),e&&"number"==typeof t&&(this._timer=window.setTimeout(e,Math.max(0,0|t)))},e.$ontimer.minArgs=0,e.$ontimer.co_varnames=["method","interval"]}(Screen.prototype);var g=new Image;function removeLayer(e){e&&e.canvas&&e.canvas.parentNode&&e.canvas.parentNode.removeChild(e.canvas)}function clearLayer(e,t,n){e&&(e.save(),e.setTransform(1,0,0,1,0,0),t?(e.fillStyle=t,e.fillRect(0,0,e.canvas.width,e.canvas.height)):e.clearRect(0,0,e.canvas.width,e.canvas.height),n&&e.drawImage(n,0,0),e.restore())}function drawTurtle(e,t){var n,r,i,s=d[e.shape],a=getScreen(),o=(getWidth(),getHeight(),a.xScale),l=a.yScale;if(t){if(n=Math.cos(e.radians)/o,r=Math.sin(e.radians)/l,i=Math.atan2(r,n)-Math.PI/2,t.save(),t.translate(e.x,e.y),t.scale(o,l),s.nodeName){var u=s.naturalWidth,c=s.naturalHeight;t.drawImage(s,0,0,u,c,-u/2,-c/2,u,c)}else{t.rotate(i),t.beginPath(),t.lineWidth=1,t.strokeStyle=e.color,t.fillStyle=e.fill,t.moveTo(-s[0][0],s[0][1]);for(var h=1;ho)throw u=l===o?"exactly "+o:"between "+l+" and "+o,new Sk.builtin.TypeError(a+"() takes "+u+" positional argument(s) ("+d.length+" given)");for(e=d.length;--e>=0;)void 0!==d[e]&&(d[e]instanceof Sk.builtin.func?d[e]=pythonToJavascriptFunction(d[e]):d[e]instanceof Sk.builtin.method?d[e]=pythonToJavascriptFunction(d[e].im_func,d[e].im_self):d[e]&&d[e].$d instanceof Sk.builtin.dict&&d[e].instance?d[e]=d[e].instance:d[e]=Sk.ffi.remapToJs(d[e]));var _=d.slice(0);for(d=[],e=_.length;e>=0;--e)null!==_[e]&&(d[e]=_[e]);try{t=f[n].apply(f,d)}catch(g){throw window&&window.console&&(window.console.log("wrapped method failed"),window.console.log(g.stack)),g}return t instanceof InstantPromise&&(t=t.lastResult),t instanceof Promise?(t=t.catch((function(e){throw window&&window.console&&(window.console.log("promise failed"),window.console.log(e.stack)),e})),(i=new Sk.misceval.Suspension).resume=function(){return void 0===s?Sk.builtin.none.none$:Sk.ffi.remapToPy(s)},i.data={type:"Sk.promise",promise:t.then((function(e){return s=e,e}))},i):void 0===t?Sk.builtin.none.none$:h?t:"function"==typeof c?c(t):Sk.ffi.remapToPy(t)},i.co_name=new Sk.builtin.str(a),i.co_varnames=u.slice(),i.$defaults=[];for(var d=l;d")})),e.__iter__=new Sk.builtin.func((function(n){var e=n.lineList;return Sk.builtin.makeGenerator((function(){if(!(this.$index>=this.$lines.length))return new Sk.builtin.str(this.$lines[this.$index++])}),{$obj:n,$index:0,$lines:e})})),e.read=new Sk.builtin.func((function(n,e){if(n.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var i=n.data$.length;void 0===e&&(e=i);var t=new Sk.builtin.str(n.data$.substr(n.pos$,e));return n.pos$+=e,n.pos$>=i&&(n.pos$=i),t})),e.readline=new Sk.builtin.func((function(n,e){var i="";return n.currentLinee===o)).length)throw new i("one of the hex, bytes, bytes_le, fields, or int arguments must be given");if(u!==o){u=u.toString().replace("urn:","").replace("uuid:","");let e=0,i=u.length-1;for(;"{}".indexOf(u[e])>=0;)e++;for(;"{}".indexOf(u[i])>=0;)i--;if(u=u.slice(e,i+1),u=u.replace(S,""),32!==u.length)throw new s("badly formed hexadecimal UUID string");f=d(n,[new t(u),U])}if(c!==o){if(!(c instanceof e))throw new i("bytes_le should be a bytes instance");if(c=c.valueOf(),16!==c.length)throw new s("bytes_le is not a 16-char string");h=switchBytesBytesLe(c),h=new e(h)}if(h!==o){if(!(h instanceof e))throw new i("bytes_le should be a bytes instance");if(16!==h.valueOf().length)throw new s("bytes is not a 16-char string");f=d(w,[h],["byteorder",v])}if(p!==o)throw new r("fields argument is not yet supported");if(f!==o&&(g(f,_,"Lt")||((e,t)=>g(e,t,"GtE"))(f,y)))throw new s("int is out of range (need a 128-bit value)");this.$int=f,this.$isSafe=I},tp$str(){const e=E.nb$remainder(this.$int).toString();return new t(`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`)},$r(){const e=u(this.ob$type,t.$name),n=c(this.tp$str());return new t(`${e}(${n})`)},tp$hash(){return this.$int.tp$hash()},tp$richcompare(e,t){return e instanceof R?this.$int.tp$richcompare(e.$int,t):l},tp$as_number:!0,nb$int(){return this.$int}},getsets:{int:{$get(){return this.$int}},is_safe:{$get(){return this.$isSafe}},bytes:{$get(){return d(b,[this.$int,U,v])}},bytes_le:{$get(){const n=this.tp$getattr(new t("bytes")).valueOf();return new e(switchBytesBytesLe(n))}},fields:{$get:()=>notImplemented()},time_low:{$get:()=>notImplemented()},time_mid:{$get:()=>notImplemented()},time_hi_version:{$get:()=>notImplemented()},clock_seq_hi_variant:{$get:()=>notImplemented()},clock_seq_low:{$get:()=>notImplemented()},time:{$get:()=>notImplemented()},clock_seq:{$get:()=>notImplemented()},node:{$get:()=>notImplemented()},hex:{$get(){return E.nb$remainder(this.$int)}},urn:{$get(){return new t(`urn:uuid:${this}`)}},variant:{$get:()=>notImplemented()},version:{$get:()=>notImplemented()}}});return h("uuid",p,{uuid1:{$meth(){notImplemented()},$flags:{FastCall:!0}},uuid2:{$meth(){notImplemented()},$flags:{FastCall:!0}},uuid3:{$meth(){notImplemented()},$flags:{FastCall:!0}},uuid4:{$meth(){const t=new e(f.getRandomValues(new Uint8Array(16)));return d(R,[],["bytes",t,"version",I])},$flags:{NoArgs:!0}},uuid5:{$meth(){notImplemented()},$flags:{FastCall:!0}}}),p}',"src/lib/webbrowser.js":'var $builtinmodule=function(n){var e={},t="undefined"!=typeof window&&"undefined"!=typeof window.navigator;function open_tab(n){return Sk.builtin.pyCheckType("url","string",Sk.builtin.checkString(n)),t?(n=n.$jsstr(),window.open(n,"_blank"),Sk.builtin.bool.true$):Sk.builtin.bool.false$}return e.__name__=new Sk.builtin.str("webbrowser"),e.open=new Sk.builtin.func((function open(n){return Sk.builtin.pyCheckArgsLen("open",arguments.length+1,1,3),open_tab(n)})),e.open_new=new Sk.builtin.func((function open_new(n){return Sk.builtin.pyCheckArgsLen("open_new",arguments.length,1,1),open_tab(n)})),e.open_new_tab=new Sk.builtin.func((function open_new_tab(n){return Sk.builtin.pyCheckArgsLen("open_new_tab",arguments.length,1,1),open_tab(n)})),e.DefaultBrowser=Sk.misceval.buildClass(e,(function dflbrowser(n,e){e.__init__=new Sk.builtin.func((function __init__(n){return Sk.builtin.none.none$})),e.open=new Sk.builtin.func((function open(n,e){return Sk.builtin.pyCheckArgsLen("open",arguments.length,2,4),open_tab(e)})),e.open_new=new Sk.builtin.func((function open_new(n,e){return Sk.builtin.pyCheckArgsLen("open_new",arguments.length,2,2),open_tab(e)})),e.open_new_tab=new Sk.builtin.func((function open_new_tab(n,e){return Sk.builtin.pyCheckArgsLen("open_new_tab",arguments.length,2,2),open_tab(e)}))}),"DefaultBrowser",[]),e.get=new Sk.builtin.func((function get(){return Sk.builtin.pyCheckArgsLen("get",arguments.length,0,1),Sk.misceval.callsimArray(e.DefaultBrowser,[])})),e};',"src/lib/webgl/math.js":'var $builtinmodule=function(e){var n={};return n.Mat44=Sk.misceval.buildClass(n,(function(e,t){t.__init__=new Sk.builtin.func((function(e){Sk.misceval.callsimArray(t.loadIdentity,[e]),e.stack=[]})),t.push=new Sk.builtin.func((function(e){e.stack.push(e.elements.slice(0))})),t.pop=new Sk.builtin.func((function(e){e.elements=e.stack.pop()})),t.loadIdentity=new Sk.builtin.func((function(e){e.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]})),t.transform3=new Sk.builtin.func((function(e,t){var l=e.elements;return Sk.misceval.callsimArray(n.Vec3,[l[0]*t.x+l[4]*t.y+l[8]*t.z,l[1]*t.x+l[5]*t.y+l[9]*t.z,l[2]*t.x+l[6]*t.y+l[10]*t.z])})),t.scale=new Sk.builtin.func((function(e,n,t,l){return e.elements[0]*=n,e.elements[1]*=n,e.elements[2]*=n,e.elements[3]*=n,e.elements[4]*=t,e.elements[5]*=t,e.elements[6]*=t,e.elements[7]*=t,e.elements[8]*=l,e.elements[9]*=l,e.elements[10]*=l,e.elements[11]*=l,e})),t.translate=new Sk.builtin.func((function(e,n,t,l){return e.elements[12]+=e.elements[0]*n+e.elements[4]*t+e.elements[8]*l,e.elements[13]+=e.elements[1]*n+e.elements[5]*t+e.elements[9]*l,e.elements[14]+=e.elements[2]*n+e.elements[6]*t+e.elements[10]*l,e.elements[15]+=e.elements[3]*n+e.elements[7]*t+e.elements[11]*l,e})),t.rotate=new Sk.builtin.func((function(e,t,l,s,m){var i,a,c,u,r,f,o,k,S,y,b,v=Math.sqrt(l*l+s*s+m*m),_=Math.sin(t*Math.PI/180),w=Math.cos(t*Math.PI/180);v>0&&(i=(l/=v)*l,a=(s/=v)*s,c=(m/=v)*m,u=l*s,r=s*m,f=m*l,o=l*_,k=s*_,S=m*_,y=1-w,(b=Sk.misceval.callsimArray(n.Mat44)).elements[0]=y*i+w,b.elements[1]=y*u-S,b.elements[2]=y*f+k,b.elements[3]=0,b.elements[4]=y*u+S,b.elements[5]=y*a+w,b.elements[6]=y*r-o,b.elements[7]=0,b.elements[8]=y*f-k,b.elements[9]=y*r+o,b.elements[10]=y*c+w,b.elements[11]=0,b.elements[12]=0,b.elements[13]=0,b.elements[14]=0,b.elements[15]=1,b=b.multiply(e),e.elements=b.elements);return e})),t.multiply=new Sk.builtin.func((function(e,t){for(var l=Sk.misceval.callsimArray(n.Mat44),s=0;s<4;s++)l.elements[4*s+0]=e.elements[4*s+0]*t.elements[0]+e.elements[4*s+1]*t.elements[4]+e.elements[4*s+2]*t.elements[8]+e.elements[4*s+3]*t.elements[12],l.elements[4*s+1]=e.elements[4*s+0]*t.elements[1]+e.elements[4*s+1]*t.elements[5]+e.elements[4*s+2]*t.elements[9]+e.elements[4*s+3]*t.elements[13],l.elements[4*s+2]=e.elements[4*s+0]*t.elements[2]+e.elements[4*s+1]*t.elements[6]+e.elements[4*s+2]*t.elements[10]+e.elements[4*s+3]*t.elements[14],l.elements[4*s+3]=e.elements[4*s+0]*t.elements[3]+e.elements[4*s+1]*t.elements[7]+e.elements[4*s+2]*t.elements[11]+e.elements[4*s+3]*t.elements[15];return e.elements=l.elements,e})),t.lookAt=new Sk.builtin.func((function(e,t,l,s,m,i,a,c,u,r){var f=[t-m,l-i,s-a],o=Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2]);o&&(f[0]/=o,f[1]/=o,f[2]/=o);var k=[c,u,r],S=[];S[0]=k[1]*f[2]-k[2]*f[1],S[1]=-k[0]*f[2]+k[2]*f[0],S[2]=k[0]*f[1]-k[1]*f[0],k[0]=f[1]*S[2]-f[2]*S[1],k[1]=-f[0]*S[2]+f[2]*S[0],k[2]=f[0]*S[1]-f[1]*S[0],(o=Math.sqrt(S[0]*S[0]+S[1]*S[1]+S[2]*S[2]))&&(S[0]/=o,S[1]/=o,S[2]/=o),(o=Math.sqrt(k[0]*k[0]+k[1]*k[1]+k[2]*k[2]))&&(k[0]/=o,k[1]/=o,k[2]/=o);var y=Sk.misceval.callsimArray(n.Mat44);return y.elements[0]=S[0],y.elements[4]=S[1],y.elements[8]=S[2],y.elements[12]=0,y.elements[1]=k[0],y.elements[5]=k[1],y.elements[9]=k[2],y.elements[13]=0,y.elements[2]=f[0],y.elements[6]=f[1],y.elements[10]=f[2],y.elements[14]=0,y.elements[3]=0,y.elements[7]=0,y.elements[11]=0,y.elements[15]=1,y=y.multiply(e),e.elements=y.elements,e.translate(-t,-l,-s),e}))}),"Mat44",[]),n.Mat33=Sk.misceval.buildClass(n,(function(e,n){n.__init__=new Sk.builtin.func((function(e){Sk.misceval.callsimArray(n.loadIdentity,[e])})),n.loadIdentity=new Sk.builtin.func((function(e){e.elements=[1,0,0,0,1,0,0,0,1]}))}),"Mat33",[]),n.Vec3=Sk.misceval.buildClass(n,(function(e,t){t.__init__=new Sk.builtin.func((function(e,n,t,l){e.x=n,e.y=t,e.z=l})),t.__sub__=new Sk.builtin.func((function(e,t){return Sk.misceval.callsimArray(n.Vec3,[e.x-t.x,e.y-t.y,e.z-t.z])}))}),"Vec3",[]),n.cross=new Sk.builtin.func((function(e,t){return Sk.asserts.assert(e instanceof n.Vec3&&t instanceof n.Vec3),Sk.misceval.callsimArray(n.Vec3,[e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x])})),n};',"src/lib/webgl/matrix4.js":"var $builtinmodule=function(n){var r={},t=new Float32Array(3),a=new Float32Array(3),u=new Float32Array(3),e=(new Float32Array(4),new Float32Array(4),new Float32Array(4),new Float32Array(16),new Float32Array(16),new Float32Array(16),function(n,r){for(var t=0,a=r.length,u=0;u1e-5)for(u=0;u{const n=e.$d;var r={},Buffer=function(t,e){var r=e||n.ARRAY_BUFFER,i=n.createBuffer();if(this.target=r,this.buf=i,this.set(t),this.numComponents_=t.numComponents,this.numElements_=t.numElements,this.totalComponents_=this.numComponents_*this.numElements_,t.buffer instanceof Float32Array)this.type_=n.FLOAT;else if(t.buffer instanceof Uint8Array)this.type_=n.UNSIGNED_BYTE;else if(t.buffer instanceof Int8Array)this.type_=n._BYTE;else if(t.buffer instanceof Uint16Array)this.type_=n.UNSIGNED_SHORT;else{if(!(t.buffer instanceof Int16Array))throw"unhandled type:"+typeof t.buffer;this.type_=n.SHORT}};return Buffer.prototype.set=function(t){n.bindBuffer(this.target,this.buf),n.bufferData(this.target,t.buffer,n.STATIC_DRAW)},Buffer.prototype.type=function(){return this.type_},Buffer.prototype.numComponents=function(){return this.numComponents_},Buffer.prototype.numElements=function(){return this.numElements_},Buffer.prototype.totalComponents=function(){return this.totalComponents_},Buffer.prototype.buffer=function(){return this.buf},Buffer.prototype.stride=function(){return 0},Buffer.prototype.offset=function(){return 0},r.Model=Sk.misceval.buildClass(r,(function(e,r){r.__init__=new Sk.builtin.func((function(e,r,i,f){e.buffers={};var setBuffer=function(t,r){var i="indices"==t?n.ELEMENT_ARRAY_BUFFER:n.ARRAY_BUFFER;let f=e.buffers[t];f?f.set(r):f=new Buffer(r,i),e.buffers[t]=f};for(t in i)setBuffer(t,i[t]);var o={},s=0;for(var u in f)o[u]=s++;e.mode=n.TRIANGLES,e.textures=f.v,e.textureUnits=o,e.shader=r})),r.drawPrep=new Sk.builtin.func((function(t,e){var r=t.shader,i=t.buffers,f=t.textures;for(var o in e=Sk.ffi.remapToJs(e),Sk.misceval.callsimArray(r.use,[r]),i){var s=i[o];if("indices"==o)n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,s.buffer());else{var u=r.attrib[o];u&&u(s)}}for(var a in f){var m=t.textureUnits[a];r.setUniform$impl(r,f,m),f[a].bindToUnit(m)}for(var p in e)r.setUniform$impl(r,p,e[p])})),r.draw=new Sk.builtin.func((function(t,e,r){var i=t.shader;e=Sk.ffi.remapToJs(e);for(let n in e)i.setUniform$impl(i,n,e[n]);if(r)for(var f in r){var o=t.textureUnits[f];i.setUniform$impl(i,f,o),r[f].bindToUnit(o)}var s=t.buffers;n.drawElements(t.mode,s.indices.totalComponents(),n.UNSIGNED_SHORT,0)}))}),"Model",[]),r}))};',"src/lib/webgl/primitives.js":'var $builtinmodule=function(t){var n={},AttribBuffer=function(t,n,e){e=e||"Float32Array";var r=window[e];n.length?(this.buffer=new r(n),n=this.buffer.length/t,this.cursor=n):(this.buffer=new r(t*n),this.cursor=0),this.numComponents=t,this.numElements=n,this.type=e};return AttribBuffer.prototype.stride=function(){return 0},AttribBuffer.prototype.offset=function(){return 0},AttribBuffer.prototype.getElement=function(t){for(var n=t*this.numComponents,e=[],r=0;r
\'+n+"
"},e=\'This page requires a browser that supports WebGL.
Click here to upgrade your browser.\';return t.Context=Sk.misceval.buildClass(t,(function(n,t){t.__init__=new Sk.builtin.func((function(n,t){var i=document.getElementById(t.v),r=function(n,t){var i=document.getElementById(n);if(t||(t=i.getElementsByTagName("canvas")[0]),t){var r=function(n){for(var t=["webgl","experimental-webgl","webkit-3d","moz-webgl"],e=null,i=0;i7||7==a.Chrome[0]&&a.Chrome[1]>0||7==a.Chrome[0]&&0==a.Chrome[1]&&a.Chrome[2]>=521)?i.innerHTML=makeFailHTML(\'It doesn\\\'t appear your computer can support WebGL.
Click here for more information.\'):i.innerHTML=makeFailHTML(e)}return r}i.innerHTML=makeFailHTML(e)}(t.v,i);if(!r)throw new Error("Your browser does not appear to support WebGL.");for(var u in n.gl=r,r.__proto__)if("number"==typeof r.__proto__[u])Sk.abstr.objectSetItem(n.$d,new Sk.builtin.str(u),r.__proto__[u]);else if("function"==typeof r.__proto__[u])switch(u){case"bufferData":case"clearColor":case"drawArrays":case"getAttribLocation":case"getUniformLocation":case"shaderSource":case"uniformMatrix4fv":case"vertexAttribPointer":case"viewport":break;default:!function(t){Sk.abstr.objectSetItem(n.$d,new Sk.builtin.str(u),new Sk.builtin.func((function(){return r.__proto__[t].apply(r,arguments)})))}(u)}r.clearColor(100/255,149/255,237/255,1),r.clear(r.COLOR_BUFFER_BIT)})),t.tp$getattr=Sk.generic.getAttr,t.bufferData=new Sk.builtin.func((function(n,t,e,i){n.gl.bufferData(t,e.v,i)})),t.clearColor=new Sk.builtin.func((function(n,t,e,i,r){n.gl.clearColor(Sk.builtin.asnum$(t),Sk.builtin.asnum$(e),Sk.builtin.asnum$(i),Sk.builtin.asnum$(r))})),t.getAttribLocation=new Sk.builtin.func((function(n,t,e){return n.gl.getAttribLocation(t,e.v)})),t.getUniformLocation=new Sk.builtin.func((function(n,t,e){return n.gl.getUniformLocation(t,e.v)})),t.shaderSource=new Sk.builtin.func((function(n,t,e){n.gl.shaderSource(t,e.v)})),t.drawArrays=new Sk.builtin.func((function(n,t,e,i){n.gl.drawArrays(Sk.builtin.asnum$(t),Sk.builtin.asnum$(e),Sk.builtin.asnum$(i))})),t.vertexAttribPointer=new Sk.builtin.func((function(n,t,e,i,r,u,a){n.gl.vertexAttribPointer(t,Sk.builtin.asnum$(e),Sk.builtin.asnum$(i),r,Sk.builtin.asnum$(u),Sk.builtin.asnum$(a))})),t.viewport=new Sk.builtin.func((function(n,t,e,i,r){n.gl.viewport(Sk.builtin.asnum$(t),Sk.builtin.asnum$(e),Sk.builtin.asnum$(i),Sk.builtin.asnum$(r))})),t.uniformMatrix4fv=new Sk.builtin.func((function(n,t,e,i){n.gl.uniformMatrix4fv(Sk.builtin.asnum$(t),e,i.v)})),t.setDrawFunc=new Sk.builtin.func((function(n,t){var e=(new Date).getTime();setInterval((function(){Sk.misceval.callsimArray(t,[n,(new Date).getTime()-e])}),1e3/60)}))}),"Context",[]),t.Float32Array=Sk.misceval.buildClass(t,(function(n,t){t.__init__=new Sk.builtin.func((function(n,t){n.v="number"==typeof t?new Float32Array(t):new Float32Array(Sk.ffi.remapToJs(t))})),t.__repr__=new Sk.builtin.func((function(n){for(var t=[],e=0;e(z=e.$d,O)),(e=>{O=e.$d}));return S(L,(()=>{function _strftime(e){return t=>e.$strftime(t).toString().toLowerCase()}function _strftime_timetuple(e,t){return O.strftime.tp$call([new i(e),t]).toString().toLowerCase()}const l=new i("fromordinal");function _struct_time(t){return O.struct_time.tp$call([new s(t.map((t=>new e(t))))])}function _localized_month(){const e=[()=>""];for(let t=0;t<12;t++){const i=new k(2001,t+1,1);e.push(_strftime(i))}return e}function _localized_day(){const e=[];for(let t=0;t<7;t++){const i=new k(2001,1,t+1);e.push(_strftime(i))}return e}const S={__name__:new i("_strptime")},k=z.date,L=z.timedelta,E=z.timezone;function _getlang(){return[t,t]}class LocaleTime{constructor(){this.lang=_getlang(),this.__calc_weekday(),this.__calc_month(),this.__calc_am_pm(),this.__calc_timezone(),this.__calc_date_time()}__calc_weekday(){this.a_weekday=_localized_day().map((e=>e("%a"))),this.f_weekday=_localized_day().map((e=>e("%A")))}__calc_month(){this.a_month=_localized_month().map((e=>e("%b"))),this.f_month=_localized_month().map((e=>e("%B")))}__calc_am_pm(){const e=[];[1,22].forEach((t=>{const i=_strftime_timetuple("%p",_struct_time([1999,3,17,t,44,55,2,76,0]));e.push(i)})),this.am_pm=e}__calc_date_time(){const e=_struct_time([1999,3,17,22,44,55,2,76,0]),i=[t,t,t];i[0]=_strftime_timetuple("%c",e),i[1]=_strftime_timetuple("%x",e),i[2]=_strftime_timetuple("%X",e);const s=[["%","%%"],[this.f_weekday[2],"%A"],[this.f_month[3],"%B"],[this.a_weekday[2],"%a"],[this.a_month[3],"%b"],[this.am_pm[1],"%p"],["1999","%Y"],["99","%y"],["22","%H"],["44","%M"],["55","%S"],["76","%j"],["17","%d"],["03","%m"],["3","%m"],["2","%w"],["10","%I"]];s.push(...this.timezone.flat().map((e=>[e,"%Z"]))),[[0,"%c"],[1,"%x"],[2,"%X"]].forEach((([e,t])=>{let n=i[e];s.forEach((([e,t])=>{e&&(n=n.replace(e,t))}));let a;a=_strftime_timetuple(t,_struct_time([1999,1,3,1,1,1,6,3,0])).includes("00")?"%W":"%U",i[e]=n.replace("11",a)})),this.LC_date_time=i[0],this.LC_date=i[1],this.LC_time=i[2]}__calc_timezone(){try{O.tzset.tp$call([])}catch{}this.tzname=O.tzname.v.map((e=>e.toString())),this.daylight=w(O.daylight);const e=[this.tzname[0].toLowerCase(),"utc","gmt"];let t;t=this.daylight?[this.tzname[1].toLowerCase()]:[],this.timezone=[e,t]}}class TimeRE{constructor(e=null){this.locale_time=e||new LocaleTime,Object.assign(this,{d:"(?3[0-1]|[1-2]\\\\d|0[1-9]|[1-9]| [1-9])",f:"(?[0-9]{1,6})",H:"(?2[0-3]|[0-1]\\\\d|\\\\d)",I:"(?1[0-2]|0[1-9]|[1-9])",G:"(?\\\\d\\\\d\\\\d\\\\d)",j:"(?36[0-6]|3[0-5]\\\\d|[1-2]\\\\d\\\\d|0[1-9]\\\\d|00[1-9]|[1-9]\\\\d|0[1-9]|[1-9])",m:"(?1[0-2]|0[1-9]|[1-9])",M:"(?[0-5]\\\\d|\\\\d)",S:"(?6[0-1]|[0-5]\\\\d|\\\\d)",U:"(?5[0-3]|[0-4]\\\\d|\\\\d)",w:"(?[0-6])",u:"(?[1-7])",V:"(?5[0-3]|0[1-9]|[1-4]\\\\d|\\\\d)",y:"(?\\\\d\\\\d)",Y:"(?\\\\d\\\\d\\\\d\\\\d)",z:"(?[+-]\\\\d\\\\d:?[0-5]\\\\d(:?[0-5]\\\\d(\\\\.\\\\d{1,6})?)?|Z)",A:this.__seqToRE(this.locale_time.f_weekday,"A"),a:this.__seqToRE(this.locale_time.a_weekday,"a"),B:this.__seqToRE(this.locale_time.f_month.slice(1),"B"),b:this.__seqToRE(this.locale_time.a_month.slice(1),"b"),p:this.__seqToRE(this.locale_time.am_pm,"p"),Z:this.__seqToRE(this.locale_time.timezone.flat(),"Z"),"%":"%"}),this.W=this.U.replace("U","W"),this.x=this.pattern(this.locale_time.LC_date),this.X=this.pattern(this.locale_time.LC_time),this.c=this.pattern(this.locale_time.LC_date_time)}__seqToRE(e,t){if((e=e.slice(0).sort(((e,t)=>t.length-e.length))).every((e=>""===e)))return"";return`(?<${t}>${e.map((e=>e)).join("|")})`}pattern(e){let t="";for(e=(e=e.replace(b,"\\\\$1")).replace(v,"\\\\s+");e.includes("%");){const i=e.indexOf("%")+1,s=this[e[i]];if(void 0===s)throw new h(e[i]);t=`${t}${e.slice(0,i-1)}${s}`,e=e.slice(i+1)}return t+e}compile(e){return new RegExp("^"+this.pattern(e),"i")}}let C=new TimeRE;const T=5;let A={};function _strptime(i,s="%a %b %d %H:%M:%S %Y"){function _checkString(e,t){if("string"!=typeof e&&!u(e))throw new m(`strptime() argument ${t} must be a str, not \'${o(e)}\'`)}_checkString(i,0),_checkString(s,1),i=i.toString(),s=s.toString();let n,_=C.locale_time;if(Object.keys(A).length>T&&(A={}),n=A[s],void 0===n)try{n=C.compile(s)}catch(V){if(V instanceof h){let e=V.args.v[0];throw"\\\\"==e&&(e="%"),new d(`\'${e}\' is a bad directive in format \'${s}\'`)}if(V instanceof f)throw new d("stray %% in format \'"+s+"\'");throw V}const c=i.match(n);if(null===c)throw new d(`time data \'${i}\' does not match format \'${s}\'`);if(i.length!==c[0].length)throw new d(`unconverted data remains: ${i.slice(c[0].length)}`);let w=t,p=t,g=1,$=1,y=0,S=0,b=0,v=0,z=-1,L=t,E=0,I=t,M=t,H=t,Y=t,j=t,U=c.groups||{};if(Object.keys(U).forEach((e=>{if(void 0!==U[e])if("y"===e)p=_as_integer(U.y),p+=p<=68?2e3:1900;else if("Y"===e)p=_as_integer(U.Y);else if("G"===e)w=_as_integer(U.G);else if("m"===e)g=_as_integer(U.m);else if("B"===e)g=_.f_month.indexOf(U.B.toLowerCase());else if("b"===e)g=_.a_month.indexOf(U.b.toLowerCase());else if("d"===e)$=_as_integer(U.d);else if("H"===e)y=_as_integer(U.H);else if("H"===e)y=_as_integer(U.H);else if("I"===e){y=_as_integer(U.I);const e=(U.p||"").toLowerCase();["",_.am_pm[0]].includes(e)?12===y&&(y=0):e===_.am_pm[1]&&12!==y&&(y+=12)}else if("M"===e)S=_as_integer(U.M);else if("S"===e)b=_as_integer(U.S);else if("f"===e){let e=U.f;e+="0".repeat(6-e.length),v=_as_integer(e)}else if("A"===e)Y=_.f_weekday.indexOf(U.A.toLowerCase());else if("a"===e)Y=_.a_weekday.indexOf(U.a.toLowerCase());else if("w"===e)Y=_as_integer(U.w),0===Y?Y=6:Y-=1;else if("u"===e)Y=_as_integer(U.u),Y-=1;else if("j"===e)j=_as_integer(U.j);else if(["U","W"].includes(e))M=_as_integer(U[e]),H="U"===e?6:0;else if("V"===e)I=_as_integer(U.V);else if("z"===e){let e=U.z;if("Z"===e)L=0;else{if(":"===e[3]&&(e=e.slice(0,3)+e.slice(4),e.length>5)){if(":"!==e[5]){const e=`Inconsistent use of : in ${U.z}`;throw new d(e)}e=e.slice(0,5)+e.slice(6)}const t=_as_integer(e.slice(1,3)),i=_as_integer(e.slice(3,5)),s=_as_integer(e.slice(5,7)||0);L=3600*t+60*i+s;const n=e.slice(8),a="0".repeat(6-n.length);E=_as_integer(n+a),e.startsWith("-")&&(L=-L,E=-E)}}else if("Z"===e){let e=U.Z.toLowerCase(),t=0;for(let i of _.timezone){if(i.includes(e)){const i=O.tzname.v;if(r(i[0],i[1],"Eq")&&a(O.daylight)&&!["utc","gmt"].includes(e))break;z=t}t++}}})),p===t&&w!==t){if(I===t||Y===t)throw new d("ISO year directive \'%G\' must be used with the ISO week directive \'%V\' and a weekday directive (\'%A\',\'%a\', \'%w\', or \'%u\').");if(j!==t)throw new d("Day of the year directive \'%j\' is not compatible with ISO year directive \'%G\'.Use \'%Y\' instead.")}else if(M===t&&I!==t)throw new d(Y===t?"ISO week directive \'%V\' must be used with the ISO year directive \'%G\' and a weekday directive (\'%A\', \'%a\', \'%w\', or \'%u\').":"ISO week directive \'%V\' is incompatible with the year directive \'%Y\'. Use the ISO year \'%G\' instead.");let x=!1;if(p===t&&2===g&&29===$?(p=1904,x=!0):p===t&&(p=1900),j===t&&Y!==t){if(M!==t){j=function _calc_julian_from_U_or_W(e,t,i,s){let n=(new k(e,1,1).$toOrdinal()+6)%7;return s||(n=(n+1)%7,i=(i+1)%7),0===t?1+i-n:(7-n)%7+7*(t-1)+1+i}(p,M,Y,0===H)}else w!==t&&I!==t&&([p,j]=function _calc_julian_from_V(e,t,i){let s=7*t+i-((new k(e,1,4).$toOrdinal()%7||7)+3);return s<1&&(s+=new k(e,1,1).$toOrdinal(),s-=new k(e-=1,1,1).$toOrdinal()),[e,s]}(w,I,Y+1));if(j!==t&&j<=0){p-=1;const e=function _is_leap(e){return e%4==0&&(e%100!=0||e%400==0)}(p)?366:365;j+=e}}if(j===t)j=new k(p,g,$).$toOrdinal()-new k(p,1,1).$toOrdinal()+1;else{const t=function _fromordinal(t){return k.tp$getattr(l).tp$call([new e(t)])}(j-1+new k(p,1,1).$toOrdinal());p=t.$year,g=t.$month,$=t.$day}Y===t&&(Y=(new k(p,g,$).$toOrdinal()+6)%7);const R=U.Z||t;return x&&(p=1900),[[p,g,$,y,S,b,Y,j,z,R,L],v,E]}return _("_strptime",S,{_strptime_time:{$meth:function _strptime_time(t,i="%a %b %d %H:%M:%S %Y"){let n=_strptime(t,i)[0].slice(0,11);return n=n.map(((t,i)=>i<9?new e(t):p(t))),O.struct_time.tp$call([new s(n)])},$flags:{NamedArgs:["data_string","format"],Defaults:["%a %b %d %H:%M:%S %Y"]}},_strptime_datetime:{$meth:function _strptime_datetime(s,r,l="%a %b %d %H:%M:%S %Y"){const[o,_,c]=_strptime(r,l),[m,d]=o.slice(-2),h=o.slice(0,6);let f,u;return h.push(_),h.map((t=>new e(t))),d!==t&&(f=new L(0,d,c),u=a(m)?new E(f,new i(m)):new E(f),h.push(u)),n(s,h)},$flags:{NamedArgs:["cls","data_string","format"],Defaults:["%a %b %d %H:%M:%S %Y"]}},_strptime:{$meth(i,n){const a=_strptime(i,n);return a[0]=new s(a[0].map((i=>i===t?i:new e(i)))),a[1]=new e(a[1]),a[2]=new e(a[2]),new s(a)},$flags:{NamedArgs:["data_string","format"],Defaults:["%a %b %d %H:%M:%S %Y"]}},_getlang:{$meth:()=>p(_getlang()),$flags:{NoArgs:!0}}}),S.LocaleTime=c("_strptime.LocaleTime",{constructor:function(){this.v=new LocaleTime},slots:{tp$getattr(e,t){return this.v.hasOwnProperty(e.toString())?p(this.v[e.toString()]):$.call(this,e,t)},tp$setattr(e,t){if(!this.v.hasOwnProperty(e.toString()))return y.call(this,e,t);this.v[e.toString()]=g(t)}}}),S}))}'}}},312:function(t,e,n){(function(){"use strict";var t=t||{};t.scope={},t.ASSUME_ES5=!1,t.ASSUME_NO_NATIVE_MAP=!1,t.ASSUME_NO_NATIVE_SET=!1,t.SIMPLE_FROUND_POLYFILL=!1,t.ISOLATE_POLYFILLS=!1,t.FORCE_POLYFILL_PROMISE=!1,t.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1,t.defineProperty=t.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(t,e,n){return t==Array.prototype||t==Object.prototype||(t[e]=n.value),t},t.getGlobal=function(t){t=["object"==typeof globalThis&&globalThis,t,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof n.g&&n.g];for(var e=0;e(e=e||0)&&(e=Math.max(e+i,0));e{Sk.abstr.setUpSlots(t),Sk.abstr.setUpMethods(t),Sk.abstr.setUpGetSets(t),Sk.abstr.setUpClassMethods(t)})),n(19),n(20),n(21),[Sk.builtin.str,Sk.builtin.none,Sk.builtin.NotImplemented,Sk.builtin.object].forEach((t=>{(t=t.prototype).__doc__=t.hasOwnProperty("tp$doc")?new Sk.builtin.str(t.tp$doc):Sk.builtin.none.none$})),n(22),n(23),n(24),n(25),n(26),n(27),n(28),n(29),n(31),n(32),n(33),n(34),n(35),n(36),n(37),n(38),n(39),n(40),n(41),n(42),n(43),n(44),n(45),n(46),n(47),n(48),n(49),n(50),n(51),n(52),n(53),n(66),n(54),n(55),n(56),n(57),n(58),n(59),n(60),n(61),n(62),n(63),n(64),n(65)},function(t,e,n){(function(t){var e={build:{githash:"1d6da87991edd93117a53858367c32f27d77b396",date:"2023-09-01T06:58:47.589Z"}};e.global=void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e.exportSymbol=function(t,n){t=t.split(".");var i,s=e.global;for(i=0;i=t||0===e||4<=e)return"th";switch(e){case 1:return"st";case 2:return"nd";case 3:return"rd"}}function o(t){"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(t)}var a={de_DE:{identifier:"de-DE",days:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),shortDays:"So Mo Di Mi Do Fr Sa".split(" "),months:"Januar Februar März April Mai Juni Juli August September Oktober November Dezember".split(" "),shortMonths:"Jan Feb Mär Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d.%m.%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},en_CA:{identifier:"en-CA",days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),ordinalSuffixes:"st nd rd th th th th th th th th th th th th th th th th th st nd rd th th th th th th th st".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},en_US:{identifier:"en-US",days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),ordinalSuffixes:"st nd rd th th th th th th th th th th th th th th th th th st nd rd th th th th th th th st".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%m/%d/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},es_MX:{identifier:"es-MX",days:"domingo lunes martes miércoles jueves viernes sábado".split(" "),shortDays:"dom lun mar mié jue vie sáb".split(" "),months:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),shortMonths:"ene feb mar abr may jun jul ago sep oct nov dic".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},fr_FR:{identifier:"fr-FR",days:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),shortDays:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),months:"janvier février mars avril mai juin juillet août septembre octobre novembre décembre".split(" "),shortMonths:"janv. févr. mars avril mai juin juil. août sept. oct. nov. déc.".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},it_IT:{identifier:"it-IT",days:"domenica lunedì martedì mercoledì giovedì venerdì sabato".split(" "),shortDays:"dom lun mar mer gio ven sab".split(" "),months:"gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre".split(" "),shortMonths:"gen feb mar apr mag giu lug ago set ott nov dic".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},nl_NL:{identifier:"nl-NL",days:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),shortDays:"zo ma di wo do vr za".split(" "),months:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),shortMonths:"jan feb mrt apr mei jun jul aug sep okt nov dec".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},pt_BR:{identifier:"pt-BR",days:"domingo segunda terça quarta quinta sexta sábado".split(" "),shortDays:"Dom Seg Ter Qua Qui Sex Sáb".split(" "),months:"janeiro fevereiro março abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),shortMonths:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},ru_RU:{identifier:"ru-RU",days:"Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split(" "),shortDays:"Вс Пн Вт Ср Чт Пт Сб".split(" "),months:"Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь".split(" "),shortMonths:"янв фев мар апр май июн июл авг сен окт ноя дек".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X",D:"%d.%m.%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},tr_TR:{identifier:"tr-TR",days:"Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi".split(" "),shortDays:"Paz Pzt Sal Çrş Prş Cum Cts".split(" "),months:"Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık".split(" "),shortMonths:"Oca Şub Mar Nis May Haz Tem Ağu Eyl Eki Kas Ara".split(" "),AM:"ÖÖ",PM:"ÖS",am:"ÖÖ",pm:"ÖS",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},zh_CN:{identifier:"zh-CN",days:"星期日 星期一 星期二 星期三 星期四 星期五 星期六".split(" "),shortDays:"日一二三四五六".split(""),months:"一月份 二月份 三月份 四月份 五月份 六月份 七月份 八月份 九月份 十月份 十一月份 十二月份".split(" "),shortMonths:"一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月".split(" "),AM:"上午",PM:"下午",am:"上午",pm:"下午",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}}},l=a.en_US,u=new function t(u,c,p){function h(t,a,l,u){for(var c="",p=null,_=!1,d=t.length,g=!1,b=0;ba.getHours()?l.am:l.pm;break;case 82:c+=h(l.formats.R,a,l,u);break;case 83:c+=e(a.getSeconds(),p);break;case 84:c+=h(l.formats.T,a,l,u);break;case 85:c+=e(s(a,"sunday"),p);break;case 87:c+=e(s(a,"monday"),p);break;case 88:c+=h(l.formats.X,a,l,u);break;case 89:c+=a.getFullYear();break;case 90:m&&0===f?c+="GMT":c+=(p=(p=(p=a).toString().match(/\(([\w\s]+)\)/))&&p[1])||"";break;case 97:c+=l.shortDays[a.getDay()];break;case 98:case 104:c+=l.shortMonths[a.getMonth()];break;case 99:c+=h(l.formats.c,a,l,u);break;case 100:c+=e(a.getDate(),p);break;case 101:c+=e(a.getDate(),null==p?" ":p);break;case 106:p=new Date(a.getFullYear(),0,1),c+=n(p=Math.ceil((a.getTime()-p.getTime())/864e5));break;case 107:c+=e(a.getHours(),null==p?" ":p);break;case 108:c+=e(i(a.getHours()),null==p?" ":p);break;case 109:c+=e(a.getMonth()+1,p);break;case 110:c+="\n";break;case 111:p=a.getDate(),c=l.ordinalSuffixes?c+(String(p)+(l.ordinalSuffixes[p-1]||r(p))):c+(String(p)+r(p));break;case 112:c+=12>a.getHours()?l.AM:l.PM;break;case 114:c+=h(l.formats.r,a,l,u);break;case 115:c+=Math.floor(u/1e3);break;case 116:c+="\t";break;case 117:c+=0===(p=a.getDay())?7:p;break;case 118:c+=h(l.formats.v,a,l,u);break;case 119:c+=a.getDay();break;case 120:c+=h(l.formats.x,a,l,u);break;case 121:c+=e(_=a.getFullYear()%100,p);break;case 122:m&&0===f?c+=g?"+00:00":"+0000":(p=0!==f?f/6e4:-a.getTimezoneOffset(),_=g?":":"",S=Math.abs(p%60),c+=(0>p?"-":"+")+e(Math.floor(Math.abs(p/60)))+_+e(S));break;default:_&&(c+="%"),c+=t[b]}p=null,_=!1}else 37===S?_=!0:c+=t[b]}return c}var _,d=u||l,f=c||0,m=p||!1,g=0,b=function(t,e){if(e){var n=e.getTime();if(m){var i=6e4*(e.getTimezoneOffset()||0);6e4*((e=new Date(n+i+f)).getTimezoneOffset()||0)!==i&&(e=6e4*(e.getTimezoneOffset()||0),e=new Date(n+e+f))}}else(n=Date.now())>g?(g=n,_=new Date(g),n=g,m&&(_=new Date(g+6e4*(_.getTimezoneOffset()||0)+f))):n=g,e=_;return h(t,e,d,n)};return b.localize=function(e){return new t(e||d,f,m)},b.localizeByIdentifier=function(t){var e=a[t];return e?b.localize(e):(o('[WARNING] No locale found with identifier "'+t+'".'),b)},b.timezone=function(e){var n=f,i=m,s=typeof e;return"number"!==s&&"string"!==s||(i=!0,"string"===s?n=(n="-"===e[0]?-1:1)*(60*(s=parseInt(e.slice(1,3),10))+(e=parseInt(e.slice(3,5),10)))*6e4:"number"===s&&(n=6e4*e)),new t(d,n,i)},b.utc=function(){return new t(d,f,!0)},b}(l,0,!1);if(void 0!==t)t.exports=u;else(function(){return this||(0,eval)("this")}()).strftime=u;"function"!=typeof Date.now&&(Date.now=function(){return+new Date})}()},function(t,e,n){t=n(5);const i=Sk.global.JSBI=void 0!==Sk.global.BigInt?{}:t;void 0===Sk.global.BigInt?(i.__isBigInt||(i.__isBigInt=t=>t instanceof i),i.powermod=(t,e,n)=>{const s=i.BigInt(1);let r=s;for(e=i.greaterThan(e,i.__ZERO)?e:i.unaryMinus(e);i.greaterThan(e,i.__ZERO);)i.bitwiseAnd(e,s)&&(r=i.remainder(i.multiply(r,t),n)),e=i.signedRightShift(e,s),t=i.remainder(i.multiply(t,t),n);return r}):Object.assign(i,{BigInt:Sk.global.BigInt,toNumber:t=>Number(t),toString:t=>t.toString(),__isBigInt:t=>"bigint"==typeof t,unaryMinus:t=>-t,bitwiseNot:t=>~t,bitwiseAnd:(t,e)=>t&e,bitwiseOr:(t,e)=>t|e,bitwiseXor:(t,e)=>t^e,exponentiate:(t,e)=>{const n=i.BigInt(1);let s=n;for(e=e>i.__ZERO?e:-e;e>i.__ZERO;)e&n&&(s*=t),e>>=n,t*=t;return s},powermod:(t,e,n)=>{const s=i.BigInt(1);let r=s;for(e=e>i.__ZERO?e:-e;e>i.__ZERO;)e&s&&(r=r*t%n),e>>=s,t=t*t%n;return r},multiply:(t,e)=>t*e,divide:(t,e)=>t/e,remainder:(t,e)=>t%e,add:(t,e)=>t+e,subtract:(t,e)=>t-e,leftShift:(t,e)=>t<t>>e,unsignedRightShift:(t,e)=>t>>>e,lessThan:(t,e)=>tt<=e,greaterThan:(t,e)=>t>e,greaterThanOrEqual:(t,e)=>t>=e,equal:(t,e)=>t===e,notEqual:(t,e)=>t!==e}),i.__ZERO=i.BigInt(0),i.__MAX_SAFE=i.BigInt(Number.MAX_SAFE_INTEGER),i.__MIN_SAFE=i.BigInt(-Number.MAX_SAFE_INTEGER),i.numberIfSafe=t=>i.lessThan(t,i.__MAX_SAFE)&&i.greaterThan(t,i.__MIN_SAFE)?i.toNumber(t):t,i.BigUp=t=>i.__isBigInt(t)?t:i.BigInt(t)},function(t,e,n){t.exports=function(){var t=Math.imul,e=Math.clz32,n=Math.abs,i=Math.max,s=Math.floor;class r extends Array{constructor(t,e){if(super(t),this.sign=e,t>r.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded")}static BigInt(t){var e=Number.isFinite;if("number"==typeof t){if(0===t)return r.__zero();if(r.__isOneDigitInt(t))return 0>t?r.__oneDigit(-t,!0):r.__oneDigit(t,!1);if(!e(t)||s(t)!==t)throw new RangeError("The number "+t+" cannot be converted to BigInt because it is not an integer");return r.__fromDouble(t)}if("string"==typeof t){if(null===(e=r.__fromString(t)))throw new SyntaxError("Cannot convert "+t+" to a BigInt");return e}if("boolean"==typeof t)return!0===t?r.__oneDigit(1,!1):r.__zero();if("object"==typeof t)return t.constructor===r?t:(t=r.__toPrimitive(t),r.BigInt(t));throw new TypeError("Cannot convert "+t+" to a BigInt")}toDebugString(){const t=["BigInt["];for(const e of this)t.push((e?(e>>>0).toString(16):e)+", ");return t.push("]"),t.join("")}toString(t){if(2>(t=void 0===t?10:t)||36>>12;const l=a-12;for(e=12<=a?0:i<<20+a,a=20+a,0>>30-l,e=i<>>30-a,a-=30;return 1!==(i=r.__decideRounding(t,a,o,i))&&(0!==i||1&~e)||0!=(e=e+1>>>0)||!(0!=++s>>>20&&(s=0,1023<++n))?(t=t.sign?-2147483648:0,n=n+1023<<20,r.__kBitConversionInts[1]=t|n|s,r.__kBitConversionInts[0]=e,r.__kBitConversionDouble[0]):t.sign?-1/0:1/0}static unaryMinus(t){if(0===t.length)return t;const e=t.__copy();return e.sign=!t.sign,e}static bitwiseNot(t){return t.sign?r.__absoluteSubOne(t).__trim():r.__absoluteAddOne(t,!0)}static exponentiate(t,e){if(e.sign)throw new RangeError("Exponent must be positive");if(0===e.length)return r.__oneDigit(1,!1);if(0===t.length)return t;if(1===t.length&&1===t.__digit(0))return!t.sign||1&e.__digit(0)?t:r.unaryMinus(t);if(1=r.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===t.length&&2===t.__digit(0)){var n=1+(0|e/30);return(t=new r(n,t.sign&&!!(1&e))).__initializeDigits(),t.__setDigit(n-1,1<>=1;0!==e;e>>=1)i=r.multiply(i,i),1&e&&(n=null===n?i:r.multiply(n,i));return n}static multiply(t,e){if(0===t.length)return t;if(0===e.length)return e;var n=t.length+e.length;30<=t.__clzmsd()+e.__clzmsd()&&n--,(n=new r(n,t.sign!==e.sign)).__initializeDigits();for(let i=0;ir.__absoluteCompare(t,e))return r.__zero();const n=t.sign!==e.sign,i=e.__unsignedDigit(0);if(1===e.length&&32767>=i){if(1===i)return n===t.sign?t:r.unaryMinus(t);t=r.__absoluteDivSmall(t,i,null)}else t=r.__absoluteDivLarge(t,e,!0,!1);return t.sign=n,t.__trim()}static remainder(t,e){if(0===e.length)throw new RangeError("Division by zero");if(0>r.__absoluteCompare(t,e))return t;const n=e.__unsignedDigit(0);return 1===e.length&&32767>=n?1===n||0===(e=r.__absoluteModSmall(t,n))?r.__zero():r.__oneDigit(e,t.sign):((e=r.__absoluteDivLarge(t,e,!1,!0)).sign=t.sign,e.__trim())}static add(t,e){const n=t.sign;return n===e.sign?r.__absoluteAdd(t,e,n):0<=r.__absoluteCompare(t,e)?r.__absoluteSub(t,e,n):r.__absoluteSub(e,t,!n)}static subtract(t,e){const n=t.sign;return n===e.sign?0<=r.__absoluteCompare(t,e)?r.__absoluteSub(t,e,n):r.__absoluteSub(e,t,!n):r.__absoluteAdd(t,e,n)}static leftShift(t,e){return 0===e.length||0===t.length?t:e.sign?r.__rightShiftByAbsolute(t,e):r.__leftShiftByAbsolute(t,e)}static signedRightShift(t,e){return 0===e.length||0===t.length?t:e.sign?r.__leftShiftByAbsolute(t,e):r.__rightShiftByAbsolute(t,e)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(t,e){return 0>r.__compareToBigInt(t,e)}static lessThanOrEqual(t,e){return 0>=r.__compareToBigInt(t,e)}static greaterThan(t,e){return 0(t=s(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return r.__zero();if(t>=r.__kMaxLengthBits)return e;const n=0|(t+29)/30;if(e.length(t=s(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return r.__zero();if(e.sign){if(t>r.__kMaxLengthBits)throw new RangeError("BigInt too big");return r.__truncateAndSubFromPowerOfTwo(t,e,!1)}if(t>=r.__kMaxLengthBits)return e;const n=0|(t+29)/30;if(e.length>>i?r.__truncateToNBits(t,e):e}static ADD(t,e){if(t=r.__toPrimitive(t),e=r.__toPrimitive(e),"string"==typeof t)return"string"!=typeof e&&(e=e.toString()),t+e;if("string"==typeof e)return t.toString()+e;if(t=r.__toNumeric(t),e=r.__toNumeric(e),r.__isBigInt(t)&&r.__isBigInt(e))return r.add(t,e);if("number"==typeof t&&"number"==typeof e)return t+e;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(t,e){return r.__compare(t,e,0)}static LE(t,e){return r.__compare(t,e,1)}static GT(t,e){return r.__compare(t,e,2)}static GE(t,e){return r.__compare(t,e,3)}static EQ(t,e){for(;;){if(r.__isBigInt(t))return r.__isBigInt(e)?r.equal(t,e):r.EQ(e,t);if("number"==typeof t){if(r.__isBigInt(e))return r.__equalToNumber(e,t);if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else if("string"==typeof t){if(r.__isBigInt(e))return null!==(t=r.__fromString(t))&&r.equal(t,e);if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else if("boolean"==typeof t){if(r.__isBigInt(e))return r.__equalToNumber(e,+t);if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else if("symbol"==typeof t){if(r.__isBigInt(e))return!1;if("object"!=typeof e)return t==e;e=r.__toPrimitive(e)}else{if("object"!=typeof t)return t==e;if("object"==typeof e&&e.constructor!==r)return t==e;t=r.__toPrimitive(t)}}}static NE(t,e){return!r.EQ(t,e)}static __zero(){return new r(0,!1)}static __oneDigit(t,e){return(e=new r(1,e)).__setDigit(0,t),e}__copy(){const t=new r(this.length,this.sign);for(let e=0;ee)e=-e-1;else{if(0===n)return-1;n--,i=t.__digit(n),e=29}if(!(i&(e=1<>>20)-1023,n=1+(0|e/30);t=new r(n,0>t);let i,s=1048575&r.__kBitConversionInts[1]|1048576,o=r.__kBitConversionInts[0];if(20>(e%=30)){var a=20-e;i=a+32,e=s>>>a,s=s<<32-a|o>>>a,o<<=32-a}else 20===e?(i=32,e=s,s=o):(i=32-(a=e-20),e=s<>>32-a,s=o<>>2,s=s<<30|o>>>2,o<<=30):e=0,t.__setDigit(n,e);return t.__trim()}static __isWhitespace(t){return!!(13>=t&&9<=t)||(159>=t?32==t:131071>=t?160==t||5760==t:196607>=t?10>=(t&=131071)||40==t||41==t||47==t||95==t||4096==t:65279==t)}static __fromString(t,e){e=void 0===e?0:e;let n=0;const i=t.length;let s=0;if(s===i)return r.__zero();let o=t.charCodeAt(s);for(;r.__isWhitespace(o);){if(++s===i)return r.__zero();o=t.charCodeAt(s)}if(43===o){if(++s===i)return null;o=t.charCodeAt(s),n=1}else if(45===o){if(++s===i)return null;o=t.charCodeAt(s),n=-1}if(0===e){if(e=10,48===o){if(++s===i)return r.__zero();if(o=t.charCodeAt(s),88===o||120===o){if(e=16,++s===i)return null;o=t.charCodeAt(s)}else if(79===o||111===o){if(e=8,++s===i)return null;o=t.charCodeAt(s)}else if(66===o||98===o){if(e=2,++s===i)return null;o=t.charCodeAt(s)}}}else if(16===e&&48===o){if(++s===i)return r.__zero();if(o=t.charCodeAt(s),88===o||120===o){if(++s===i)return null;o=t.charCodeAt(s)}}if(0!=n&&10!==e)return null;for(;48===o;){if(++s===i)return r.__zero();o=t.charCodeAt(s)}var a=i-s;let l=r.__kMaxBitsPerChar[e];var u=r.__kBitsPerCharTableMultiplier-1;if(a>1073741824/l)return null;a=new r(0|(29+(l*a+u>>>r.__kBitsPerCharTableShift))/30,!1);const c=10>e?e:10,p=10>>0>>0>>r.__kBitsPerCharTableShift)/30)}while(!h)}else{l>>=r.__kBitsPerCharTableShift,e=[];var h=[],_=!1;do{for(var d=0,f=0;;){if(o-48>>>0>>0>>l-r)}if(0!==s){if(i>=t.length)throw Error("implementation bug");t.__setDigit(i++,s)}for(;i>>1)+(85&i))>>>2)+(51&i))>>>4)+(15&i),--e;const s=t.__digit(n-1);var o=r.__clz30(s),a=0|(30*n-o+i-1)/i;if(t.sign&&a++,268435456>>(u=i-u),u=30-u;u>=i;)o[a--]=r.__kConversionChars[l&e],l>>>=i,u-=i}for(o[a--]=r.__kConversionChars[(l|s<>>i-u;0!==l;)o[a--]=r.__kConversionChars[l&e],l>>>=i;if(t.sign&&(o[a--]="-"),-1!=a)throw Error("implementation bug");return o.join("")}static __toStringGeneric(t,e,n){var i=t.length;if(0===i)return"";if(1===i)return e=t.__unsignedDigit(0).toString(e),!1===n&&t.sign&&(e="-"+e),e;var s=30*i-r.__clz30(t.__digit(i-1));i=r.__kMaxBitsPerChar[e]-1,i=1+(0|((s*=r.__kBitsPerCharTableMultiplier)+(i-1))/i)>>1;var o=(s=r.exponentiate(r.__oneDigit(e,!1),r.__oneDigit(i,!1))).__unsignedDigit(0);if(1===s.length&&32767>=o){(s=new r(t.length,!1)).__initializeDigits();var a=0;for(let e=2*t.length-1;0<=e;e--)a=a<<15|t.__halfDigit(e),s.__setHalfDigit(e,0|a/o),a=0|a%o;o=a.toString(e)}else s=(o=r.__absoluteDivLarge(t,s,!0,!0)).quotient,o=o.remainder.__trim(),o=r.__toStringGeneric(o,e,!0);for(s.__trim(),e=r.__toStringGeneric(s,e,!0);o.lengtht?r.__absoluteLess(n):0}static __compareToNumber(t,e){if(r.__isOneDigitInt(e)){const i=t.sign,s=0>e;if(i!==s)return r.__unequalSign(i);if(0===t.length){if(s)throw Error("implementation bug");return 0===e?0:-1}return 1e?r.__absoluteGreater(i):te)return r.__unequalSign(n);if(0===e)throw Error("implementation bug: should be handled elsewhere");if(0===t.length)return-1;if(r.__kBitConversionDouble[0]=e,2047==(e=2047&r.__kBitConversionInts[1]>>>20))throw Error("implementation bug: handled elsewhere");var i=e-1023;if(0>i)return r.__absoluteGreater(n);e=t.length;var s=t.__digit(e-1),o=r.__clz30(s),a=30*e-o;if(a<(i+=1))return r.__absoluteLess(n);if(a>i)return r.__absoluteGreater(n);i=1048576|1048575&r.__kBitConversionInts[1];let l=r.__kBitConversionInts[0];if((o=29-o)!=(0|(a-1)%30))throw Error("implementation bug");if(20>o){var u=20-o;o=u+32,a=i>>>u,i=i<<32-u|l>>>u,l<<=32-u}else 20===o?(o=32,a=i,i=l):(o=32-(u=o-20),a=i<>>32-u,i=l<>>=0)>(a>>>=0))return r.__absoluteGreater(n);if(s>>2,i=i<<30|l>>>2,l<<=30):a=0,(s=t.__unsignedDigit(e))>a)return r.__absoluteGreater(n);if(se&&t.__unsignedDigit(0)===n(e):0===r.__compareToDouble(t,e)}static __comparisonResultToBool(t,e){return 0===e?0>t:1===e?0>=t:2===e?0e;case 3:return t>=e}if(r.__isBigInt(t)&&"string"==typeof e)return null!==(e=r.__fromString(e))&&r.__comparisonResultToBool(r.__compareToBigInt(t,e),n);if("string"==typeof t&&r.__isBigInt(e))return null!==(t=r.__fromString(t))&&r.__comparisonResultToBool(r.__compareToBigInt(t,e),n);if(t=r.__toNumeric(t),e=r.__toNumeric(e),r.__isBigInt(t)){if(r.__isBigInt(e))return r.__comparisonResultToBool(r.__compareToBigInt(t,e),n);if("number"!=typeof e)throw Error("implementation bug");return r.__comparisonResultToBool(r.__compareToNumber(t,e),n)}if("number"!=typeof t)throw Error("implementation bug");if(r.__isBigInt(e))return r.__comparisonResultToBool(r.__compareToNumber(e,t),2^n);if("number"!=typeof e)throw Error("implementation bug");return 0===n?te:3===n?t>=e:void 0}__clzmsd(){return r.__clz30(this.__digit(this.length-1))}static __absoluteAdd(t,e,n){if(t.length>>30,n.__setDigit(s,1073741823&r)}for(;s>>30,n.__setDigit(s,1073741823&e);return s>>30,n.__setDigit(s,1073741823&r)}for(;s>>30,n.__setDigit(s,1073741823&e);return n.__trim()}static __absoluteAddOne(t,e,n){n=void 0===n?null:n;const i=t.length;null===n?n=new r(i,e):n.sign=e,e=1;for(let s=0;s>>30,n.__setDigit(s,1073741823&i)}return 0!=e&&n.__setDigitGrow(i,1),n}static __absoluteSubOne(t,e){const n=t.length,i=new r(e=e||n,!1);let s=1;for(let e=0;e>>30,i.__setDigit(e,1073741823&n)}if(0!=s)throw Error("implementation bug");for(t=n;tn?0:t.__unsignedDigit(n)>e.__unsignedDigit(n)?1:-1}static __multiplyAccumulate(t,e,n,i){if(0!==e){var s=32767&e,o=e>>>15,a=e=0;for(let p,h=0;h>>15;l=r.__imul(u,s),u=r.__imul(u,o);const _=r.__imul(c,s);p+=a+l+e,e=p>>>30,p&=1073741823,p+=((32767&u)<<15)+((32767&_)<<15),e+=p>>>30,a=(c=r.__imul(c,o))+(u>>>15)+(_>>>15),n.__setDigit(i,1073741823&p)}for(;0!=e||0!==a;i++)t=n.__digit(i),t+=e+a,a=0,e=t>>>30,n.__setDigit(i,1073741823&t)}}static __internalMultiplyAdd(t,e,n,i,s){let o=0;for(let u=0;u>>15,e)))<<15)+o+n)>>>30,o=a>>>15,s.__setDigit(u,1073741823&l)}if(s.length>i)for(s.__setDigit(i++,n+o);ithis.length&&(n=this.length);const i=32767&t;t>>>=15;let s=0;for(let u=0;u>>15;o=r.__imul(a,i),a=r.__imul(a,t);const n=r.__imul(l,i);s=(o=e+o+s)>>>30,o&=1073741823,s+=(o+=((32767&a)<<15)+((32767&n)<<15))>>>30,e=(l=r.__imul(l,t))+(a>>>15)+(n>>>15),this.__setDigit(u,1073741823&o)}if(0!=s||0!==e)throw Error("implementation bug")}static __absoluteDivSmall(t,e,n){null===(n=void 0===n?null:n)&&(n=new r(t.length,!1));let i=0;for(let s,r=2*t.length-1;0<=r;r-=2){s=(i<<15|t.__halfDigit(r))>>>0;const o=0|s/e;i=0|s%e,s=(i<<15|t.__halfDigit(r-1))>>>0;const a=0|s/e;i=0|s%e,n.__setDigit(r>>>1,o<<15|a)}return n}static __absoluteModSmall(t,e){let n=0;for(let i=2*t.length-1;0<=i;i--)n=0|((n<<15|t.__halfDigit(i))>>>0)%e;return n}static __absoluteDivLarge(t,e,n,i){const s=e.__halfDigitLength(),o=e.length;var a=t.__halfDigitLength()-s;let l=null;n&&(l=new r(a+2>>>1,!1),l.__initializeDigits());const u=new r(s+2>>>1,!1);u.__initializeDigits();const c=r.__clz15(e.__halfDigit(s-1));0>>0)/p,a=0|a%p;const n=e.__halfDigit(s-2),o=t.__halfDigit(c+s-2);for(;r.__imul(i,n)>>>0>(a<<16|o)>>>0&&(i--,!(32767<(a+=p))););}r.__internalMultiplyAdd(e,i,0,o,u),0!==(a=t.__inplaceSub(u,c,s+1))&&(a=t.__inplaceAdd(e,c,s),t.__setHalfDigit(c+s,32767&t.__halfDigit(c+s)+a),i--),n&&(1&c?h=i<<15:l.__setDigit(c>>>1,h|i))}if(i)return t.__inplaceRightShift(c),n?{quotient:l,remainder:t}:t;if(n)return l;throw Error("unreachable")}static __clz15(t){return r.__clz30(t)-15}__inplaceAdd(t,e,n){let i=0;for(let s=0;s>>15,this.__setHalfDigit(e+s,32767&n)}return i}__inplaceSub(t,e,n){let i=0;if(1&e){e>>=1;for(var s=this.__digit(e),r=32767&s,o=0;o>>1;o++){var a=t.__digit(o);i=1&(s=(s>>>15)-(32767&a)-i)>>>15,this.__setDigit(e+o,(32767&s)<<15|32767&r),i=1&(r=(32767&(s=this.__digit(e+o+1)))-(a>>>15)-i)>>>15}const l=(s>>>15)-(32767&(a=t.__digit(o)))-i;if(i=1&l>>>15,this.__setDigit(e+o,(32767&l)<<15|32767&r),e+o+1>=this.length)throw new RangeError("out of bounds");!(1&n)&&(i=1&(r=(32767&(s=this.__digit(e+o+1)))-(a>>>15)-i)>>>15,this.__setDigit(e+t.length,1073709056&s|32767&r))}else{for(e>>=1,r=0;r>>15,i=1&(s=(s>>>15)-(a>>>15)-i)>>>15,this.__setDigit(e+r,(32767&s)<<15|32767&o);i=1&(s=(32767&(o=this.__digit(e+r)))-(32767&(t=t.__digit(r)))-i)>>>15,a=0,!(1&n)&&(i=1&(a=(o>>>15)-(t>>>15)-i)>>>15),this.__setDigit(e+r,(32767&a)<<15|32767&s)}return i}__inplaceRightShift(t){if(0!==t){var e=this.__digit(0)>>>t,n=this.length-1;for(let i=0;i>>t}this.__setDigit(n,e)}}static __specialLeftShift(t,e,n){const i=t.length,s=new r(i+n,!1);if(0===e){for(e=0;e>>30-e}return 0n)throw new RangeError("BigInt too big");e=0|n/30;var i=n%30;const s=t.length,o=0!==i&&0!=t.__digit(s-1)>>>30-i;var a=s+e+(o?1:0);if(n=new r(a,t.sign),0===i){for(i=0;i>>30-i}if(o)n.__setDigit(s+e,a);else if(0!==a)throw Error("implementation bug")}return n.__trim()}static __rightShiftByAbsolute(t,e){var n=t.length,i=t.sign,s=r.__toShiftAmount(e);if(0>s)return r.__rightShiftByMaximum(i);var o=s%30,a=n-(e=0|s/30);if(0>=a)return r.__rightShiftByMaximum(i);if(s=!1,i)if(t.__digit(e)&(1<>>o,n=n-e-1,l=0;l>>o}i.__setDigit(n,a)}return s&&(i=r.__absoluteAddOne(i,!0,i)),i.__trim()}static __rightShiftByMaximum(t){return t?r.__oneDigit(1,!0):r.__zero()}static __toShiftAmount(t){return 1r.__kMaxLengthBits?-1:t}static __toPrimitive(t,e){if(e=void 0===e?"default":e,"object"!=typeof t||t.constructor===r)return t;if("undefined"!=typeof Symbol&&"symbol"==typeof Symbol.toPrimitive){const n=t[Symbol.toPrimitive];if(n){if("object"!=typeof(t=n(e)))return t;throw new TypeError("Cannot convert object to primitive value")}}if((e=t.valueOf)&&"object"!=typeof(e=e.call(t)))return e;if((e=t.toString)&&"object"!=typeof(t=e.call(t)))return t;throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(t){return r.__isBigInt(t)?t:+t}static __isBigInt(t){return"object"==typeof t&&null!==t&&t.constructor===r}static __truncateToNBits(t,e){var n=0|(t+29)/30;const i=new r(n,e.sign);--n;for(let t=0;t>>t),i.__setDigit(n,e),i.__trim()}static __truncateAndSubFromPowerOfTwo(t,e,n){var i=Math.min,s=0|(t+29)/30;n=new r(s,n);let o=0;var a=0;for(i=i(--s,e.length);o>>30,n.__setDigit(o,1073741823&t)}for(;o>>t,a=(t=1<<32-t)-e-a,a&=t-1),n.__setDigit(s,a),n.__trim()}__digit(t){return this[t]}__unsignedDigit(t){return this[t]>>>0}__setDigit(t,e){this[t]=0|e}__setDigitGrow(t,e){this[t]=0|e}__halfDigitLength(){const t=this.length;return 32767>=this.__unsignedDigit(t-1)?2*t-1:2*t}__halfDigit(t){return 32767&this[t>>>1]>>>15*(1&t)}__setHalfDigit(t,e){const n=t>>>1,i=this.__digit(n);this.__setDigit(n,1&t?32767&i|e<<15:1073709056&i|32767&e)}static __digitPow(t,e){let n=1;for(;0>>=1,t*=t;return n}static __isOneDigitInt(t){return(1073741823&t)===t}}return r.__kMaxLength=33554432,r.__kMaxLengthBits=r.__kMaxLength<<5,r.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],r.__kBitsPerCharTableShift=5,r.__kBitsPerCharTableMultiplier=1<>>0)/e)},r.__imul=t||function(t,e){return 0|t*e},r}()},function(t,e){[..."abc"].flat(),"a".matchAll(/a/g)},function(t,e,n){(function(t,e){!function(t){function n(t){delete o[t]}function i(t){if(a)setTimeout(i,0,t);else{var e=o[t];if(e){a=!0;try{var s=e.callback,r=e.args;switch(r.length){case 0:s();break;case 1:s(r[0]);break;case 2:s(r[0],r[1]);break;case 3:s(r[0],r[1],r[2]);break;default:s.apply(undefined,r)}}finally{n(t),a=!1}}}}if(!t.setImmediate){var s,r=1,o={},a=!1,l=t.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(t);u=u&&u.setTimeout?u:t,"[object process]"==={}.toString.call(t.process)?s=function(t){e.nextTick((function(){i(t)}))}:function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?(c="setImmediate$"+Math.random()+"$",p=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(c)&&i(+e.data.slice(c.length))},t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),s=function(e){t.postMessage(c+e,"*")}):t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){i(t.data)},s=function(e){t.port2.postMessage(e)}}():l&&"onreadystatechange"in l.createElement("script")?function(){var t=l.documentElement;s=function(e){var n=l.createElement("script");n.onreadystatechange=function(){i(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():s=function(t){setTimeout(i,0,t)},u.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=Array(arguments.length-1),n=0;n the object's type\ntype(name, bases, dict) -> a new type",tp$call:function(t,e){if(this===Sk.builtin.type){if(1===t.length&&(void 0===e||!e.length))return t[0].ob$type;if(3!==t.length)throw new Sk.builtin.TypeError("type() takes 1 or 3 arguments")}let n=this.prototype.tp$new(t,e);if(n.$isSuspension)return Sk.misceval.chain(n,(i=>{if(n=i,n.ob$type.$isSubType(this))return n.tp$init(t,e)}),(()=>n));if(n.ob$type.$isSubType(this)){const i=n.tp$init(t,e);return void 0!==i&&i.$isSuspension?Sk.misceval.chain(i,(()=>n)):n}return n},tp$new:function(t,e){if(3!==t.length){if(1===t.length&&(void 0===e||!e.length))return t[0].ob$type;throw new Sk.builtin.TypeError("type() takes 1 or 3 arguments")}const i=t[0];var s=t[1];const o=t[2];if("dict"!==o.tp$name)throw new Sk.builtin.TypeError("type() argument 3 must be dict, not "+Sk.abstr.typeName(o));if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("type() argument 1 must be str, not "+Sk.abstr.typeName(i));const a=i.$jsstr();if("tuple"!==s.tp$name)throw new Sk.builtin.TypeError("type() argument 2 must be tuple, not "+Sk.abstr.typeName(s));r(a,t=function(){this.sk$hasDict&&(this.$d=new Sk.builtin.dict),this.$s=[]},s=s.sk$asarray(),this.constructor);const u=t.prototype;Sk.globals&&(u.__module__=Sk.globals.__name__),u.__doc__=Sk.builtin.none.none$;let c,p=void 0===(s=o.quick$lookup(Sk.builtin.str.$slots)),h=void 0!==t.$typeLookup(Sk.builtin.str.$dict);if(void 0!==s&&(c=new Set,(s=Sk.builtin.checkString(s)?[s]:Sk.misceval.arrayFromIterable(s)).forEach((t=>{if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__slots__ items must be strings, not '"+Sk.abstr.typeName(t)+"'");if(!t.$isIdentifier())throw new Sk.builtin.TypeError("__slots__ must be identifiers");if(t===Sk.builtin.str.$dict){if(h)throw new Sk.builtin.TypeError("__dict__ slot disallowed: we already got one");p=!0}else c.add(Sk.mangleName(i,t))})),function(t,e){const n=e.prototype,i=n.sk$nslots||0;Object.defineProperty(n,"sk$nslots",{value:i+t.length,writable:!0}),t.length&&Object.defineProperty(e,"sk$solidSlotBase",{value:!0,writable:!0}),t.forEach(((t,s)=>{s+=i,n[t.$mangled]=new Sk.builtin.getset_descriptor(e,{$get(){const e=this.$s[s];if(void 0===e)throw new Sk.builtin.AttributeError(t);return e},$set(t){this.$s[s]=t}})}))}(s=[...c].sort(((t,e)=>t.toString().localeCompare(e.toString()))),t)),p&&!h&&(u.__dict__=new Sk.builtin.getset_descriptor(t,l),h=!0),Object.defineProperties(u,{ht$slots:{value:s||null,writable:!0},sk$hasDict:{value:h,writable:!0}}),o.$items().forEach((t=>{var[e,n]=t;if(c&&c.has(e))throw new Sk.builtin.ValueError("'"+e.toString()+"' in __slots__ conflicts with class variable");u[e.$mangled]=n})),u.hasOwnProperty("__qualname__")){if(s=u.__qualname__,!Sk.builtin.checkString(s))throw new Sk.builtin.TypeError("type __qualname__ must be a str, not '"+Sk.abstr.typeName(s)+"'");u.ht$qualname=s}return n(s=t.prototype,"__init_subclass__","classmethod"),n(s,"__new__","staticmethod"),n(s,"__class_getitem__","classmethod"),t.$allocateSlots(),function(t){const e=t.prototype;Object.keys(e).forEach((n=>{const i=Sk.abstr.lookupSpecial(e[n],Sk.builtin.str.$setname);if(void 0!==i)try{Sk.misceval.callsimArray(i,[t,new Sk.builtin.str(n)])}catch(i){throw(n=new Sk.builtin.RuntimeError("Error calling __set_name__ on '"+Sk.abstr.typeName(e[n])+"' instance '"+n+"' in '"+t.prototype.tp$name+"'")).$cause=i,n}}))}(t),function(t,e){t=new Sk.builtin.super_(t,t).tp$getattr(Sk.builtin.str.$initsubclass),Sk.misceval.callsimArray(t,[],e)}(t,e),t},tp$init:function(t,e){if(t&&1==t.length&&e&&e.length)throw new Sk.builtin.TypeError("type.__init__() takes no keyword arguments");if(3!=t.length&&1!=t.length)throw new Sk.builtin.TypeError("type.__init__() takes 1 or 3 arguments");return Sk.builtin.object.prototype.tp$init.call(this,[])},tp$getattr:function(t,e){var n=this.ob$type;const i=n.$typeLookup(t);let s;return void 0!==i&&(s=i.tp$descr_get,void 0!==s&&void 0!==i.tp$descr_set)?s.call(i,this,n,e):void 0!==(t=this.$typeLookup(t))?void 0!==(n=t.tp$descr_get)?e=n.call(t,null,this,e):t:void 0!==s?s.call(i,this,n,e):void 0!==i?i:void 0},tp$setattr:function(t,e,n){if(!this.sk$klass){if(void 0!==e)throw new Sk.builtin.TypeError("can't set attributes of built-in/extension type '"+this.prototype.tp$name+"'");throw new Sk.builtin.TypeError("can't delete attributes on type object '"+this.prototype.tp$name+"'")}const i=this.ob$type.$typeLookup(t);if(void 0!==i){const t=i.tp$descr_set;if(t)return t.call(i,this,e,n)}if(n=t.$mangled,void 0===e){if(!(e=this.prototype).hasOwnProperty(n))throw new Sk.builtin.AttributeError("type object '"+this.prototype.tp$name+"' has no attribute '"+t.$jsstr()+"'");delete e[n],void 0!==(t=Sk.dunderToSkulpt[n])&&(delete this.prototype[t],e.sk$prototypical||this.$allocateGetterSlot(n))}else this.prototype[n]=e,n in Sk.dunderToSkulpt&&this.$allocateSlot(n,e)},$r:function(){let t=this.prototype.__module__,e="",n="class";return t&&Sk.builtin.checkString(t)?e=t.v+".":t=null,t||this.sk$klass||Sk.__future__.class_repr||(n="type"),new Sk.builtin.str("<"+n+" '"+e+this.prototype.tp$name+"'>")}},writable:!0},tp$methods:{value:null,writable:!0},tp$classmethods:{value:null,writable:!0},tp$getsets:{value:null,writable:!0},sk$type:{value:!0},$isSubType:{value:function(t){return this===t||this.prototype instanceof t||!this.prototype.sk$prototypical&&this.prototype.tp$mro.includes(t)}},$allocateSlot:{value:function(t,e){const n=(t=Sk.slots[t]).$slot_name,i=this.prototype;i.hasOwnProperty(n)&&delete i[n],Object.defineProperty(i,n,{value:t.$slot_func(e),writable:!0,configurable:!0})}},$allocateSlots:{value:function(){const t=this.prototype;this.prototype.sk$prototypical?Object.keys(t).forEach((e=>{e in Sk.slots&&this.$allocateSlot(e,t[e])})):Object.keys(Sk.slots).forEach((e=>{t.hasOwnProperty(e)?this.$allocateSlot(e,t[e]):this.$allocateGetterSlot(e)})),t.hasOwnProperty("__eq__")&&!t.hasOwnProperty("__hash__")&&(t.tp$hash=t.__hash__=Sk.builtin.none.none$)}},$allocateGetterSlot:{value:function(t){const e=Sk.slots[t].$slot_name,n=this.prototype;n.hasOwnProperty(e)||Object.defineProperty(n,e,{configurable:!0,get(){const t=n.tp$mro;for(let n=1;nnew Sk.builtin.dict([]),$flags:{FastCall:!0}}};const l={$get(){const t=o(this.ob$type);return void 0!==t?t.tp$descr_get(this,this.ob$type):Sk.generic.getSetDict.$get.call(this)},$set(t){const e=o(this.ob$type);return void 0!==e?e.tp$descr_set(this,t):void 0!==t?Sk.generic.getSetDict.$set.call(this,t):void(this.$d=new Sk.builtin.dict([]))},$doc:"dictionary for instance variables (if defined)",$name:"__dict__"}},function(t,e){Sk.generic={},Sk.generic.getAttr=function(t,e){let n;const i=this.ob$type,s=i.$typeLookup(t);if(void 0!==s&&(n=s.tp$descr_get,void 0!==n&&void 0!==s.tp$descr_set))return n.call(s,this,i,e);const r=this.$d;return void 0!==r&&void 0!==(t=r.quick$lookup(t))?t:void 0!==n?n.call(s,this,i,e):void 0!==s?s:void 0},Sk.exportSymbol("Sk.generic.getAttr",Sk.generic.getAttr),Sk.generic.setAttr=function(t,e,n){var i=this.ob$type.$typeLookup(t);if(null!=i){const t=i.tp$descr_set;if(t)return t.call(i,this,e,n)}if(void 0!==(n=this.$d))if(n.mp$ass_subscript){if(void 0!==e)return n.mp$ass_subscript(t,e);try{return n.mp$ass_subscript(t)}catch(e){if(e instanceof Sk.builtin.KeyError)throw new Sk.builtin.AttributeError("'"+Sk.abstr.typeName(this)+"' object has no attribute '"+t.$jsstr()+"'");throw e}}else if("object"==typeof n){if(i=t.$mangled,void 0!==e)return void(n[i]=e);if(void 0!==n[i])return void delete n[i]}throw new Sk.builtin.AttributeError(this.sk$attrError()+" has no attribute '"+t.$jsstr()+"'")},Sk.exportSymbol("Sk.generic.setAttr",Sk.generic.setAttr),Sk.generic.new=function(t){return function(e,n){return this.constructor===t?new this.constructor:(e=new this.constructor,t.call(e),e)}},Sk.generic.newMethodDef={$meth(t,e){const n=this.prototype;if(1>t.length)throw t=n.tp$name,new Sk.builtin.TypeError(t+".__new__(): not enough arguments");var i=t.shift();if(void 0===i.sk$type)throw t=n.tp$name,new Sk.builtin.TypeError(t+"__new__(X): X is not a type object ("+Sk.abstr.typeName(i)+")");if(!i.$isSubType(this))throw t=n.tp$name,i=i.prototype.tp$name,new Sk.builtin.TypeError(t+".__new__("+i+"): "+i+" is not a subtype of "+t);const s=i.prototype.sk$staticNew.prototype;if(s.tp$new!==n.tp$new)throw t=n.tp$name,i=i.prototype.tp$name,new Sk.builtin.TypeError(t+".__new__("+i+") is not safe, use "+s.tp$name+".__new__()");return n.tp$new.call(i.prototype,t,e)},$flags:{FastCall:!0},$textsig:"($type, *args, **kwargs)",$name:"__new__"},Sk.generic.selfIter=function(){return this},Sk.generic.iterNextWithArrayCheckSize=function(){if(this.$seq.length!==this.$orig.get$size()){const t=this.tp$name.split("_")[0];throw new Sk.builtin.RuntimeError(t+" changed size during iteration")}if(!(this.$index>=this.$seq.length))return this.$seq[this.$index++]},Sk.generic.iterNextWithArray=function(){const t=this.$seq[this.$index++];return void 0===t&&(this.tp$iternext=()=>{}),t},Sk.generic.iterLengthHintWithArrayMethodDef={$meth:function(){return new Sk.builtin.int_(this.$seq.length-this.$index)},$flags:{NoArgs:!0}},Sk.generic.iterReverseLengthHintMethodDef={$meth:function(){return new Sk.builtin.int_(this.$index)},$flags:{NoArgs:!0}},Sk.generic.getSetDict={$get(){return this.$d},$set(t){if(void 0===t)throw new Sk.builtin.TypeError("cannot delete __dict__");if(!(t instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError("__dict__ must be set to a dictionary, not a '"+Sk.abstr.typeName(t)+"'");this.$d=t},$doc:"dictionary for instance variables (if defined)",$name:"__dict__"},Sk.generic.seqCompare=function(t,e){if(this===t&&Sk.misceval.opAllowsEquality(e))return!0;if(!(t instanceof this.sk$builtinBase))return Sk.builtin.NotImplemented.NotImplemented$;const n=this.v;let i;if(t=t.v,n.length!==t.length&&("Eq"===e||"NotEq"===e))return"Eq"!==e;for(i=0;i=s||i>=r)switch(e){case"Lt":return sr;case"GtE":return s>=r;default:Sk.asserts.fail()}return"Eq"!==e&&("NotEq"===e||Sk.misceval.richCompareBool(n[i],t[i],e))},Sk.generic.classGetItem={__class_getitem__:{$meth(t){return new Sk.builtin.GenericAlias(this,t)},$flags:{OneArg:!0}}}},function(t,e){Sk.builtin.pyCheckArgs=function(t,e,n,i,s,r){if(e=e.length,void 0===i&&(i=1/0),s&&--e,r&&--e,ei)throw new Sk.builtin.TypeError((n===i?t+"() takes exactly "+n+" arguments":ei)throw new Sk.builtin.TypeError((n===i?t+"() takes exactly "+n+" arguments":e"};const r={Add:"+",Sub:"-",Mult:"*",MatMult:"@",Div:"/",FloorDiv:"//",Mod:"%",DivMod:"divmod()",Pow:"** or pow()",LShift:"<<",RShift:">>",BitAnd:"&",BitXor:"^",BitOr:"|"},o={UAdd:"+",USub:"-",Invert:"~"};Sk.abstr.numberBinOp=function(t,e,n){var s;if(!(s=i(t,e,n)))throw t=Sk.abstr.typeName(t),e=Sk.abstr.typeName(e),new Sk.builtin.TypeError("unsupported operand type(s) for "+r[n]+": '"+t+"' and '"+e+"'");return s},Sk.exportSymbol("Sk.abstr.numberBinOp",Sk.abstr.numberBinOp),Sk.abstr.numberInplaceBinOp=function(t,e,n){var i;if(!(i=s(t,e,n)))throw t=Sk.abstr.typeName(t),e=Sk.abstr.typeName(e),new Sk.builtin.TypeError("unsupported operand type(s) for "+r[n]+"=: '"+t+"' and '"+e+"'");return i},Sk.exportSymbol("Sk.abstr.numberInplaceBinOp",Sk.abstr.numberInplaceBinOp),Sk.abstr.numberUnaryOp=function(t,e){if("Not"===e)return Sk.misceval.isTrue(t)?Sk.builtin.bool.false$:Sk.builtin.bool.true$;t:{switch(e){case"USub":var n=t.nb$negative;break t;case"UAdd":n=t.nb$positive;break t;case"Invert":n=t.nb$invert;break t}n=void 0}if(!(n=void 0!==n?n.call(t):void 0))throw t=Sk.abstr.typeName(t),new Sk.builtin.TypeError("bad operand type for unary "+o[e]+": '"+t+"'");return n},Sk.exportSymbol("Sk.abstr.numberUnaryOp",Sk.abstr.numberUnaryOp),Sk.abstr.fixSeqIndex_=function(t,e){return 0>(e=Sk.builtin.asnum$(e))&&t.sq$length&&(e+=t.sq$length()),e},Sk.abstr.sequenceContains=function(t,e,n){return t.sq$contains?t.sq$contains(e,n):(t=Sk.misceval.iterFor(Sk.abstr.iter(t),(function(t){return!(t!==e&&!Sk.misceval.richCompareBool(t,e,"Eq"))&&new Sk.misceval.Break(!0)}),!1),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t))},Sk.abstr.sequenceConcat=function(t,e){if(t.sq$concat)return t.sq$concat(e);if(Sk.builtin.checkSequence(t)&&Sk.builtin.checkSequence(e)&&void 0!==(e=i(t,e,"Add")))return e;throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object can't be concatenated")},Sk.abstr.sequenceInPlaceConcat=function(t,e){if(t.sq$inplace_concat)return t.sq$inplace_concat(e);if(t.sq$concat)return t.sq$concat(e);if(Sk.builtin.checkSequence(t)&&Sk.builtin.checkSequence(e)&&void 0!==(e=s(t,e,"Add")))return e;throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object can't be concatenated")},Sk.abstr.sequenceGetIndexOf=function(t,e){if(t.index)return Sk.misceval.callsimArray(t.index,[t,e]);let n=0;for(let i=Sk.abstr.iter(t),s=i.tp$iternext();void 0!==s;s=i.tp$iternext()){if(Sk.misceval.richCompareBool(e,s,"Eq"))return new Sk.builtin.int_(n);n+=1}throw new Sk.builtin.ValueError("sequence.index(x): x not in sequence")},Sk.abstr.sequenceGetCountOf=function(t,e){if(t.count)return Sk.misceval.callsimArray(t.count,[t,e]);let n=0;for(let i=Sk.abstr.iter(t),s=i.tp$iternext();void 0!==s;s=i.tp$iternext())Sk.misceval.richCompareBool(e,s,"Eq")&&(n+=1);return new Sk.builtin.int_(n)},Sk.abstr.sequenceGetItem=function(t,e,n){return"number"==typeof e&&(e=new Sk.builtin.int_(e)),Sk.abstr.objectGetItem(t,e,n)},Sk.abstr.sequenceSetItem=function(t,e,n,i){return"number"==typeof e&&(e=new Sk.builtin.int_(e)),Sk.abstr.objectSetItem(t,e,n,i)},Sk.abstr.sequenceDelItem=function(t,e,n){return Sk.abstr.objectDelItem(t,e,n)},Sk.abstr.sequenceGetSlice=function(t,e,n){return Sk.abstr.objectGetItem(t,new Sk.builtin.slice(e,n))},Sk.abstr.sequenceDelSlice=function(t,e,n){return Sk.abstr.objectDelItem(t,new Sk.builtin.slice(e,n))},Sk.abstr.sequenceSetSlice=function(t,e,n,i){return Sk.abstr.objectSetItem(t,new Sk.builtin.slice(e,n))},Sk.abstr.sequenceUnpack=function(t,e,n,i){if(!Sk.builtin.checkIterable(t))throw new Sk.builtin.TypeError("cannot unpack non-iterable "+Sk.abstr.typeName(t)+" object");const s=Sk.abstr.iter(t),r=[];let o,a=0;return 0{if(r.push(t),++a===e)return new Sk.misceval.Break}))),Sk.misceval.chain(o,(()=>{if(r.length{if(void 0!==t)throw new Sk.builtin.ValueError("too many values to unpack (expected "+e+")");return r}));const t=[];return Sk.misceval.chain(Sk.misceval.iterFor(s,(e=>{t.push(e)})),(()=>{const i=t.length+e-n;if(0>i)throw new Sk.builtin.ValueError("not enough values to unpack (expected at least "+n+", got "+(n+i)+")");return r.push(new Sk.builtin.list(t.slice(0,i))),r.push(...t.slice(i)),r}))}))},Sk.abstr.mappingUnpackIntoKeywordArray=function(t,e,n){if(!(e instanceof Sk.builtin.dict)){var i=Sk.abstr.lookupSpecial(e,Sk.builtin.str.$keys);if(void 0===i)throw new Sk.builtin.TypeError("Object is not a mapping");return Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(i),(i=>Sk.misceval.iterFor(Sk.abstr.iter(i),(i=>{if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError((n.$qualname?n.$qualname+"() ":"")+"keywords must be strings");return Sk.misceval.chain(e.mp$subscript(i,!0),(e=>{t.push(i.v),t.push(e)}))}))))}e.$items().forEach((e=>{var[i,s]=e;if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError((n.$qualname?n.$qualname+"() ":"")+"keywords must be strings");t.push(i.v),t.push(s)}))},Sk.abstr.keywordArrayFromPyDict=function(t){const e=[];return t.$items().forEach((t=>{var[n,i]=t;if(!Sk.builtin.checkString(n))throw new Sk.builtin.TypeError("keywords must be strings");e.push(n.toString()),e.push(i)})),e},Sk.abstr.keywordArrayToPyDict=function(t){const e=new Sk.builtin.dict;for(let n=0;ne.length)throw new Sk.builtin.TypeError(t+"() expected at most "+e.length+" arguments ("+r+" given)");if(!i.length&&void 0===s)return n;if(r===e.length&&!i.length)return n;if(0===r&&e.length===(s&&s.length))return s;for(n=n.slice(0),r=0;rvoid 0===n[e]))).length)throw new Sk.builtin.TypeError(t+"() missing "+e.length+" required positional arguments: "+e.join(", "))}return n},Sk.exportSymbol("Sk.abstr.copyKeywordsToNamedArgs",Sk.abstr.copyKeywordsToNamedArgs),Sk.abstr.checkNoKwargs=function(t,e){if(e&&e.length)throw new Sk.builtin.TypeError(t+"() takes no keyword arguments")},Sk.exportSymbol("Sk.abstr.checkNoKwargs",Sk.abstr.checkNoKwargs),Sk.abstr.checkNoArgs=function(t,e,n){if(e=e.length+(n?n.length:0))throw new Sk.builtin.TypeError(t+"() takes no arguments ("+e+" given)")},Sk.exportSymbol("Sk.abstr.checkNoArgs",Sk.abstr.checkNoArgs),Sk.abstr.checkOneArg=function(t,e,n){if(Sk.abstr.checkNoKwargs(t,n),1!==e.length)throw new Sk.builtin.TypeError(t+"() takes exactly one argument ("+e.length+" given)")},Sk.exportSymbol("Sk.abstr.checkOneArg",Sk.abstr.checkOneArg),Sk.abstr.checkArgsLen=function(t,e,n,i){if(void 0===i&&(i=1/0),(e=e.length)i)throw new Sk.builtin.TypeError((n===i?t+"() takes exactly "+n+" arguments":eSk.builtin.str&&Sk.builtin.str.$fixReserved?(a=Sk.builtin.str.$fixReserved,Sk.builtin.str.$fixReserved(t)):t;Sk.abstr.setUpGetSets=function(t,e){if(void 0!==Sk.builtin.getset_descriptor){var n=t.prototype;e=e||n.tp$getsets||{},Object.entries(e).forEach((e=>{var[i,s]=e;s.$name=i,n[a(i)]=new Sk.builtin.getset_descriptor(t,s)})),Object.defineProperty(n,"tp$getsets",{value:null,writable:!0})}},Sk.abstr.setUpMethods=function(t,e){if(void 0!==Sk.builtin.method_descriptor){var n=t.prototype;e=e||n.tp$methods||{},Object.entries(e).forEach((e=>{var[i,s]=e;s.$name=i,n[a(i)]=new Sk.builtin.method_descriptor(t,s)})),Object.defineProperty(n,"tp$methods",{value:null,writable:!0})}},Sk.abstr.setUpClassMethods=function(t,e){if(void 0!==Sk.builtin.classmethod_descriptor){var n=t.prototype;e=e||n.tp$classmethods||{},Object.entries(e).forEach((e=>{var[i,s]=e;s.$name=i,n[a(i)]=new Sk.builtin.classmethod_descriptor(t,s)})),Object.defineProperty(n,"tp$classmethods",{value:null,writable:!0})}};const l={Eq:"ob$eq",NotEq:"ob$ne",Gt:"ob$gt",GtE:"ob$ge",Lt:"ob$lt",LtE:"ob$le"},u=Object.entries(l);Sk.abstr.setUpSlots=function(t,e){function n(e,n){s[e]=new Sk.builtin.wrapper_descriptor(t,Sk.slots[e],n)}function i(t,e){"string"==typeof t?n(t,e):t.forEach((t=>{n(t,e)}))}if(void 0!==Sk.builtin.wrapper_descriptor){var s=t.prototype;(e=e||s.tp$slots||{}).tp$new===Sk.generic.new&&(e.tp$new=Sk.generic.new(t)),e.tp$richcompare?function(t){u.forEach((e=>{var[n,i]=e;t[i]=function(t){return this.tp$richcompare(t,n)}}))}(e):e.ob$eq&&(e.tp$richcompare=function(t,e){return this[l[e]].call(this,t)}),e.tp$as_number&&function(t){const e=Sk.reflectedNumberSlots;Object.keys(e).forEach((n=>{if(void 0!==t[n]){const i=e[n],s=i.reflected,r=t[s];void 0!==r?null===r&&delete t[s]:t[s]=i.slot||t[n]}}))}(e),e.tp$as_sequence_or_mapping&&function(t){const e=Sk.sequenceAndMappingSlots;Object.keys(e).forEach((n=>{void 0!==t[n]&&e[n].forEach((e=>{t[e]=t[n]}))}))}(e),Object.entries(e).forEach((t=>{var[e,n]=t;Object.defineProperty(s,e,{value:n,writable:!0})})),e.tp$new&&(s.__new__=new Sk.builtin.sk_method(Sk.generic.newMethodDef,t),Object.defineProperty(s,"sk$staticNew",{value:t,writable:!0})),Sk.subSlots.main_slots.forEach((t=>{var[n,s]=t;void 0!==(t=e[n])&&i(s,t)}));var r=e.tp$hash;void 0!==r&&("function"==typeof r?n("__hash__",r):r===Sk.builtin.none.none$?s.__hash__=r:Sk.asserts.fail("invalid tp$hash")),e.tp$as_number&&Sk.subSlots.number_slots.forEach((t=>{var[n,s]=t;void 0!==(t=e[n])&&i(s,t)})),e.tp$as_sequence_or_mapping&&Sk.subSlots.sequence_and_mapping_slots.forEach((t=>{var[n,s]=t;void 0!==(t=e[n])&&i(s,t)})),Object.defineProperty(s,"tp$slots",{value:null,writable:!0})}},Sk.abstr.buildNativeClass=function(t,e){e=e||{},Sk.asserts.assert(e.hasOwnProperty("constructor"),"A constructor is required to build a native class");let n=e.constructor;Sk.abstr.setUpInheritance(t,n,e.base,e.meta),Sk.abstr.setUpBuiltinMro(n);const i=n.prototype;return Object.defineProperties(i,{tp$slots:{value:e.slots,writable:!0},tp$getsets:{value:e.getsets,writable:!0},tp$methods:{value:e.methods,writable:!0},tp$classmethods:{value:e.classmethods,writable:!0}}),Sk.abstr.setUpSlots(n,e.slots||{}),Sk.abstr.setUpMethods(n,e.methods),Sk.abstr.setUpGetSets(n,e.getsets),Sk.abstr.setUpClassMethods(n,e.classmethods),Object.entries(e.proto||{}).forEach((t=>{var[e,n]=t;Object.defineProperty(i,e,{value:n,writable:!0,enumerable:!(e.includes("$")||e in Object.prototype)})})),Object.entries(e.flags||{}).forEach((t=>{var[e,i]=t;Object.defineProperty(n,e,{value:i,writable:!0})})),i.hasOwnProperty("tp$iter")&&(i[Symbol.iterator]=function(){return this.tp$iter()[Symbol.iterator]()}),void 0!==Sk.builtin.str&&i.hasOwnProperty("tp$doc")&&!i.hasOwnProperty("__doc__")&&(t=i.tp$doc||null,i.__doc__="string"==typeof t?new Sk.builtin.str(t):Sk.builtin.none.none$),n},Sk.abstr.buildIteratorClass=function(t,e){return Sk.asserts.assert(e.hasOwnProperty("constructor"),"must provide a constructor"),e.slots=e.slots||{},e.slots.tp$iter=Sk.generic.selfIter,e.slots.tp$iternext=e.slots.tp$iternext||e.iternext,e.slots.tp$getattr=e.slots.tp$getattr||Sk.generic.getAttr,t=Sk.abstr.buildNativeClass(t,e),Sk.abstr.built$iterators.push(t),t.prototype[Symbol.iterator]=function(){return{next:()=>{const t=this.tp$iternext();return{value:t,done:void 0===t}}}},t},Sk.abstr.built$iterators=[],Sk.abstr.setUpModuleMethods=function(t,e,n){return Object.entries(n).forEach((n=>{var[i,s]=n;s.$name=s.$name||i,e[i]=new Sk.builtin.sk_method(s,null,t)})),e},Sk.abstr.superConstructor=function(t,e,n){var i=Array.prototype.slice.call(arguments,2);t.prototype.tp$base.apply(e,i)}},function(t,e){function n(t){const e=t.prototype,n=e.tp$base;if(null==n)return!1;const i=n.prototype;return!(n.sk$solidSlotBase||t.sk$solidSlotBase||i.sk$hasDict!==e.sk$hasDict||n.sk$solidBase&&n!==Sk.builtin.module)}const i=new WeakMap;Sk.builtin.object=Sk.abstr.buildNativeClass("object",{constructor:function(){Sk.asserts.assert(this instanceof Sk.builtin.object,"bad call to object, use 'new'")},base:null,slots:{tp$new(t,e){if(t.length||e&&e.length){if(this.tp$new!==Sk.builtin.object.prototype.tp$new)throw new Sk.builtin.TypeError("object.__new__() takes exactly one argument (the type to instantiate)");if(this.tp$init===Sk.builtin.object.prototype.tp$init)throw new Sk.builtin.TypeError(Sk.abstr.typeName(this)+"() takes no arguments")}return new this.constructor},tp$init(t,e){if(t.length||e&&e.length){if(this.tp$init!==Sk.builtin.object.prototype.tp$init)throw new Sk.builtin.TypeError("object.__init__() takes exactly one argument (the instance to initialize)");if(this.tp$new===Sk.builtin.object.prototype.tp$new)throw new Sk.builtin.TypeError(Sk.abstr.typeName(this)+".__init__() takes exactly one argument (the instance to initialize)")}},tp$getattr:Sk.generic.getAttr,tp$setattr:Sk.generic.setAttr,$r(){const t=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$module);let e="";return t&&Sk.builtin.checkString(t)&&(e=t.v+"."),new Sk.builtin.str("<"+e+Sk.abstr.typeName(this)+" object>")},tp$str(){return this.$r()},tp$hash(){let t=i.get(this);return void 0!==t||(t=Math.floor(Math.random()*Number.MAX_SAFE_INTEGER-Number.MAX_SAFE_INTEGER/2),i.set(this,t)),t},tp$richcompare(t,e){switch(e){case"Eq":t=this===t||Sk.builtin.NotImplemented.NotImplemented$;break;case"NotEq":(t=this.ob$eq(t,"Eq"))!==Sk.builtin.NotImplemented.NotImplemented$&&(t=!Sk.misceval.isTrue(t));break;default:t=Sk.builtin.NotImplemented.NotImplemented$}return t},tp$doc:"The most base type"},getsets:{__class__:{$get(){return this.ob$type},$set(t){if(void 0===t)throw new Sk.builtin.TypeError("can't delete __class__ attribute");if(!Sk.builtin.checkClass(t))throw new Sk.builtin.TypeError("__class__ must be set to a class, not '"+Sk.abstr.typeName(t)+"' object");const e=this.ob$type;if(!(e.$isSubType(Sk.builtin.module)&&t.$isSubType(Sk.builtin.module)||void 0!==e.prototype.ht$type&&void 0!==t.prototype.ht$type))throw new Sk.builtin.TypeError(" __class__ assignment only supported for heap types or ModuleType subclasses");{let i=e,s=t;for(;n(i);)i=i.prototype.tp$base;for(;n(s);)s=s.prototype.tp$base;if(i!==s&&(i.prototype.tp$base!==s.prototype.tp$base||!function(t,e){t=t.prototype,e=e.prototype;const n=t.ht$slots,i=e.ht$slots;return t.sk$hasDict===e.sk$hasDict&&(n===i||(n&&i?n.length===i.length&&n.every(((t,e)=>t===i[e])):(n&&(n.length||null))===(i&&(i.length||null))))}(i,s)))throw new Sk.builtin.TypeError("__class__ assignment: '"+t.prototype.tp$name+"' object layout differs from '"+e.prototype.tp$name+"'")}Object.setPrototypeOf(this,t.prototype)},$doc:"the object's class"}},methods:{__dir__:{$meth:function(){let t=Sk.abstr.lookupAttr(this,Sk.builtin.str.$dict);t=void 0===t?new Sk.builtin.dict([]):t instanceof Sk.builtin.dict?t.dict$copy():new Sk.builtin.dict([]);const e=Sk.abstr.lookupAttr(this,Sk.builtin.str.$class);return void 0!==e&&e.$mergeClassDict(t),new Sk.builtin.list(t.sk$asarray())},$flags:{NoArgs:!0},$doc:"Default dir() implementation."},__format__:{$meth(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__format__() argument must be str, not "+Sk.abstr.typeName(t));if(t!==Sk.builtin.str.$empty)throw new Sk.builtin.TypeError(`unsupported format string passed to ${Sk.abstr.typeName(this)}.__format__`);return this.tp$str()},$flags:{OneArg:!0},$doc:"Default object formatter."}},classmethods:{__init_subclass__:{$meth:t=>Sk.builtin.none.none$,$flags:{FastCall:!0,NoKwargs:!0}}},proto:{valueOf:Object.prototype.valueOf,toString(){return this.tp$str().v},hasOwnProperty:Object.prototype.hasOwnProperty,ht$type:void 0,sk$attrError(){return"'"+this.tp$name+"' object"},$mergeClassDict(t){var e=Sk.abstr.lookupAttr(this,Sk.builtin.str.$dict);if(void 0!==e&&t.dict$merge(e),void 0!==(e=Sk.abstr.lookupAttr(this,Sk.builtin.str.$bases))){var n=Sk.builtin.len(e).valueOf();for(let i=0;ivoid 0===t?Sk.builtin.none.none$:t))}function r(t,e,n){return Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,1,2),void 0===(t=this.call(t,...e))?Sk.builtin.none.none$:t}function o(t,e,n){return Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,2,2),Sk.misceval.chain(this.call(t,e[0],e[1],!0),(()=>Sk.builtin.none.none$))}function a(t,e,n){return Sk.abstr.checkOneArg(this.$name,e,n),t=this.call(t,e[0],void 0,!0),Sk.misceval.chain(t,(t=>void 0===t?Sk.builtin.none.none$:t))}function l(t,e,n){return(t=i.call(this,t,e,n))===Sk.builtin.NotImplemented.NotImplemented$?t:new Sk.builtin.bool(t)}function u(t,e,n){return function(i,s,r){return i=t.call(this,i,s,r),n?Sk.misceval.chain(i,e):e(Sk.misceval.retryOptionalSuspensionOrThrow(i))}}function c(t){return function(){const e=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return Sk.misceval.callsimArray(e,[])}}function p(t,e,n,i){return function(s){return function(){var r=s.tp$descr_get?s.tp$descr_get(this,this.ob$type):s;if(r=Sk.misceval.callsimArray(r,[]),!e(r))throw new Sk.builtin.TypeError(t+" should return "+n+" (returned "+Sk.abstr.typeName(r)+")");return void 0!==i?i(r):r}}}function h(t){return function(e){const n=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return Sk.misceval.callsimArray(n,[e])}}function _(t,e){let n=this.ob$type.$typeLookup(Sk.builtin.str.$getattribute);if(n instanceof Sk.builtin.wrapper_descriptor)return n.d$wrapped.call(this,t,e);n.tp$descr_get&&(n=n.tp$descr_get(this,this.ob$type));const i=Sk.misceval.tryCatch((()=>Sk.misceval.callsimOrSuspendArray(n,[t])),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t}));return e?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}function d(t,e,n){return function(i){return function(i,s,r){let o;void 0===s?(o=e,n=null):o=t;let a=this.ob$type.$typeLookup(new Sk.builtin.str(o));if(a instanceof Sk.builtin.wrapper_descriptor)return a.d$wrapped.call(this,i,s);if(a.tp$descr_get&&(a=a.tp$descr_get(this,this.ob$type,r)),void 0===a){if(n)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this)+"' object "+n);throw new Sk.builtin.AttributeError(o)}return i=Sk.misceval.callsimOrSuspendArray(a,void 0===s?[i]:[i,s]),r?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}}}function f(t,e){let n=t.ob$type;for(;n&&void 0!==n.sk$klass;)n=n.prototype.tp$base;if(n&&n.prototype.tp$setattr!==e)throw new Sk.builtin.TypeError("can't apply this "+e.$name+" to "+Sk.abstr.typeName(t)+" object")}Sk.slots=Object.create(null),t=Sk.slots,Sk.slots.__init__={$name:"__init__",$slot_name:"tp$init",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(i,e,n),Sk.misceval.chain(e,(t=>{if(!Sk.builtin.checkNone(t)&&void 0!==t)throw new Sk.builtin.TypeError("__init__() should return None, not "+Sk.abstr.typeName(t))}))}},$wrapper:function(t,e,n){return this.call(t,e,n),Sk.builtin.none.none$},$textsig:"($self, /, *args, **kwargs)",$flags:{FastCall:!0},$doc:"Initialize self. See help(type(self)) for accurate signature."},t.__new__={$name:"__new__",$slot_name:"tp$new",$slot_func:function(t){const e=function(e,n){let i=t;return t.tp$descr_get&&(i=t.tp$descr_get(null,this.constructor)),Sk.misceval.callsimOrSuspendArray(i,[this.constructor,...e],n)};return e.sk$static_new=!1,e},$wrapper:null,$textsig:"($self, /, *args, **kwargs)",$flags:{FastCall:!0},$doc:"Create and return a new object."},t.__call__={$name:"__call__",$slot_name:"tp$call",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return Sk.misceval.callsimOrSuspendArray(i,e,n)}},$wrapper:function(t,e,n){return void 0===(t=t.tp$call(e,n))?Sk.builtin.none.none$:t},$textsig:"($self, /, *args, **kwargs)",$flags:{FastCall:!0},$doc:"Call self as a function."},t.__repr__={$name:"__repr__",$slot_name:"$r",$slot_func:p("__repr__",Sk.builtin.checkString,"str"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return repr(self)."},t.__str__={$name:"__str__",$slot_name:"tp$str",$slot_func:p("__str__",Sk.builtin.checkString,"str"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return str(self)."};var m=p("__hash__",Sk.builtin.checkInt,"int",(t=>"number"==typeof t.v?t.v:t.tp$hash()));t.__hash__={$name:"__hash__",$slot_name:"tp$hash",$slot_func:function(t){return t===Sk.builtin.none.none$?Sk.builtin.none.none$:m(t)},$wrapper:u(n,(t=>new Sk.builtin.int_(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return hash(self)."},t.__getattribute__={$name:"__getattribute__",$slot_name:"tp$getattr",$slot_func:function(t){return function(t,e){let n=this.ob$type.$typeLookup(Sk.builtin.str.$getattr);if(void 0===n)return _.call(this,t,e);const i=Sk.misceval.chain(_.call(this,t,e),(e=>Sk.misceval.tryCatch((()=>void 0!==e?e:(n.tp$descr_get&&(n=n.tp$descr_get(this,this.ob$type)),Sk.misceval.callsimOrSuspendArray(n,[t]))),(function(t){if(!(t instanceof Sk.builtin.AttributeError))throw t}))));return e?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}},$wrapper:function(t,e,n){Sk.abstr.checkOneArg(this.$name,e,n);const i=e[0];if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("attribute name must be string, not '"+Sk.abstr.typeName(i)+"'");return e=this.call(t,i,!0),Sk.misceval.chain(e,(e=>{if(void 0===e)throw new Sk.builtin.AttributeError(Sk.abstr.typeName(t)+" has no attribute "+i.$jsstr());return e}))},$textsig:"($self, name, /)",$flags:{OneArg:!0},$doc:"Return getattr(self, name)."},t.__getattr__={$name:"__getattr__",$slot_name:"tp$getattr",$slot_func:t.__getattribute__.$slot_func,$wrapper:null,$textsig:"($self, name, /)",$flags:{OneArg:!0},$doc:"Return getattr(self, name)."},t.__setattr__={$name:"__setattr__",$slot_name:"tp$setattr",$slot_func:d("__setattr__","__delattr__"),$wrapper:function(t,e,n){return Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,2,2),f(t,this),Sk.misceval.chain(this.call(t,e[0],e[1],!0),(()=>Sk.builtin.none.none$))},$textsig:"($self, name, value, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Implement setattr(self, name, value)."},t.__delattr__={$name:"__delattr__",$slot_name:"tp$setattr",$slot_func:t.__setattr__.$slot_func,$wrapper:function(t,e,n){return Sk.abstr.checkOneArg(this.$name,e,n),f(t,this),this.call(t,e[0]),Sk.builtin.none.none$},$textsig:"($self, name, /)",$flags:{OneArg:!0},$doc:"Implement delattr(self, name)."},t.__get__={$name:"__get__",$slot_name:"tp$descr_get",$slot_func:function(t){return function(e,n,i){null===e&&(e=Sk.builtin.none.none$),null==n&&(n=Sk.builtin.none.none$);const s=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(s,[e,n]),i?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)}},$wrapper:function(t,e,n){if(Sk.abstr.checkNoKwargs(this.$name,n),Sk.abstr.checkArgsLen(this.$name,e,1,2),n=e[0],e=e[1],n===Sk.builtin.none.none$&&(n=null),e===Sk.builtin.none.none$&&(e=null),null===e&&null===n)throw new Sk.builtin.TypeError("__get__(None, None) is invalid");return this.call(t,n,e,!0)},$textsig:"($self, instance, owner, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Return an attribute of instance, which is of type owner."},t.__set__={$name:"__set__",$slot_name:"tp$descr_set",$slot_func:d("__set__","__delete__"),$wrapper:o,$textsig:"($self, instance, value, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Set an attribute of instance to value."},t.__delete__={$name:"__delete__",$slot_name:"tp$descr_set",$slot_func:t.__set__.$slot_func,$wrapper:a,$textsig:"($self, instance, /)",$flags:{OneArg:!0},$doc:"Delete an attribute of instance."},t.__eq__={$name:"__eq__",$slot_name:"ob$eq",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self==value."},t.__ge__={$name:"__ge__",$slot_name:"ob$ge",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self>=value."},t.__gt__={$name:"__gt__",$slot_name:"ob$gt",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self>value."},t.__le__={$name:"__le__",$slot_name:"ob$le",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self<=value."},t.__lt__={$name:"__lt__",$slot_name:"ob$lt",$slot_func:h,$wrapper:l,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return selfSk.misceval.callsimOrSuspendArray(n,[])),(t=>{if(!(t instanceof Sk.builtin.StopIteration))throw t;this.gi$ret=t.$value}));return e?i:Sk.misceval.retryOptionalSuspensionOrThrow(i)}},$wrapper:function(t,e,n){return Sk.abstr.checkNoArgs(this.$name,e,n),Sk.misceval.chain(t.tp$iternext(!0),(t=>{if(void 0===t)throw new Sk.builtin.StopIteration;return t}))},$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Implement next(self)."},t.__len__={$name:"__len__",$slot_name:"sq$length",$slot_func:function(t){return function(e){const n=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e?(e=Sk.misceval.callsimOrSuspendArray(n,[]),Sk.misceval.chain(e,(t=>Sk.misceval.asIndexOrThrow(t)))):(e=Sk.misceval.callsimArray(n,[]),Sk.misceval.asIndexOrThrow(e))}},$wrapper:u((function(t,e,n){return Sk.abstr.checkNoArgs(this.$name,e,n),t=this.call(t,!0),Sk.misceval.chain(t,(t=>void 0===t?Sk.builtin.none.none$:t))}),(t=>new Sk.builtin.int_(t)),!0),$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return len(self)."},t.__contains__={$name:"__contains__",$slot_name:"sq$contains",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(i,[e]),(e=Sk.misceval.chain(e,(t=>Sk.misceval.isTrue(t)))).$isSuspension?n?e:Sk.misceval.retryOptionalSuspensionOrThrow(e):e}},$wrapper:u(s,(t=>new Sk.builtin.bool(t)),!0),$textsig:"($self, key, /)",$flags:{OneArg:!0},$doc:"Return key in self."},t.__getitem__={$name:"__getitem__",$slot_name:"mp$subscript",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return e=Sk.misceval.callsimOrSuspendArray(i,[e]),n?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)}},$wrapper:s,$textsig:"($self, key, /)",$flags:{OneArg:!0},$doc:"Return self[key]."},t.__setitem__={$name:"__setitem__",$slot_name:"mp$ass_subscript",$slot_func:d("__setitem__","__delitem__","does not support item assignment"),$wrapper:o,$textsig:"($self, key, value, /)",$flags:{MinArgs:2,MaxArgs:2},$doc:"Set self[key] to value."},t.__delitem__={$name:"__delitem__",$slot_name:"mp$ass_subscript",$slot_func:t.__setitem__.$slot_func,$wrapper:a,$textsig:"($self, key, /)",$flags:{OneArg:!0},$doc:"Delete self[key]."},t.__add__={$name:"__add__",$slot_name:"nb$add",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self+value."},t.__radd__={$name:"__radd__",$slot_name:"nb$reflected_add",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value+self."},t.__iadd__={$name:"__iadd__",$slot_name:"nb$inplace_add",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self+=value."},t.__sub__={$name:"__sub__",$slot_name:"nb$subtract",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self-value."},t.__rsub__={$name:"__rsub__",$slot_name:"nb$reflected_subtract",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value-self."},t.__imul__={$name:"__imul__",$slot_name:"nb$inplace_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self*=value."},t.__mul__={$name:"__mul__",$slot_name:"nb$multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self*value."},t.__rmul__={$name:"__rmul__",$slot_name:"nb$reflected_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value*self."},t.__isub__={$name:"__isub__",$slot_name:"nb$inplace_subtract",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self-=value."},t.__mod__={$name:"__mod__",$slot_name:"nb$remainder",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self%value."},t.__rmod__={$name:"__rmod__",$slot_name:"nb$reflected_remainder",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value%self."},t.__imod__={$name:"__imod__",$slot_name:"nb$inplace_remainder",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement value%=self."},t.__divmod__={$name:"__divmod__",$slot_name:"nb$divmod",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return divmod(self, value)."},t.__rdivmod__={$name:"__rdivmod__",$slot_name:"nb$reflected_divmod",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return divmod(value, self)"},t.__pos__={$name:"__pos__",$slot_name:"nb$positive",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"+self"},t.__neg__={$name:"__neg__",$slot_name:"nb$negative",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"-self"},t.__abs__={$name:"__abs__",$slot_name:"nb$abs",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"abs(self)"},t.__bool__={$name:"__bool__",$slot_name:"nb$bool",$slot_func:p("__bool__",Sk.builtin.checkBool,"bool",(t=>0!==t.v)),$wrapper:u(n,(t=>new Sk.builtin.bool(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"self != 0"},t.__invert__={$name:"__invert__",$slot_name:"nb$invert",$slot_func:c,$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"~self"},t.__lshift__={$name:"__lshift__",$slot_name:"nb$lshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self<>value."},t.__rrshift__={$name:"__rrshift__",$slot_name:"nb$reflected_rshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value>>self."},t.__ilshift__={$name:"__ilshift__",$slot_name:"nb$inplace_lshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self<<=value."},t.__irshift__={$name:"__irshift__",$slot_name:"nb$inplace_rshift",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self=>>value."},t.__and__={$name:"__and__",$slot_name:"nb$and",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self&value."},t.__rand__={$name:"__rand__",$slot_name:"nb$refelcted_and",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value&self."},t.__iand__={$name:"__iand__",$slot_name:"nb$and",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self&=value."},t.__xor__={$name:"__xor__",$slot_name:"nb$xor",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self^value."},t.__rxor__={$name:"__rxor__",$slot_name:"nb$reflected_xor",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value^self."},t.__ixor__={$name:"__ixor__",$slot_name:"nb$inplace_xor",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self^=value."},t.__or__={$name:"__or__",$slot_name:"nb$or",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self|value."},t.__ror__={$name:"__ror__",$slot_name:"nb$reflected_or",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value|self."},t.__ior__={$name:"__ior__",$slot_name:"nb$inplace_or",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self|=value."},t.__int__={$name:"__int__",$slot_name:"nb$int",$slot_func:p("__int__",Sk.builtin.checkInt,"int"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"int(self)"},t.__float__={$name:"__float__",$slot_name:"nb$float",$slot_func:p("__float__",Sk.builtin.checkFloat,"float"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"float(self)"},t.__floordiv__={$name:"__floordiv__",$slot_name:"nb$floor_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self//value."},t.__rfloordiv__={$name:"__rfloordiv__",$slot_name:"nb$reflected_floor_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value//self."},t.__ifloordiv__={$name:"__ifloordiv__",$slot_name:"nb$inplace_floor_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self//=value."},t.__truediv__={$name:"__truediv__",$slot_name:"nb$divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self/value."},t.__rtruediv__={$name:"__rtruediv__",$slot_name:"nb$reflected_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value/self."},t.__itruediv__={$name:"__itruediv__",$slot_name:"nb$inplace_divide",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self/=value."},t.__index__={$name:"__index__",$slot_name:"nb$index",$slot_func:p("__index__",Sk.builtin.checkInt,"int",(t=>t.v)),$wrapper:u(n,(t=>new Sk.builtin.int_(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"Return self converted to an integer, if self is suitable for use as an index into a list."},t.__pow__={$name:"__pow__",$slot_name:"nb$power",$slot_func:function(t){return function(e,n){const i=t.tp$descr_get?t.tp$descr_get(this,this.ob$type):t;return null==n?Sk.misceval.callsimArray(i,[e]):Sk.misceval.callsimArray(i,[e,n])}},$wrapper:r,$textsig:"($self, value, mod=None, /)",$flags:{MinArgs:1,MaxArgs:2},$doc:"Return pow(self, value, mod)."},t.__rpow__={$name:"__rpow__",$slot_name:"nb$reflected_power",$slot_func:t.__pow__.$slot_func,$wrapper:r,$textsig:"($self, value, mod=None, /)",$flags:{MinArgs:1,MaxArgs:2},$doc:"Return pow(value, self, mod)."},t.__ipow__={$name:"__ipow__",$slot_name:"nb$inplace_power",$slot_func:t.__pow__.$slot_func,$wrapper:r,$textsig:"($self, value, mod=None, /)",$flags:{MinArgs:1,MaxArgs:2},$doc:"Implement **="},t.__matmul__={$name:"__matmul__",$slot_name:"nb$matrix_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return self@value."},t.__rmatmul__={$name:"__rmatmul__",$slot_name:"nb$reflected_matrix_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Return value@self."},t.__imatmul__={$name:"__imatmul__",$slot_name:"nb$inplace_matrix_multiply",$slot_func:h,$wrapper:i,$textsig:"($self, value, /)",$flags:{OneArg:!0},$doc:"Implement self@=value."},t.__long__={$name:"__long__",$slot_name:"nb$long",$slot_func:p("__long__",Sk.builtin.checkInt,"int"),$wrapper:n,$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"int(self)"};var g,b={next:{$name:"next",$slot_name:"tp$iternext",$slot_func:t.__next__.$slot_func,$wrapper:t.__next__.$wrapper,$textsig:t.__next__.$textsig,$flags:t.__next__.$flags},__nonzero__:{$name:"__nonzero__",$slot_name:"nb$bool",$slot_func:p("__nonzero__",Sk.builtin.checkInt,"int",(t=>0!==t.v)),$wrapper:u(n,(t=>new Sk.builtin.bool(t))),$textsig:"($self, /)",$flags:{NoArgs:!0},$doc:"x.__nonzero__() <==> x != 0"},__div__:{$name:"__div__",$slot_name:"nb$divide",$slot_func:h,$wrapper:i,$textsig:"($self, other/)",$flags:{OneArg:!0},$doc:"x.__div__(y) <==> x/y"},__rdiv__:{$name:"__rdiv__",$slot_name:"nb$reflected_divide",$slot_func:h,$wrapper:i,$textsig:"($self, other/)",$flags:{OneArg:!0},$doc:"x.__rdiv__(y) <==> x/y"},__idiv__:{$name:"__idiv__",$slot_name:"nb$inplace_divide",$slot_func:h,$wrapper:i,$textsig:"($self, other/)",$flags:{OneArg:!0},$doc:"implement self /= other"}};Sk.subSlots={main_slots:Object.entries({tp$init:"__init__",tp$call:"__call__",$r:"__repr__",tp$str:"__str__",tp$getattr:"__getattribute__",tp$setattr:["__setattr__","__delattr__"],ob$eq:"__eq__",ob$ne:"__ne__",ob$lt:"__lt__",ob$le:"__le__",ob$gt:"__gt__",ob$ge:"__ge__",tp$descr_get:"__get__",tp$descr_set:["__set__","__delete__"],tp$iter:"__iter__",tp$iternext:"__next__"}),number_slots:Object.entries({nb$abs:"__abs__",nb$negative:"__neg__",nb$positive:"__pos__",nb$int:"__int__",nb$long:"__long__",nb$float:"__float__",nb$index:"__index__",nb$add:"__add__",nb$reflected_add:"__radd__",nb$inplace_add:"__iadd__",nb$subtract:"__sub__",nb$reflected_subtract:"__rsub__",nb$inplace_subtract:"__isub__",nb$multiply:"__mul__",nb$reflected_multiply:"__rmul__",nb$inplace_multiply:"__imul__",nb$floor_divide:"__floordiv__",nb$reflected_floor_divide:"__rfloordiv__",nb$inplace_floor_divide:"__ifloordiv__",nb$invert:"__invert__",nb$remainder:"__mod__",nb$reflected_remainder:"__rmod__",nb$inplace_remainder:"__imod__",nb$divmod:"__divmod__",nb$reflected_divmod:"__rdivmod__",nb$power:"__pow__",nb$reflected_power:"__rpow__",nb$inplace_power:"__ipow__",nb$divide:"__truediv__",nb$reflected_divide:"__rtruediv__",nb$inplace_divide:"__itruediv__",nb$bool:"__bool__",nb$and:"__and__",nb$reflected_and:"__rand__",nb$inplace_and:"__iand__",nb$or:"__or__",nb$reflected_or:"__ror__",nb$inplace_or:"__ior__",nb$xor:"__xor__",nb$reflected_xor:"__rxor__",nb$inplace_xor:"__ixor__",nb$lshift:"__lshift__",nb$reflected_lshift:"__rlshift__",nb$rshift:"__rshift__",nb$reflected_rshift:"__rrshift__",nb$inplace_lshift:"__ilshift__",nb$inplace_rshift:"__irshift__",nb$matrix_multiply:"__matmul__",nb$reflected_matrix_multiply:"__rmatmul__",nb$inplace_matrix_multiply:"__imatmul__"}),sequence_and_mapping_slots:Object.entries({sq$length:"__len__",sq$contains:"__contains__",mp$subscript:"__getitem__",mp$ass_subscript:["__setitem__","__delitem__"],nb$add:"__add__",nb$multiply:"__mul__",nb$reflected_multiply:"__rmul__",nb$inplace_add:"__iadd__",nb$inplace_multiply:"__imul__"})},Sk.reflectedNumberSlots={nb$add:{reflected:"nb$reflected_add"},nb$subtract:{reflected:"nb$reflected_subtract",slot:function(t){return t instanceof this.constructor?t.nb$subtract(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$multiply:{reflected:"nb$reflected_multiply"},nb$divide:{reflected:"nb$reflected_divide",slot:function(t){return t instanceof this.constructor?t.nb$divide(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$floor_divide:{reflected:"nb$reflected_floor_divide",slot:function(t){return t instanceof this.constructor?t.nb$floor_divide(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$remainder:{reflected:"nb$reflected_remainder",slot:function(t){return t instanceof this.constructor?t.nb$remainder(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$divmod:{reflected:"nb$reflected_divmod",slot:function(t){return t instanceof this.constructor?t.nb$divmod(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$power:{reflected:"nb$reflected_power",slot:function(t,e){return t instanceof this.constructor?t.nb$power(this,e):Sk.builtin.NotImplemented.NotImplemented$}},nb$and:{reflected:"nb$reflected_and"},nb$or:{reflected:"nb$reflected_or"},nb$xor:{reflected:"nb$reflected_xor"},nb$lshift:{reflected:"nb$reflected_lshift",slot:function(t){return t instanceof this.constructor?t.nb$lshift(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$rshift:{reflected:"nb$reflected_rshift",slot:function(t){return t instanceof this.constructor?t.nb$rshift(this):Sk.builtin.NotImplemented.NotImplemented$}},nb$matrix_multiply:{reflected:"nb$reflexted_matrix_multiply",slot:function(t){return t instanceof this.constructor?t.nb$matrix_multiply(this):Sk.builtin.NotImplemented.NotImplemented$}}},Sk.sequenceAndMappingSlots={sq$concat:["nb$add"],sq$repeat:["nb$multiply","nb$reflected_multiply"],mp$length:["sq$length"],sq$inplace_repeat:["nb$inplace_multiply"],sq$inplace_concat:["nb$inplace_add"]},Sk.dunderToSkulpt={__repr__:"$r",__str__:"tp$str",__init__:"tp$init",__new__:"tp$new",__hash__:"tp$hash",__call__:"tp$call",__iter__:"tp$iter",__next__:"tp$iternext",__eq__:"ob$eq",__ne__:"ob$ne",__lt__:"ob$lt",__le__:"ob$le",__gt__:"ob$gt",__ge__:"ob$ge",__abs__:"nb$abs",__neg__:"nb$negative",__pos__:"nb$positive",__int__:"nb$int",__float__:"nb$float",__index__:"nb$index",__add__:"nb$add",__radd__:"nb$reflected_add",__iadd__:"nb$inplace_add",__sub__:"nb$subtract",__rsub__:"nb$reflected_subtract",__isub__:"nb$inplace_subtract",__mul__:"nb$multiply",__rmul__:"nb$reflected_multiply",__imul__:"nb$inplace_multiply",__truediv__:"nb$divide",__rtruediv__:"nb$reflected_divide",__itruediv__:"nb$inplace_divide",__floordiv__:"nb$floor_divide",__rfloordiv__:"nb$reflected_floor_divide",__ifloordiv__:"nb$inplace_floor_divide",__invert__:"nb$invert",__mod__:"nb$remainder",__rmod__:"nb$reflected_remainder",__imod__:"nb$inplace_remainder",__divmod__:"nb$divmod",__rdivmod__:"nb$reflected_divmod",__pow__:"nb$power",__rpow__:"nb$reflected_power",__ipow__:"nb$inplace_power",__bool__:"nb$bool",__long__:"nb$long",__lshift__:"nb$lshift",__rlshift__:"nb$reflected_lshift",__ilshift__:"nb$inplace_lshift",__rshift__:"nb$rshift",__rrshift__:"nb$reflected_rshift",__irshift__:"nb$inplace_rshift",__and__:"nb$and",__rand__:"nb$reflected_and",__iand__:"nb$inplace_and",__or__:"nb$or",__ror__:"nb$reflected_or",__ior__:"nb$inplace_or",__xor__:"nb$xor",__rxor__:"nb$reflected_xor",__ixor__:"nb$inplace_xor",__matmul__:"nb$matrix_multiply",__rmatmul__:"nb$reflected_matrix_multiply",__imatmul__:"nb$inplace_matrix_multiply",__get__:"tp$descr_get",__set__:"tp$descr_set",__delete__:"tp$descr_set",__getattribute__:"tp$getattr",__getattr__:"tp$getattr",__setattr__:"tp$setattr",__delattr__:"tp$setattr",__len__:"sq$length",__contains__:"sq$contains",__getitem__:"mp$subscript",__setitem__:"mp$ass_subscript",__delitem__:"mp$ass_subscript"},Sk.exportSymbol("Sk.setupDunderMethods",Sk.setupDunderMethods),Sk.setupDunderMethods=function(t){function e(t,e,n){for(let i=0;i"tp$iternext"===t[0])),l=r.findIndex((t=>"nb$bool"===t[0])),u=Sk.dunderToSkulpt;if(t){u.__bool__="nb$bool",u.__next__="tp$iternext",delete u.__nonzero__,delete u.__div__,delete u.__rdiv__,delete u.__idiv__,delete u.next;for(let t in g)n[t]=g[t];for(let t in b)delete n[t];for(t=0;t")}const o={__doc__:{$get(){return this.d$def.$doc?new Sk.builtin.str(this.d$def.$doc):Sk.builtin.none.none$}},__objclass__:{$get(){return this.d$type}},__name__:{$get(){return new Sk.builtin.str(this.d$name)}}};t={__text_signature__:{$get(){return this.d$def.$textsig?new Sk.builtin.str(this.d$def.$textsig):Sk.builtin.none.none$}}},Sk.builtin.getset_descriptor=n("getset_descriptor",void 0,{constructor:function(t,e){this.d$def=e,this.$get=e.$get,this.$set=e.$set,this.d$type=t,this.d$name=e.$name},slots:{tp$descr_get(t,e,n){if(e=this.d$check(t))return e;if(void 0!==this.$get)return t=this.$get.call(t),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t);throw new Sk.builtin.AttributeError("getset_descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' objects is not readable")},tp$descr_set(t,e,n){if(this.d$set_check(t),void 0!==this.$set)return t=this.$set.call(t,e),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t);throw new Sk.builtin.AttributeError("attribute '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' objects is readonly")}}}),Sk.builtin.method_descriptor=n("method_descriptor","method",{constructor:function(t,e){this.d$def=e,this.$meth=e.$meth,this.d$type=t,this.d$name=e.$name||"",this.$flags=t=e.$flags||{},t.FastCall&&t.NoKwargs?this.tp$call=this.$methodFastCallNoKwargs:t.FastCall?this.tp$call=this.$methodFastCall:t.NoArgs?this.tp$call=this.$methodCallNoArgs:t.OneArg?this.tp$call=this.$methodCallOneArg:t.NamedArgs?this.tp$call=this.$methodCallNamedArgs:void 0!==t.MinArgs?this.tp$call=this.$methodCallMinArgs:(this.func_code=e.$meth,this.tp$call=this.$defaultCall,this.$memoiseFlags=Sk.builtin.func.prototype.$memoiseFlags,this.$resolveArgs=Sk.builtin.func.prototype.$resolveArgs)},slots:{tp$call(t,e){return this.tp$call(t,e)},tp$descr_get(t,e){let n;return(n=this.d$check(t))?n:new Sk.builtin.sk_method(this.d$def,t)}},getsets:t,proto:{$methodFastCall(t,e){const n=t.shift();return this.m$checkself(n),this.$meth.call(n,t,e)},$methodFastCallNoKwargs(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkNoKwargs(this.d$name,e),this.$meth.call(n,t)},$methodCallNoArgs(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkNoArgs(this.d$name,t,e),this.$meth.call(n)},$methodCallOneArg(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkOneArg(this.d$name,t,e),this.$meth.call(n,t[0])},$methodCallNamedArgs(t,e){const n=t.shift();return this.m$checkself(n),t=Sk.abstr.copyKeywordsToNamedArgs(this.d$name,this.$flags.NamedArgs,t,e,this.$flags.Defaults),this.$meth.call(n,...t)},$methodCallMinArgs(t,e){const n=t.shift();return this.m$checkself(n),Sk.abstr.checkNoKwargs(this.d$name,e),Sk.abstr.checkArgsLen(this.d$name,t,this.$flags.MinArgs,this.$flags.MaxArgs),this.$meth.call(n,...t)},$defaultCall(t,e){return this.m$checkself(t[0]),Sk.builtin.func.prototype.tp$call.call(this,t,e)},m$checkself(t){if(void 0===t)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' object needs an argument");this.d$check(t)}}}),Sk.builtin.wrapper_descriptor=n("wrapper_descriptor","slot wrapper",{constructor:function(t,e,n){this.d$def=e,this.d$type=t,this.d$name=n.$name=e.$name,this.d$wrapped=n},slots:{tp$descr_get(t,e){let n;return(n=this.d$check(t))?n:new Sk.builtin.method_wrapper(this,t)},tp$call(t,e){if(1>t.length)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' object needs an argument");const n=t.shift();if(!n.ob$type.$isSubType(this.d$type))throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' requires a '"+this.d$type.prototype.tp$name+"' object but received a '"+Sk.abstr.typeName(n)+"'");return this.raw$call(n,t,e)}},proto:{raw$call(t,e,n){return this.d$wrapped.$name=this.d$name,this.d$def.$wrapper.call(this.d$wrapped,t,e,n)}}}),Sk.builtin.method_wrapper=n("method_wrapper",void 0,{constructor:function(t,e){this.m$descr=t,this.m$self=e,this.d$def=t.d$def,this.d$name=t.d$name,this.d$type=t.d$type},slots:{tp$call(t,e){return this.m$descr.raw$call(this.m$self,t,e)},tp$richcompare(t,e){return("Eq"===e||"NotEq"===e)&&t instanceof Sk.builtin.method_wrapper?(t=this.m$self===t.m$self&&this.m$descr===t.m$descr,"Eq"===e?t:!t):Sk.builtin.NotImplemented.NotImplemented$},$r(){return new Sk.builtin.str("")}},getsets:{__self__:{$get(){return this.m$self}}}}),Sk.builtin.classmethod_descriptor=n("classmethod_descriptor","method",{constructor:function(t,e){this.d$def=e,this.$meth=e.$meth,this.d$type=t,this.d$name=e.$name||""},slots:{tp$call(t,e){if(1>t.length)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' of '"+this.d$type.prototype.tp$name+"' object needs an argument");const n=t.shift();return this.tp$descr_get(null,n).tp$call(t,e)},tp$descr_get(t,e,n){if(void 0===e){if(null===t)throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' for type '"+this.d$type.prototype.tp$name+"' needs an object or a type");e=e||t.ob$type}if(!e.ob$type.$isSubType(Sk.builtin.type))throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' for type '"+this.d$type.prototype.tp$name+"' needs a type not a '"+Sk.abstr.typeName(e)+"' as arg 2");if(!e.$isSubType(this.d$type))throw new Sk.builtin.TypeError("descriptor '"+this.d$name+"' requires a '"+this.d$type.prototype.tp$name+"' object but received a '"+Sk.abstr.typeName(e)+"' object");return new Sk.builtin.sk_method(this.d$def,e)}},getsets:t}),[Sk.builtin.method_descriptor,Sk.builtin.getset_descriptor,Sk.builtin.wrapper_descriptor,Sk.builtin.method_wrapper,Sk.builtin.classmethod_descriptor].forEach((t=>{Sk.abstr.setUpSlots(t),Sk.abstr.setUpMethods(t),Sk.abstr.setUpGetSets(t)}))},function(t,e){Sk.builtin.sk_method=Sk.abstr.buildNativeClass("builtin_function_or_method",{constructor:function(t,e,n){this.$meth=t.$meth.bind(e),this.$doc=t.$doc,this.$self=e||null,this.$module=n?new Sk.builtin.str(n):null,this.$name=t.$name||t.$meth.name||"",this.m$def=t,this.$textsig=t.$textsig,this.$flags=t=t.$flags||{},t.FastCall&&t.NoKwargs?this.tp$call=this.$fastCallNoKwargs:t.FastCall?this.tp$call=this.$meth:t.NoArgs?this.tp$call=this.$callNoArgs:t.OneArg?this.tp$call=this.$callOneArg:t.NamedArgs?this.tp$call=this.$callNamedArgs:void 0!==t.MinArgs?this.tp$call=this.$callMinArgs:(this.func_code=this.$meth,this.tp$call=this.$defaultCallMethod)},proto:{$fastCallNoKwargs(t,e){return Sk.abstr.checkNoKwargs(this.$name,e),this.$meth(t)},$callNoArgs(t,e){return Sk.abstr.checkNoArgs(this.$name,t,e),this.$meth()},$callOneArg(t,e){return Sk.abstr.checkOneArg(this.$name,t,e),this.$meth(t[0])},$callNamedArgs(t,e){return t=Sk.abstr.copyKeywordsToNamedArgs(this.$name,this.$flags.NamedArgs,t,e,this.$flags.Defaults),this.$meth(...t)},$callMinArgs(t,e){return Sk.abstr.checkNoKwargs(this.$name,e),Sk.abstr.checkArgsLen(this.$name,t,this.$flags.MinArgs,this.$flags.MaxArgs),this.$meth(...t)},$defaultCallMethod(t,e){return null!==this.$self?Sk.builtin.func.prototype.tp$call.call(this,[this.$self,...t],e):Sk.builtin.func.prototype.tp$call.call(this,t,e)},$memoiseFlags(){return Sk.builtin.func.prototype.$memoiseFlags.call(this)},$resolveArgs(){return Sk.builtin.func.prototype.$resolveArgs.call(this)}},flags:{sk$unacceptableBase:!0},slots:{tp$getattr:Sk.generic.getAttr,$r(){return null===this.$self?new Sk.builtin.str(""):new Sk.builtin.str("")},tp$call(t,e){return this.tp$call(t,e)},tp$richcompare(t,e){return("Eq"===e||"NotEq"===e)&&t instanceof Sk.builtin.sk_method?(t=this.$self===t.$self&&this.m$def.$meth===t.m$def.$meth,"Eq"===e?t:!t):Sk.builtin.NotImplemented.NotImplemented$}},getsets:{__module__:{$get(){return this.$module||Sk.builtin.none.none$},$set(t){this.$module=t=t||Sk.builtin.none.none$}},__doc__:{$get(){return this.$doc?new Sk.builtin.str(this.$doc):Sk.builtin.none.none$}},__name__:{$get(){return new Sk.builtin.str(this.$name)}},__text_signature__:{$get(){return new Sk.builtin.str(this.$textsig)}},__self__:{$get(){return this.$self||Sk.sysModules.mp$lookup(this.$module)||Sk.builtin.none.none$}}}})},function(t,e){Sk.builtin.none=Sk.abstr.buildNativeClass("NoneType",{constructor:function(){return Sk.builtin.none.none$},slots:{tp$new:(t,e)=>(Sk.abstr.checkNoArgs("NoneType",t,e),Sk.builtin.none.none$),$r:()=>new Sk.builtin.str("None"),tp$as_number:!0,nb$bool:()=>!1},proto:{valueOf:()=>null},flags:{sk$unacceptableBase:!0}}),Sk.builtin.none.none$=Object.create(Sk.builtin.none.prototype,{v:{value:null,enumerable:!0}}),Sk.builtin.NotImplemented=Sk.abstr.buildNativeClass("NotImplementedType",{constructor:function(){return Sk.builtin.NotImplemented.NotImplemented$},slots:{$r:()=>new Sk.builtin.str("NotImplemented"),tp$new:(t,e)=>(Sk.abstr.checkNoArgs("NotImplementedType",t,e),Sk.builtin.NotImplemented.NotImplemented$)},flags:{sk$unacceptableBase:!0}}),Sk.builtin.NotImplemented.NotImplemented$=Object.create(Sk.builtin.NotImplemented.prototype,{v:{value:null,enumerable:!0}}),t=Sk.abstr.buildNativeClass("ellipsis",{constructor:function(){return Sk.builtin.Ellipsis},slots:{tp$new:(t,e)=>(Sk.abstr.checkNoArgs("ellipsis",t,e),Sk.builtin.Ellipsis),$r:()=>new Sk.builtin.str("Ellipsis")},flags:{sk$unacceptableBase:!0}}),Sk.builtin.Ellipsis=Object.create(t.prototype,{v:{value:"..."}})},function(t,e){const n=/^(?:(.)?([<>=\^]))?([\+\-\s])?(#)?(0)?(\d+)?(,|_)?(?:\.(\d+))?([bcdeEfFgGnosxX%])?$/;Sk.formatting={};let i=function(t,e,n,i){if(Sk.asserts.assert("string"==typeof e),t[6]){var s=parseInt(t[6],10);i=t[2]||(t[5]?"=":i?">":"<");let r=s-(e.length+(n?n.length:0));if(0>=r)return n+e;switch(s=(t[1]||(t[5]?"0":" ")).repeat(r),i){case"=":if("s"===t[9])throw new Sk.builtin.ValueError("'=' alignment not allowed in string format specifier");return n+s+e;case">":return s+n+e;case"<":return n+e+s;case"^":return t=Math.floor(r/2),s.substring(0,t)+n+e+s.substring(t)}}return n+e},s=function(t,e){return e?"-":"+"===t[3]?"+":" "===t[3]?" ":""};const r=/\B(?=(\d{3})+(?!\d))/g,o=/\B(?=([A-Za-z0-9]{4})+(?![A-Za-z0-9]))/g;let a=function(t,e,n){if(Sk.asserts.assert(e instanceof Sk.builtin.int_||e instanceof Sk.builtin.lng),t[8])throw new Sk.builtin.ValueError("Precision not allowed in integer format");var a=e.str$(n,!1);e=e.nb$isnegative(),e=s(t,e),t[4]&&(16===n?e+="0x":8===n?e+="0o":2===n&&(e+="0b"));const l=t[9];if("X"===l&&(a=a.toUpperCase()),"n"===t[9])a=(+a).toLocaleString();else if(t[7]){a=a.split(".");const e=t[7];if(","===e&&10!==n)throw new Sk.builtin.ValueError(`Cannot specify ',' with '${l}'`);a[0]=a[0].replace(10===n?r:o,e),a=a.join(".")}return i(t,a,e,!0)};Sk.formatting.mkNumber__format__=t=>function(e){if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("format() argument 2 must be str, not "+Sk.abstr.typeName(e));return new Sk.builtin.str(function(t,e,r){if(!e)return t.str$(10,!0);if(!(e=e.match(n)))throw new Sk.builtin.ValueError("Invalid format specifier");var o=e[9];if(o||(o=r?"g":"d"),-1==(r?"fFeEgG%":"bcdoxXnfFeEgG%").indexOf(o))throw new Sk.builtin.ValueError("Unknown format code '"+e[9]+"' for object of type '"+Sk.abstr.typeName(t)+"'");switch(o){case"d":case"n":return a(e,t,10);case"x":case"X":return a(e,t,16);case"o":return a(e,t,8);case"b":return a(e,t,2);case"c":if(e[3])throw new Sk.builtin.ValueError("Sign not allowed with integer format specifier 'c'");if(e[4])throw new Sk.builtin.ValueError("Alternate form not allowed with integer format specifier 'c'");if(e[7])throw new Sk.builtin.ValueError("Cannot specify ',' with 'c'");if(e[8])throw new Sk.builtin.ValueError("Cannot specify ',' with 'c'");return i(e,String.fromCodePoint(Sk.builtin.asnum$(t)),"",!0);case"f":case"F":case"e":case"E":case"g":case"G":{if(e[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed in float format specifier");if("string"==typeof(r=Sk.builtin.asnum$(t))&&(r=Number(r)),1/0===r)return i(e,"inf","",!0);if(-1/0===r)return i(e,"inf","-",!0);if(isNaN(r))return i(e,"nan","",!0);t=!1,0>r&&(r=-r,t=!0);var l=["toExponential","toFixed","toPrecision"]["efg".indexOf(o.toLowerCase())];let n=e[8]?parseInt(e[8],10):6;if(r=r[l](n),-1!=="EFG".indexOf(o)&&(r=r.toUpperCase()),"g"===o.toLowerCase()||!e[9]){if(l=r.match(/\.(\d*[1-9])?(0+)$/)){let[,t,e]=l;r=r.slice(0,t?-e.length:-(e.length+1))}-1!=r.indexOf(".")||e[9]||(r+=".0")}return"e"===o.toLowerCase()&&(r=r.replace(/^([-+]?[0-9]*\.?[0-9]+[eE][-+]?)([0-9])?$/,"$10$2")),e[7]&&((o=r.toString().split("."))[0]=o[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),r=o.join(".")),i(e,r,s(e,t),!0)}case"%":if(e[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed with format specifier '%'");return"string"==typeof(t=Sk.builtin.asnum$(t))&&(t=Number(t)),1/0===t?i(e,"inf%","",!0):-1/0===t?i(e,"inf%","-",!0):isNaN(t)?i(e,"nan%","",!0):(o=!1,0>t&&(t=-t,o=!0),r=e[8]?parseInt(e[8],10):6,t=(100*t).toFixed(r)+"%",i(e,t,s(e,o),!0));default:throw new Sk.builtin.ValueError("Unknown format code '"+e[9]+"'")}}(this,e.$jsstr(),t))},Sk.formatting.format=function(t,e){e=e||[];const n={};for(let t=0;tn?1/0:n;null!=(o=s.exec(t))&&li)return new Sk.builtin.tuple([new Sk.builtin.str(""),new Sk.builtin.str(""),new Sk.builtin.str(n)])}else if(i=n.indexOf(e),0>i)return new Sk.builtin.tuple([new Sk.builtin.str(n),new Sk.builtin.str(""),new Sk.builtin.str("")]);return new Sk.builtin.tuple([new Sk.builtin.str(n.substring(0,i)),new Sk.builtin.str(e),new Sk.builtin.str(n.substring(i+e.length))])}}function o(t,e){return function(n,i){if(n=Sk.misceval.asIndexSized(n,Sk.builtin.OverflowError),void 0===i)i=" ";else{if(!(i instanceof Sk.builtin.str&&1===i.sq$length()))throw new Sk.builtin.TypeError("the fill character must be a str of length 1");i=i.v}var s=this.sq$length();return s>=n?new Sk.builtin.str(this.v):e?(s=n-s,n=Math.floor(s/2)+(s&n&1),i=i.repeat(n)+this.v+i.repeat(s-n),new Sk.builtin.str(i)):(i=i.repeat(n-s),new Sk.builtin.str(t?i+this.v:this.v+i))}}function a(t,e,n){if(({start:e,end:n}=Sk.builtin.slice.startEnd$wrt(t,e,n)),t.$hasAstralCodePoints()){const i=t.codepoints[e];e=void 0===i?e+t.v.length-t.codepoints.length:i,n=void 0===(n=t.codepoints[n])?t.v.length:n}return{start:e,end:n}}function l(t){return function(e,n,i){if(e=this.get$tgt(e),({start:n,end:i}=a(this,n,i)),i=n&&e<=i?e:-1,this.codepoints){i=this.sq$length(),n=-1;for(let t=0;ts)return Sk.builtin.bool.false$;if(i=this.v.slice(i,s),n instanceof Sk.builtin.tuple){for(let s=Sk.abstr.iter(n),r=s.tp$iternext();void 0!==r;r=s.tp$iternext()){if(!(r instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("tuple for "+t+" must only contain str, not "+Sk.abstr.typeName(r));if(e(i,r.v))return Sk.builtin.bool.true$}return Sk.builtin.bool.false$}return new Sk.builtin.bool(e(i,n.v))}}function c(t){return void 0===g[t]?t:t+"_$rw$"}var p=/^[0-9!#_]/,h=Object.create(null);Sk.builtin.str=Sk.abstr.buildNativeClass("str",{constructor:function(t){if(Sk.asserts.assert(this instanceof Sk.builtin.str,"bad call to str - use 'new'"),"string"!=typeof t)if(void 0===t)t="";else if(null===t)t="None";else{if(void 0!==t.tp$str)return t.tp$str();if("number"!=typeof t)throw new Sk.builtin.TypeError("could not convert object of type '"+Sk.abstr.typeName(t)+"' to str");t=Number.isFinite(t)?String(t):String(t).replace("Infinity","inf").replace("NaN","nan")}const e=h[t];if(void 0!==e)return e;h[t]=this,this.$mangled=c(t),this.$savedKeyHash=t.replace(p,"!$&"),this.v=t},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$doc:"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.",tp$new(t,e){if(e=e||[],this!==Sk.builtin.str.prototype)return this.$subtype_new(t,e);if(1>=t.length&&!e.length)return new Sk.builtin.str(t[0]);if(Sk.__future__.python3){const[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("str",["object","encoding","errors"],t,e);if(void 0===n||void 0===i&&void 0===s)return new Sk.builtin.str(n);if(Sk.builtin.bytes.check$encodeArgs("str",i,s),!Sk.builtin.checkBytes(n))throw new Sk.builtin.TypeError("decoding to str: need a bytes-like object, "+Sk.abstr.typeName(n)+" found");return Sk.builtin.bytes.$decode.call(n,i,s)}throw new Sk.builtin.TypeError("str takes at most one argument ("+(t.length+e.length)+" given)")},$r(){let t="'";-1!==this.v.indexOf("'")&&-1===this.v.indexOf('"')&&(t='"');const e=this.v.length;let n=t;for(let r=0;rs||57344<=s)&&!Sk.__future__.python3?n+="\\u"+("000"+s.toString(16)).slice(-4):55296<=s&&!Sk.__future__.python3?(i=this.v.codePointAt(r),r++,s="0000000"+(i=i.toString(16)).toString(16),n=4i||127<=s&&!Sk.__future__.python3?(2>(i=i.charCodeAt(0).toString(16)).length&&(i="0"+i),n+="\\x"+i):n+=i}return new Sk.builtin.str(n+t)},tp$str(){return this.constructor===Sk.builtin.str?this:new Sk.builtin.str(this.v)},tp$iter(){return new m(this)},tp$richcompare(t,e){if(!(t instanceof Sk.builtin.str))return Sk.builtin.NotImplemented.NotImplemented$;switch(e){case"Lt":return this.vt.v;case"GtE":return this.v>=t.v}},mp$subscript(t){let e;if(Sk.misceval.isIndex(t)){if(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError),e=this.sq$length(),0>t&&(t+=e),0>t||t>=e)throw new Sk.builtin.IndexError("string index out of range");return this.codepoints?new Sk.builtin.str(this.v.substring(this.codepoints[t],this.codepoints[t+1])):new Sk.builtin.str(this.v.charAt(t))}if(t instanceof Sk.builtin.slice){let n="";return e=this.sq$length(),this.codepoints?t.sssiter$(e,(t=>{n+=this.v.substring(this.codepoints[t],this.codepoints[t+1])})):t.sssiter$(e,(t=>{n+=this.v.charAt(t)})),new Sk.builtin.str(n)}throw new Sk.builtin.TypeError("string indices must be integers, not "+Sk.abstr.typeName(t))},sq$length(){return this.$hasAstralCodePoints()?this.codepoints.length:this.v.length},sq$concat(t){if(!(t instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("cannot concatenate 'str' and '"+Sk.abstr.typeName(t)+"' objects");return new Sk.builtin.str(this.v+t.v)},sq$repeat(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(t)+"'");if((t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError))*this.v.length>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;let e="";for(let n=0;n' requires string as left operand not "+Sk.abstr.typeName(t));return-1!==this.v.indexOf(t.v)},tp$as_number:!0,nb$remainder:function(t){const e=this.sk$builtinBase;t.constructor===Sk.builtin.tuple||t instanceof Sk.builtin.dict||t instanceof Sk.builtin.mappingproxy||(t=new Sk.builtin.tuple([t]));var n=0,i=this.$jsstr().replace(/%(\([a-zA-Z0-9]+\))?([#0 +\-]+)?(\*|[0-9]+)?(\.(\*|[0-9]+))?[hlL]?([diouxXeEfFgGcrsb%])/g,(function(i,s,r,o,a,l,u){var c,p,h,_,d;o=Sk.builtin.asnum$(o),a=Sk.builtin.asnum$(a),void 0!==s&&""!==s||"%"==u||(c=n++),""===a&&(a=void 0);var f=p=h=_=d=!1;if(r&&(-1!==r.indexOf("-")?_=!0:-1!==r.indexOf("0")&&(d=!0),-1!==r.indexOf("+")?p=!0:-1!==r.indexOf(" ")&&(h=!0),f=-1!==r.indexOf("#")),a&&(a=parseInt(a.substr(1),10)),r=function(t,e){var n;e=Sk.builtin.asnum$(e);var i=!1;if("number"==typeof t){0>t&&(t=-t,i=!0);var s=t.toString(e)}else t instanceof Sk.builtin.float_?(2<(s=t.str$(e,!1)).length&&".0"===s.substr(-2)&&(s=s.substr(0,s.length-2)),i=t.nb$isnegative()):(t instanceof Sk.builtin.int_||t instanceof Sk.builtin.lng)&&(s=t.str$(e,!1),i=t.nb$isnegative());if(Sk.asserts.assert(void 0!==s,"unhandled number format"),t=!1,a)for(n=s.length;ne){for(this.codepoints=[],t=0;te&&t++;return!0}}return this.codepoints=null,!1},sk$asarray(){const t=[];if(this.$hasAstralCodePoints()){var e=this.codepoints;for(let n=0;ni)return new Sk.builtin.str(this.v.replace(t,e));let s=0;return t=this.v.replace(t,(t=>s++e?0:2*(t.length/2-e);for(e=[],0>=n?n=0:e.push(new Sk.builtin.str(this.v.slice(0,t[n-1])));n{if(!(t instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("sequence item "+e.length+": expected str, "+Sk.abstr.typeName(t)+" found");e.push(t.v)})),(()=>new Sk.builtin.str(e.join(this.v))))},$flags:{OneArg:!0},$textsig:"($self, iterable, /)",$doc:"Concatenate any number of strings.\n\nThe string whose method is called is inserted in between each given string.\nThe result is returned as a new string.\n\nExample: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'"},capitalize:{$meth:function(){return new Sk.builtin.str(this.v.charAt(0).toUpperCase()+this.v.slice(1).toLowerCase())},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a capitalized version of the string.\n\nMore specifically, make the first character have upper case and the rest lower\ncase."},title:{$meth:function(){const t=this.v.replace(/[a-z][a-z]*/gi,(t=>t[0].toUpperCase()+t.substr(1).toLowerCase()));return new Sk.builtin.str(t)},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a version of the string where each word is titlecased.\n\nMore specifically, words start with uppercased characters and all remaining\ncased characters have lower case."},center:{$meth:o(!1,!0),$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, width, fillchar=' ', /)",$doc:"Return a centered string of length width.\n\nPadding is done using the specified fill character (default is a space)."},count:{$meth:function(t,e,n){return t=this.get$tgt(t),({start:e,end:n}=a(this,e,n)),n int\n\nReturn the number of non-overlapping occurrences of substring sub in\nstring S[start:end]. Optional arguments start and end are\ninterpreted as in slice notation."},expandtabs:{$meth:function(t){if(!Sk.builtin.checkInt(t))throw new Sk.builtin.TypeError("an integer is required, got type"+Sk.abstr.typeName(t));t=Sk.builtin.asnum$(t);const e=Array(t+1).join(" "),n=this.v.replace(/([^\r\n\t]*)\t/g,((n,i)=>i+e.slice(i.length%t)));return new Sk.builtin.str(n)},$flags:{NamedArgs:["tabsize"],Defaults:[8]},$textsig:"($self, /, tabsize=8)",$doc:"Return a copy where all tab characters are expanded using spaces.\n\nIf tabsize is not given, a tab size of 8 characters is assumed."},find:{$meth:function(t,e,n){return new Sk.builtin.int_(this.find$left(t,e,n))},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.find(sub[, start[, end]]) -> int\n\nReturn the lowest index in S where substring sub is found,\nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},partition:{$meth:r(!1),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the string into three parts using the given separator.\n\nThis will search for the separator in the string. If the separator is found,\nreturns a 3-tuple containing the part before the separator, the separator\nitself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing the original string\nand two empty strings."},index:{$meth:function(t,e,n){if(-1===(t=this.find$left(t,e,n)))throw new Sk.builtin.ValueError("substring not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.index(sub[, start[, end]]) -> int\n\nReturn the lowest index in S where substring sub is found, \nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaises ValueError when the substring is not found."},ljust:{$meth:o(!1,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, width, fillchar=' ', /)",$doc:"Return a left-justified string of length width.\n\nPadding is done using the specified fill character (default is a space)."},lower:{$meth(){return new Sk.builtin.str(this.v.toLowerCase())},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a copy of the string converted to lowercase."},lstrip:{$meth:s(/^\s+/g,(t=>"^["+t+"]+")),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, chars=None, /)",$doc:"Return a copy of the string with leading whitespace removed.\n\nIf chars is given and not None, remove characters in chars instead."},rfind:{$meth(t,e,n){return new Sk.builtin.int_(this.find$right(t,e,n))},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.rfind(sub[, start[, end]]) -> int\n\nReturn the highest index in S where substring sub is found,\nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},rindex:{$meth:function(t,e,n){if(-1===(t=this.find$right(t,e,n)))throw new Sk.builtin.ValueError("substring not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.rindex(sub[, start[, end]]) -> int\n\nReturn the highest index in S where substring sub is found,\nsuch that sub is contained within S[start:end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaises ValueError when the substring is not found."},rjust:{$meth:o(!0,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, width, fillchar=' ', /)",$doc:"Return a right-justified string of length width.\n\nPadding is done using the specified fill character (default is a space)."},rstrip:{$meth:s(/\s+$/g,(t=>"["+t+"]+$")),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, chars=None, /)",$doc:"Return a copy of the string with trailing whitespace removed.\n\nIf chars is given and not None, remove characters in chars instead."},rpartition:{$meth:r(!0),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the string into three parts using the given separator.\n\nThis will search for the separator in the string, starting at the end. If\nthe separator is found, returns a 3-tuple containing the part before the\nseparator, the separator itself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing two empty strings\nand the original string."},splitlines:{$meth:function(t){t=Sk.misceval.isTrue(t);const e=this.v,n=[],i=e.length;var s=0;for(let o=0;o"^["+t+"]+|["+t+"]+$")),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, chars=None, /)",$doc:"Return a copy of the string with leading and trailing whitespace remove.\n\nIf chars is given and not None, remove characters in chars instead."},swapcase:{$meth(){const t=this.v.replace(/[a-z]/gi,(t=>{const e=t.toLowerCase();return e===t?t.toUpperCase():e}));return new Sk.builtin.str(t)},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Convert uppercase characters to lowercase and lowercase characters to uppercase."},upper:{$meth(){return new Sk.builtin.str(this.v.toUpperCase())},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return a copy of the string converted to uppercase."},startswith:{$meth:u("startswith",((t,e)=>0===t.indexOf(e))),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.startswith(prefix[, start[, end]]) -> bool\n\nReturn True if S starts with the specified prefix, False otherwise.\nWith optional start, test S beginning at that position.\nWith optional end, stop comparing S at that position.\nprefix can also be a tuple of strings to try."},endswith:{$meth:u("endswith",((t,e)=>-1!==t.indexOf(e,t.length-e.length))),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"S.endswith(suffix[, start[, end]]) -> bool\n\nReturn True if S ends with the specified suffix, False otherwise.\nWith optional start, test S beginning at that position.\nWith optional end, stop comparing S at that position.\nsuffix can also be a tuple of strings to try."},isascii:{$meth(){return new Sk.builtin.bool(/^[\x00-\x7F]*$/.test(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if all characters in the string are ASCII, False otherwise.\n\nASCII characters have code points in the range U+0000-U+007F.\nEmpty string is ASCII too."},islower:{$meth:function(){return new Sk.builtin.bool(this.v.length&&/[a-z]/.test(this.v)&&!/[A-Z]/.test(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if the string is a lowercase string, False otherwise.\n\nA string is lowercase if all cased characters in the string are lowercase and\nthere is at least one cased character in the string."},isupper:{$meth:function(){return new Sk.builtin.bool(this.v.length&&!/[a-z]/.test(this.v)&&/[A-Z]/.test(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if the string is an uppercase string, False otherwise.\n\nA string is uppercase if all cased characters in the string are uppercase and\nthere is at least one cased character in the string."},istitle:{$meth:function(){const t=this.v;let e,n=!1,i=!1;for(let s=0;s str\n\nReturn a formatted version of S, using substitutions from args and kwargs.\nThe substitutions are identified by braces ('{' and '}')."},__format__:{$meth:Sk.formatting.formatString,$flags:{OneArg:!0},$textsig:"($self, format_spec, /)",$doc:"Return a formatted version of the string as described by format_spec."},__getnewargs__:{$meth(){return new Sk.builtin.tuple(new Sk.builtin.str(this.v))},$flags:{NoArgs:!0},$textsig:null,$doc:null}}}),Sk.exportSymbol("Sk.builtin.str",Sk.builtin.str);var _=/^[A-Za-z0-9]+$/,d=/([.*+?=|\\\/()\[\]\{\}^$])/g,f=/^[\s\xa0]+/;Sk.builtin.str.$py2decode=new Sk.builtin.method_descriptor(Sk.builtin.str,{$name:"decode",$meth(t,e){const n=new Sk.builtin.bytes(this.v);return Sk.builtin.bytes.$decode.call(n,t,e)},$flags:{NamedArgs:["encoding","errors"]}});var m=Sk.abstr.buildIteratorClass("str_iterator",{constructor:function(t){this.$index=0,t.$hasAstralCodePoints()?(this.$seq=t.codepoints,this.tp$iternext=()=>{const e=this.$seq[this.$index];if(void 0!==e)return new Sk.builtin.str(t.v.substring(e,this.$seq[++this.$index]))}):(this.$seq=t.v,this.tp$iternext=()=>{const t=this.$seq[this.$index++];if(void 0!==t)return new Sk.builtin.str(t)})},iternext(){return this.tp$iternext()},methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}}),g={abstract:!0,as:!0,boolean:!0,break:!0,byte:!0,case:!0,catch:!0,char:!0,class:!0,continue:!0,const:!0,debugger:!0,default:!0,delete:!0,do:!0,double:!0,else:!0,enum:!0,export:!0,extends:!0,false:!0,final:!0,finally:!0,float:!0,for:!0,function:!0,goto:!0,if:!0,implements:!0,import:!0,in:!0,instanceof:!0,int:!0,interface:!0,is:!0,long:!0,namespace:!0,native:!0,new:!0,null:!0,package:!0,private:!0,protected:!0,public:!0,return:!0,short:!0,static:!0,super:!0,switch:!0,synchronized:!0,this:!0,throw:!0,throws:!0,transient:!0,true:!0,try:!0,typeof:!0,use:!0,var:!0,void:!0,volatile:!0,while:!0,with:!0,constructor:!0,__defineGetter__:!0,__defineSetter__:!0,apply:!0,arguments:!0,call:!0,caller:!0,eval:!0,hasOwnProperty:!0,isPrototypeOf:!0,__lookupGetter__:!0,__lookupSetter__:!0,__noSuchMethod__:!0,propertyIsEnumerable:!0,prototype:!0,toSource:!0,toLocaleString:!0,toString:!0,unwatch:!0,valueOf:!0,watch:!0,length:!0,name:!0};Sk.builtin.str.reservedWords_=g,Sk.builtin.str.$fixReserved=c},function(t,e){Sk.builtin.func=Sk.abstr.buildNativeClass("function",{constructor:function(t,e,n,i){if(Sk.asserts.assert(this instanceof Sk.builtin.func,"builtin func should be called as a class with `new`"),this.func_code=t,this.func_globals=e||null,this.$name=t.co_name&&t.co_name.v||t.name||"",this.$d=Sk.builtin.dict?new Sk.builtin.dict:void 0,this.$doc=t.co_docstring||Sk.builtin.none.none$,this.$module=Sk.globals&&Sk.globals.__name__||Sk.builtin.none.none$,this.$qualname=t.co_qualname&&t.co_qualname.v||this.$name,void 0!==i)for(let t in i)n[t]=i[t];this.func_closure=n,this.func_annotations=null,this.$memoiseFlags(),this.memoised=t.co_fastcall||null,this.tp$call=t.co_fastcall?t.bind(this):Sk.builtin.func.prototype.tp$call.bind(this)},slots:{tp$getattr:Sk.generic.getAttr,tp$descr_get(t,e){return null===t?this:new Sk.builtin.method(this,t)},$r(){return new Sk.builtin.str("")},tp$call(t,e){if(this.memoised||(this.$memoiseFlags(),this.memoised=!0),void 0===this.co_argcount&&void 0===this.co_varnames&&!this.co_kwargs&&!this.func_closure){if(e&&0!==e.length)throw new Sk.builtin.TypeError(this.$name+"() takes no keyword arguments");return this.func_code.apply(this.func_globals,t)}return t=this.$resolveArgs(t,e),this.func_closure&&t.push(this.func_closure),this.func_code.apply(this.func_globals,t)}},getsets:{__name__:{$get(){return new Sk.builtin.str(this.$name)},$set(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__name__ must be set to a string object");this.$name=t.$jsstr()}},__qualname__:{$get(){return new Sk.builtin.str(this.$qualname)},$set(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__qualname__ must be set to a string object");this.$qualname=t.$jsstr()}},__dict__:Sk.generic.getSetDict,__annotations__:{$get(){return null===this.func_annotations?this.func_annotations=new Sk.builtin.dict([]):Array.isArray(this.func_annotations)&&(this.func_annotations=Sk.abstr.keywordArrayToPyDict(this.func_annotations)),this.func_annotations},$set(t){if(void 0===t||Sk.builtin.checkNone(t))this.func_annotations=new Sk.builtin.dict([]);else{if(!(t instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError("__annotations__ must be set to a dict object");this.func_annotations=t}}},__defaults__:{$get(){return null==this.$defaults?Sk.builtin.none.none$:new Sk.builtin.tuple(this.$defaults)},$set(t){if(void 0===t||Sk.builtin.checkNone(t))this.$defaults=null;else{if(!(t instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("__defaults__ must be set to a tuple object");this.$defaults=t.valueOf()}}},__doc__:{$get(){return this.$doc},$set(t){this.$doc=t||Sk.builtin.none.none$}},__module__:{$get(){return this.$module},$set(t){this.$module=t||Sk.builtin.none.none$}}},proto:{$memoiseFlags(){this.co_varnames=this.func_code.co_varnames,this.co_argcount=this.func_code.co_argcount,void 0===this.co_argcount&&this.co_varnames&&(this.co_argcount=this.co_varnames.length),this.co_kwonlyargcount=this.func_code.co_kwonlyargcount||0,this.co_varargs=this.func_code.co_varargs,this.co_kwargs=this.func_code.co_kwargs,this.$defaults=this.func_code.$defaults,this.$kwdefs=this.func_code.$kwdefs||[]},$resolveArgs:function(t,e){var n=this.co_argcount;void 0===n&&(n=this.co_varnames?this.co_varnames.length:t.length);var i=this.co_varnames||[],s=this.co_kwonlyargcount||0;let r,o=n+s;if(!(0!==s||this.co_kwargs||e&&0!==e.length||this.co_varargs)){if(t.length==n)return t;if(0===t.length&&this.$defaults&&this.$defaults.length===n){for(i=0;i!=this.$defaults.length;i++)t[i]=this.$defaults[i];return t}}this.co_kwargs&&(r=[]);var a=t.length;let l=t.length<=n?t:t.slice(0,n);if(this.co_varargs)t=t.length>l.length?t.slice(l.length):[],l[o]=new Sk.builtin.tuple(t);else if(a>n)throw new Sk.builtin.TypeError(`${this.$name}"() takes ${n} positional ${1==n?"argument":"arguments"} but ${a} ${1==a?"was":"were"} given`);if(e){if(this.func_code.no_kw)throw new Sk.builtin.TypeError(this.$name+"() takes no keyword arguments");for(t=0;t"'"+t+"'")).join(", ")));for(;tt.indexOf(".")&&0>t.indexOf("e")&&0>t.indexOf("E"))return t;var e=0;if(0<=t.indexOf("e")){var n=t.substr(0,t.indexOf("e"));e=t.substr(t.indexOf("e")+1)}else 0<=t.indexOf("E")?(n=t.substr(0,t.indexOf("e")),e=t.substr(t.indexOf("E")+1)):n=t;if(e=parseInt(e,10),0>(t=n.indexOf("."))){if(0<=e){for(;0-e?n.substr(0,n.length+e):0}for(n=0===t?n.substr(1):tn.length;)n+="0";return 0>=t?0:n.substr(0,t)},Sk.exportSymbol("Sk.builtin.asnum$nofloat",Sk.builtin.asnum$nofloat),Sk.builtin.round=function(t,e){if(void 0===t)throw new Sk.builtin.TypeError("a float is required");if(!Sk.__future__.dunder_round){if(!Sk.builtin.checkNumber(t))throw new Sk.builtin.TypeError("a float is required");if(t.round$)return t.round$(e);throw new Sk.builtin.AttributeError(Sk.abstr.typeName(t)+" instance has no attribute '__float__'")}if(void 0!==e&&!Sk.builtin.checkNone(e)&&!Sk.misceval.isIndex(e))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(e)+"' object cannot be interpreted as an index");if(void 0!==(t=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$round)))return void 0!==e?Sk.misceval.callsimArray(t,[e]):Sk.misceval.callsimArray(t,[]);throw new Sk.builtin.TypeError("a float is required")},Sk.builtin.len=function(t){if(!t.sq$length)throw new Sk.builtin.TypeError("object of type '"+Sk.abstr.typeName(t)+"' has no len()");return t=t.sq$length(!0),Sk.misceval.chain(t,(t=>new Sk.builtin.int_(t)))},Sk.builtin.min=function(t,e){let n;const i=t.length;if(!i)throw new Sk.builtin.TypeError("min expected 1 argument, got 0");const[s,r]=Sk.abstr.copyKeywordsToNamedArgs("min",["default","key"],[],e,[null,Sk.builtin.none.none$]);if(1{if(o=t,void 0!==o)return Sk.builtin.checkNone(r)?Sk.misceval.iterFor(n,(t=>{Sk.misceval.richCompareBool(t,o,"Lt")&&(o=t)})):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[o]),(t=>Sk.misceval.iterFor(n,(e=>Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[e]),(n=>{Sk.misceval.richCompareBool(n,t,"Lt")&&(o=e,t=n)}))))))}),(()=>{if(void 0===o){if(null===s)throw new Sk.builtin.ValueError("min() arg is an empty sequence");o=s}return o}))},Sk.builtin.max=function(t,e){let n;const i=t.length;if(!i)throw new Sk.builtin.TypeError("max expected 1 argument, got 0");const[s,r]=Sk.abstr.copyKeywordsToNamedArgs("max",["default","key"],[],e,[null,Sk.builtin.none.none$]);if(1{if(o=t,void 0!==o)return Sk.builtin.checkNone(r)?Sk.misceval.iterFor(n,(t=>{Sk.misceval.richCompareBool(t,o,"Gt")&&(o=t)})):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[o]),(t=>Sk.misceval.iterFor(n,(e=>Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(r,[e]),(n=>{Sk.misceval.richCompareBool(n,t,"Gt")&&(o=e,t=n)}))))))}),(()=>{if(void 0===o){if(null===s)throw new Sk.builtin.ValueError("max() arg is an empty sequence");o=s}return o}))},Sk.builtin.min.co_fastcall=Sk.builtin.max.co_fastcall=1,Sk.builtin.any=function(t){return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(function(t){if(Sk.misceval.isTrue(t))return new Sk.misceval.Break(Sk.builtin.bool.true$)})),(t=>t||Sk.builtin.bool.false$))},Sk.builtin.all=function(t){return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(function(t){if(!Sk.misceval.isTrue(t))return new Sk.misceval.Break(Sk.builtin.bool.false$)})),(t=>t||Sk.builtin.bool.true$))},Sk.builtin.sum=function(t,e){const n=Sk.abstr.iter(t);if(void 0===e)var i=new Sk.builtin.int_(0);else{if(Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("sum() can't sum strings [use ''.join(seq) instead]");i=e}return t=void 0===e||e.constructor===Sk.builtin.int_?Sk.misceval.iterFor(n,(t=>{if(t.constructor!==Sk.builtin.int_)return t.constructor===Sk.builtin.float_?(i=i.nb$float().nb$add(t),new Sk.misceval.Break("float")):(i=Sk.abstr.numberBinOp(i,t,"Add"),new Sk.misceval.Break("slow"));i=i.nb$add(t)})):e.constructor===Sk.builtin.float_?"float":"slow",Sk.misceval.chain(t,(t=>"float"===t?Sk.misceval.iterFor(n,(t=>{if(t.constructor!==Sk.builtin.float_&&t.constructor!==Sk.builtin.int_)return i=Sk.abstr.numberBinOp(i,t,"Add"),new Sk.misceval.Break("slow");i=i.nb$add(t)})):t),(t=>{if("slow"===t)return Sk.misceval.iterFor(n,(t=>{i=Sk.abstr.numberBinOp(i,t,"Add")}))}),(()=>i))},Sk.builtin.zip=function(){var t,e;if(0===arguments.length)return new Sk.builtin.list([]);var n=[];for(e=0;et||1114112<=t)throw new Sk.builtin.ValueError("chr() arg not in range(0x110000)")}else if(0>t||256<=t)throw new Sk.builtin.ValueError("chr() arg not in range(256)");return new Sk.builtin.str(String.fromCodePoint(t))},Sk.builtin.unichr=function(t){if(Sk.builtin.pyCheckArgsLen("unichr",arguments.length,1,1),!Sk.builtin.checkInt(t))throw new Sk.builtin.TypeError("an integer is required");t=Sk.builtin.asnum$(t);try{return new Sk.builtin.str(String.fromCodePoint(t))}catch(t){if(t instanceof RangeError)throw new Sk.builtin.ValueError(t.message);throw t}},Sk.builtin.int2str_=function(t,e,n){let i=Sk.misceval.asIndexOrThrow(t),s=i.toString(e);return s=0>i?"-"+n+s.slice(1):n+s,2!==e&&!Sk.__future__.python3&&(t instanceof Sk.builtin.lng||JSBI.__isBigInt(i))&&(s+="L"),new Sk.builtin.str(s)},Sk.builtin.hex=function(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("hex() argument can't be converted to hex");return Sk.builtin.int2str_(t,16,"0x")},Sk.builtin.oct=function(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("oct() argument can't be converted to hex");return Sk.__future__.octal_number_literal?Sk.builtin.int2str_(t,8,"0o"):Sk.builtin.int2str_(t,8,"0")},Sk.builtin.bin=function(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object can't be interpreted as an index");return Sk.builtin.int2str_(t,2,"0b")},Sk.builtin.dir=function(t){if(void 0!==t)return t=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$dir),Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(t,[]),(t=>Sk.builtin.sorted(t)));throw new Sk.builtin.NotImplementedError("skulpt does not yet support dir with no args")},Sk.builtin.repr=function(t){return t.$r()},Sk.builtin.ascii=function(t){return Sk.misceval.chain(t.$r(),(t=>{let e,n;for(n=0;n=s?(2>(i=s.toString(16)).length&&(i="0"+i),e+="\\x"+i):127s||57344<=s?e+="\\u"+("000"+s.toString(16)).slice(-4):55296<=s?(i=t.v.codePointAt(n),n++,s="0000000"+(i=i.toString(16)).toString(16),e=4t.tp$getattr(e,!0)),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t}));return Sk.misceval.chain(i,(i=>{if(void 0===i){if(void 0!==n)return n;throw new Sk.builtin.AttributeError(t.sk$attrError()+" has no attribute "+Sk.misceval.objectRepr(e))}return i}))},Sk.builtin.setattr=function(t,e,n){if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("attribute name must be string");return Sk.misceval.chain(t.tp$setattr(e,n,!0),(()=>Sk.builtin.none.none$))},Sk.builtin.raw_input=function(t){var e=t||"";return Sk.misceval.chain(Sk.importModule("sys",!1,!0),(function(t){return Sk.inputfunTakesPrompt?Sk.builtin.file.$readline(t.$d.stdin,null,e):Sk.misceval.chain(void 0,(function(){return Sk.misceval.callsimOrSuspendArray(t.$d.stdout.write,[t.$d.stdout,new Sk.builtin.str(e)])}),(function(){return Sk.misceval.callsimOrSuspendArray(t.$d.stdin.readline,[t.$d.stdin])}))}))},Sk.builtin.input=Sk.builtin.raw_input,Sk.builtin.jseval=function(t){return t=Sk.global.eval(Sk.ffi.remapToJs(t)),Sk.ffi.remapToPy(t)},Sk.builtin.jsmillis=function(){return console.warn("jsmillis is deprecated"),(new Date).valueOf()};const n=Sk.abstr.buildNativeClass("code",{constructor:function(t,e){this.compiled=e,this.code=e.code,this.filename=t},slots:{tp$new(t,e){throw new Sk.builtin.NotImplementedError("cannot construct a code object in skulpt")},$r(){return new Sk.builtin.str(", file "+this.filename+">")}}});Sk.builtin.compile=function(t,e,i,s,r,o){return Sk.builtin.pyCheckType("source","str",Sk.builtin.checkString(t)),Sk.builtin.pyCheckType("filename","str",Sk.builtin.checkString(e)),Sk.builtin.pyCheckType("mode","str",Sk.builtin.checkString(i)),t=t.$jsstr(),e=e.$jsstr(),i=i.$jsstr(),Sk.misceval.chain(Sk.compile(t,e,i,!0),(t=>new n(e,t)))},Sk.builtin.exec=function(t,e,i){let s=e&&e.__file__;if(s=void 0!==s&&Sk.builtin.checkString(s)?s.toString():"",Sk.builtin.checkString(t))t=Sk.compile(t.$jsstr(),s,"exec",!0);else if("string"==typeof t)t=Sk.compile(t,s,"exec",!0);else if(!(t instanceof n))throw new Sk.builtin.TypeError("exec() arg 1 must be a string, bytes or code object");Sk.asserts.assert(void 0===e||e.constructor===Object,"internal calls to exec should be called with a javascript object for globals"),Sk.asserts.assert(void 0===i||i.constructor===Object,"internal calls to exec should be called with a javascript object for locals");const r=Sk.globals;return e=e||r,Sk.misceval.chain(t,(t=>Sk.global.eval(t.code)(e,i)),(t=>(Sk.globals=r,t)))},Sk.builtin.eval=function(t,e,i){if(Sk.builtin.checkString(t))t=t.$jsstr();else if(Sk.builtin.checkBytes(t))throw new Sk.builtin.NotImplementedError("bytes for eval is not yet implemented in skulpt");if("string"==typeof t){t=t.trim();var s=Sk.parse("?",t);if(1<(s=Sk.astFromParse(s.cst,"?",s.flags)).body.length||!(s.body[0]instanceof Sk.astnodes.Expr))throw new Sk.builtin.SyntaxError("invalid syntax");t="__final_res__ = "+t}else if(!(t instanceof n))throw new Sk.builtin.TypeError("eval() arg 1 must be a string, bytes or code object");return Sk.misceval.chain(Sk.builtin.exec(t,e,i),(t=>{const e=t.__final_res__||Sk.builtin.none.none$;return delete t.__final_res__,e}))},Sk.builtin.map=function(t,e){var n,i,s=[];if(Sk.builtin.pyCheckArgsLen("map",arguments.length,2),2((t=new Sk.builtin.list(t)).list$sort(e,n,i),t)))},Sk.builtin.filter=function(t,e){var n;if(Sk.builtin.pyCheckArgsLen("filter",arguments.length,2,2),!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(e)+"' object is not iterable");var i=function(){return[]},s=function(t,e){return t.push(e),t},r=function(t){return new Sk.builtin.list(t)};e.ob$type===Sk.builtin.str?(i=function(){return new Sk.builtin.str("")},s=function(t,e){return t.sq$concat(e)},r=function(t){return t}):e.ob$type===Sk.builtin.tuple&&(r=function(t){return new Sk.builtin.tuple(t)});var o=i(),a=Sk.abstr.iter(e);for(n=a.tp$iternext();void 0!==n;n=a.tp$iternext())i=t===Sk.builtin.none.none$?new Sk.builtin.bool(n):Sk.misceval.callsimArray(t,[n]),Sk.misceval.isTrue(i)&&(o=s(o,n));return r(o)},Sk.builtin.hasattr=function(t,e){if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError("hasattr(): attribute name must be string");const n=Sk.misceval.tryCatch((()=>t.tp$getattr(e,!0)),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t}));return Sk.misceval.chain(n,(t=>void 0===t?Sk.builtin.bool.false$:Sk.builtin.bool.true$))},Sk.builtin.pow=function(t,e,n){if(void 0===n||Sk.builtin.checkNone(n))return Sk.abstr.numberBinOp(t,e,"Pow");if(!(Sk.builtin.checkInt(t)&&Sk.builtin.checkInt(e)&&Sk.builtin.checkInt(n))){if(Sk.builtin.checkFloat(t)||Sk.builtin.checkComplex(t))return t.nb$power(e,n);throw new Sk.builtin.TypeError("unsupported operand type(s) for ** or pow(): '"+Sk.abstr.typeName(t)+"', '"+Sk.abstr.typeName(e)+"', '"+Sk.abstr.typeName(n)+"'")}return t.nb$power(e,n)},Sk.builtin.quit=function(t){throw t=new Sk.builtin.str(t).v,new Sk.builtin.SystemExit(t)},Sk.builtin.issubclass=function(t,e){if(!Sk.builtin.checkClass(t))throw new Sk.builtin.TypeError("issubclass() arg 1 must be a class");var n=Sk.builtin.checkClass(e);if(!(n||e instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("issubclass() arg 2 must be a class or tuple of classes");if(n)return t.$isSubType(e)?Sk.builtin.bool.true$:Sk.builtin.bool.false$;for(n=0;n{if(void 0===n){if(e)return e;if(void 0!==(n=t.gi$ret)&&n!==Sk.builtin.none.none$)throw new Sk.builtin.StopIteration(n);throw new Sk.builtin.StopIteration}return n}))},Sk.builtin.reload=function(){throw new Sk.builtin.NotImplementedError("reload is not yet implemented")},Sk.builtin.vars=function(){throw new Sk.builtin.NotImplementedError("vars is not yet implemented")},Sk.builtin.apply_=function(){throw new Sk.builtin.NotImplementedError("apply is not yet implemented")},Sk.builtin.buffer=function(){throw new Sk.builtin.NotImplementedError("buffer is not yet implemented")},Sk.builtin.coerce=function(){throw new Sk.builtin.NotImplementedError("coerce is not yet implemented")},Sk.builtin.intern=function(){throw new Sk.builtin.NotImplementedError("intern is not yet implemented")}},function(t,e){function n(t,e){return e=new this.constructor,this.ht$type&&a.call(e),e.args=new Sk.builtin.tuple(t.slice(0)),e}function i(t,e){Sk.abstr.checkNoKwargs(Sk.abstr.typeName(this),e),this.args=new Sk.builtin.tuple(t.slice(0))}function s(){return 1>=this.args.v.length?new Sk.builtin.str(this.args.v[0]):this.args.$r()}function r(t,e,n,s,r,o){r||(r=[]);const a=s?{}:{sk$solidBase:!1};return n={tp$init:s||i,tp$doc:n},o&&(n.tp$str=o),Sk.abstr.buildNativeClass(e,{base:t,constructor:function(...e){t.apply(this,e),r.forEach(((t,n)=>{this["$"+t]=Sk.ffi.remapToPy(e[n])}))},slots:n,getsets:Object.fromEntries(r.map((t=>[t,{$get(){return this["$"+t]||Sk.builtin.none.none$},$set(e){this["$"+t]=e||Sk.builtin.none.none$}}]))),flags:a})}function o(t,e,s){const r=t.prototype.tp$init;return s={tp$doc:s,tp$init:r},r===i&&(s.tp$new=n),Sk.abstr.buildNativeClass(e,{base:t,constructor:function(...e){t.apply(this,e)},slots:s,flags:{sk$solidBase:!1}})}const a=Sk.abstr.buildNativeClass("BaseException",{constructor:function t(e,...n){Sk.asserts.assert(this instanceof t,"bad call to exception constructor, use 'new'"),"string"==typeof e&&(e=new Sk.builtin.str(e)),this.args=new Sk.builtin.tuple(e?[e]:[]),this.traceback=2<=n.length?[{filename:n[0]||"",lineno:n[1]}]:[],this.context=this.cause=null,this.$d=new Sk.builtin.dict},slots:{tp$getattr:Sk.generic.getAttr,tp$doc:"Common base class for all exceptions",tp$new:n,tp$init:i,$r(){let t=this.tp$name;return t+="("+this.args.v.map((t=>Sk.misceval.objectRepr(t))).join(", ")+")",new Sk.builtin.str(t)},tp$str:s},getsets:{args:{$get(){return this.args},$set(t){if(void 0===t)throw new Sk.builtin.TypeError("args may not be deleted");this.args=new Sk.builtin.tuple(t)}},__cause__:{$get(){return this.$cause||Sk.builtin.none.none$},$set(t){if(!(Sk.builtin.checkNone(t)||t instanceof Sk.builtin.BaseException))throw new B("exception cause must be None or derive from BaseException");this.$cause=t}},__dict__:Sk.generic.getSetDict},proto:{toString(){let t=this.tp$name;return t+=": "+this.tp$str().v,0!==this.traceback.length?t+" on line "+this.traceback[0].lineno:t+" at "}}});t=o(a,"SystemExit","Request to exit from the interpreter."),e=o(a,"KeyboardInterrupt","Program interrupted by user.");const l=o(a,"GeneratorExit","Request that a generator exit."),u=o(a,"Exception","Common base class for all non-exit exceptions."),c=r(u,"StopIteration","Signal the end from iterator.__next__().",(function(t,e){i.call(this,t,e),this.$value=t[0]||Sk.builtin.none.none$}),["value"]),p=o(u,"StopAsyncIteration","Signal the end from iterator.__anext__()."),h=o(u,"ArithmeticError","Base class for arithmetic errors."),_=o(h,"FloatingPointError","Floating point operation failed."),d=o(h,"OverflowError","Result too large to be represented."),f=o(h,"ZeroDivisionError","Second argument to a division or modulo operation was zero."),m=o(u,"AssertionError","Assertion failed."),g=o(u,"AttributeError","Attribute not found."),b=o(u,"BufferError","Buffer error."),S=o(u,"EOFError","Read beyond end of file."),k=r(u,"ImportError","Import can't find module, or can't find name in module.",(function(t,e){i.call(this,t);const[n,s]=Sk.abstr.copyKeywordsToNamedArgs("ImportError",["name","path"],[],e);this.$name=n,this.$path=s,1===t.length&&(this.$msg=t[0])}),["msg","name","path"],(function(){return Sk.builtin.checkString(this.$msg)?this.$msg:s.call(this)})),T=o(k,"ModuleNotFoundError","Module not found."),y=o(u,"LookupError","Base class for lookup errors."),v=o(y,"IndexError","Sequence index out of range."),$=r(y,"KeyError","Mapping key not found.",null,null,(function(){return 1===this.args.v.length?this.args.v[0].$r():s.call(this)})),w=o(u,"MemoryError","Out of memory."),E=o(u,"NameError","Name not found globally."),I=o(E,"UnboundLocalError","Local name referenced but not bound to a value."),A=r(u,"OSError","Base class for I/O related errors.",(function(t,e){i.call(this,t,e)})),O=o(A,"FileNotFoundError","File not found."),M=o(A,"TimeoutError","Timeout expired."),C=o(u,"ReferenceError","Weak ref proxy used after referent went away."),R=o(u,"RuntimeError","Unspecified run-time error."),x=o(R,"NotImplementedError","Method or function hasn't been implemented yet."),N=o(R,"RecursionError","Recursion limit exceeded."),L=r(u,"SyntaxError","Invalid syntax.",(function(t,e){i.call(this,t,e),1<=t.length&&(this.$msg=t[0]),2===t.length&&(t=new Sk.builtin.tuple(t[1]).v,this.$filename=t[0],this.$lineno=t[1],this.$offset=t[2],this.$text=t[3])}),["msg","filename","lineno","offset","text"],(function(){return s.call(this)})),D=o(L,"IndentationError","Improper indentation."),F=o(D,"TabError","Improper mixture of spaces and tabs."),P=o(u,"SystemError","Internal error in the Skulpt interpreter."),B=o(u,"TypeError","Inappropriate argument type."),V=o(u,"ValueError","Inappropriate argument value (of correct type)."),U=o(V,"UnicodeError","Unicode related error."),Y=o(U,"UnicodeDecodeError","Unicode decoding error."),j=o(U,"UnicodeEncodeError","Unicode encoding error.");Object.assign(Sk.builtin,{BaseException:a,SystemExit:t,KeyboardInterrupt:e,GeneratorExit:l,Exception:u,StopIteration:c,StopAsyncIteration:p,ArithmeticError:h,FloatingPointError:_,OverflowError:d,ZeroDivisionError:f,AssertionError:m,AttributeError:g,BufferError:b,EOFError:S,ImportError:k,ModuleNotFoundError:T,LookupError:y,IndexError:v,KeyError:$,MemoryError:w,NameError:E,UnboundLocalError:I,OSError:A,IOError:A,FileNotFoundError:O,TimeoutError:M,ReferenceError:C,RuntimeError:R,NotImplementedError:x,RecursionError:N,SyntaxError:L,IndentationError:D,TabError:F,SystemError:P,TypeError:B,ValueError:V,UnicodeError:U,UnicodeDecodeError:Y,UnicodeEncodeError:j}),Sk.builtin.SuspensionError=o(u,"SuspensionError","Unsupported Suspension in code."),Sk.builtin.ExternalError=Sk.abstr.buildNativeClass("ExternalError",{constructor:function(...t){if(this.nativeError=t[0],!Sk.builtin.checkString(this.nativeError)&&(t[0]=this.nativeError.toString(),t[0].startsWith("RangeError: Maximum call")))return t[0]="Maximum call stack size exceeded",new N(...t);u.apply(this,t)},base:u}),Sk.builtin.getExcInfo=function(t){return new Sk.builtin.tuple([t.ob$type||Sk.builtin.none.none$,t,Sk.builtin.none.none$])}},function(t,e){Sk.builtin.method=Sk.abstr.buildNativeClass("method",{constructor:function(t,e){Sk.asserts.assert(this instanceof Sk.builtin.method,"bad call to method constructor, use 'new'"),this.im_func=t,this.im_self=e,this.im_call=t.tp$call},slots:{$r(){let t=this.im_func.tp$getattr(Sk.builtin.str.$qualname)||this.im_func.tp$getattr(Sk.builtin.str.$name);return t=t&&t.v||"?",new Sk.builtin.str("")},tp$hash(){return Sk.abstr.objectHash(this.im_self)+Sk.abstr.objectHash(this.im_func)},tp$call(t,e){var n=this.im_call;if(void 0===n)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this.im_func)+"' object is not callable");return t=[this.im_self,...t],n.call(this.im_func,t,e)},tp$new(t,e){if(Sk.abstr.checkNoKwargs("method",e),Sk.abstr.checkArgsLen("method",t,2,2),e=t[0],t=t[1],!Sk.builtin.checkCallable(e))throw new Sk.builtin.TypeError("first argument must be callable");if(Sk.builtin.checkNone(t))throw new Sk.builtin.TypeError("self must not be None");return new Sk.builtin.method(e,t)},tp$richcompare(t,e){if("Eq"!=e&&"NotEq"!=e||!(t instanceof Sk.builtin.method))return Sk.builtin.NotImplemented.NotImplemented$;let n;try{n=Sk.misceval.richCompareBool(this.im_self,t.im_self,"Eq",!1)&&this.im_func==t.im_func}catch(t){n=!1}return"Eq"==e?n:!n},tp$descr_get(t,e){return this},tp$getattr(t,e){const n=Sk.abstr.lookupSpecial(this,t);return void 0!==n?n:this.im_func.tp$getattr(t,e)}},getsets:{__func__:{$get(){return this.im_func}},__self__:{$get(){return this.im_self}},__doc__:{$get(){return this.im_func.tp$getattr(Sk.builtin.str.$doc)}}},flags:{sk$unacceptableBase:!0}})},function(t,e){function n(t){if(null!=t){if(!0===t.sk$int)return t.v;if(void 0!==t.nb$index)return t.nb$index();if("number"==typeof t&&Number.isInteger(t))return t}}function i(t,e){const i=n(t);if(void 0!==i)return i;throw e=(e||"'{tp$name}' object cannot be interpreted as an integer").replace("{tp$name}",Sk.abstr.typeName(t)),new Sk.builtin.TypeError(e)}Sk.misceval={},Sk.misceval.Suspension=function(t,e,n){this.$isSuspension=!0,void 0!==t&&void 0!==e&&(this.resume=function(){return t(e.resume())}),this.child=e,this.optional=void 0!==e&&e.optional,this.data=void 0===n&&void 0!==e?e.data:n},Sk.exportSymbol("Sk.misceval.Suspension",Sk.misceval.Suspension),Sk.misceval.retryOptionalSuspensionOrThrow=function(t,e){for(;t instanceof Sk.misceval.Suspension;){if(!t.optional){e=new Sk.builtin.SuspensionError(e||"Cannot call a function that blocks or suspends here");const n=[];for(;null!=t;)t.$lineno&&n.push({filename:t.$filename,lineno:t.$lineno,colno:t.$colno}),t=t.child;throw n.reverse(),e.traceback.push(...n),e}t=t.resume()}return t},Sk.exportSymbol("Sk.misceval.retryOptionalSuspensionOrThrow",Sk.misceval.retryOptionalSuspensionOrThrow),Sk.misceval.isIndex=function(t){return null!=t&&(void 0!==t.nb$index||"number"==typeof t&&Number.isInteger(t))},Sk.exportSymbol("Sk.misceval.isIndex",Sk.misceval.isIndex),Sk.misceval.asIndex=n,Sk.misceval.asIndexSized=function(t,e,n){if("number"==typeof(n=i(t,n)))return n;if(null==e)return JSBI.lessThan(n,JSBI.__ZERO)?-Number.MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER;throw new e("cannot fit '"+Sk.abstr.typeName(t)+"' into an index-sized integer")},Sk.misceval.asIndexOrThrow=i,Sk.misceval.applySlice=function(t,e,n,i){return Sk.abstr.objectGetItem(t,new Sk.builtin.slice(e,n,null),i)},Sk.exportSymbol("Sk.misceval.applySlice",Sk.misceval.applySlice),Sk.misceval.assignSlice=function(t,e,n,i,s){return e=new Sk.builtin.slice(e,n),null===i?Sk.abstr.objectDelItem(t,e):Sk.abstr.objectSetItem(t,e,i,s)},Sk.exportSymbol("Sk.misceval.assignSlice",Sk.misceval.assignSlice),Sk.misceval.arrayFromArguments=function(t){var e;if(1!=t.length)return t;var n=t[0];if(n instanceof Sk.builtin.set?n=n.tp$iter().$obj:n instanceof Sk.builtin.dict&&(n=Sk.builtin.dict.prototype.keys.func_code(n)),n instanceof Sk.builtin.list||n instanceof Sk.builtin.tuple)return n.v;if(Sk.builtin.checkIterable(n)){for(t=[],e=(n=Sk.abstr.iter(n)).tp$iternext();void 0!==e;e=n.tp$iternext())t.push(e);return t}throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(n)+"' object is not iterable")},Sk.exportSymbol("Sk.misceval.arrayFromArguments",Sk.misceval.arrayFromArguments),Sk.misceval.iterator=Sk.abstr.buildIteratorClass("iterator",{constructor:function(t,e){this.tp$iternext=e?t:function(e){let n=t();return e||void 0===n||!n.$isSuspension?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)}},iternext:function(t){return this.tp$iternext(t)},flags:{sk$unacceptableBase:!0}}),Sk.misceval.swappedOp_={Eq:"Eq",NotEq:"NotEq",Lt:"Gt",LtE:"GtE",Gt:"Lt",GtE:"LtE"},Sk.misceval.opSymbols={Eq:"==",NotEq:"!=",Lt:"<",LtE:"<=",Gt:">",GtE:">=",Is:"is",IsNot:"is not",In_:"in",NotIn:"not in"},Sk.misceval.richCompareBool=function(t,e,n,i){Sk.asserts.assert(t.sk$object&&e.sk$object,"JS object passed to richCompareBool");var s=t.ob$type,r=e.ob$type,o=r!==s&&void 0===r.sk$baseClass&&r.$isSubType(s);if(!Sk.__future__.python3&&s!==r&&("GtE"===n||"Gt"===n||"LtE"===n||"Lt"===n)){var a=[Sk.builtin.float_,Sk.builtin.int_,Sk.builtin.lng,Sk.builtin.bool];const i=[Sk.builtin.dict,Sk.builtin.enumerate,Sk.builtin.filter_,Sk.builtin.list,Sk.builtin.map_,Sk.builtin.str,Sk.builtin.tuple,Sk.builtin.zip_];var l=a.indexOf(s);if(s=i.indexOf(s),a=a.indexOf(r),r=i.indexOf(r),t===Sk.builtin.none.none$)switch(n){case"Lt":case"LtE":return!0;case"Gt":case"GtE":return!1}if(e===Sk.builtin.none.none$)switch(n){case"Lt":case"LtE":return!1;case"Gt":case"GtE":return!0}if(-1!==l&&-1!==r)switch(n){case"Lt":case"LtE":return!0;case"Gt":case"GtE":return!1}if(-1!==s&&-1!==a)switch(n){case"Lt":case"LtE":return!1;case"Gt":case"GtE":return!0}if(-1!==s&&-1!==r)switch(n){case"Lt":return sr;case"GtE":return s>=r}}if("Is"===n)return t===e;if("IsNot"===n)return t!==e;if("In"===n)return Sk.misceval.chain(Sk.abstr.sequenceContains(e,t,i),Sk.misceval.isTrue);if("NotIn"===n)return Sk.misceval.chain(Sk.abstr.sequenceContains(e,t,i),(function(t){return!Sk.misceval.isTrue(t)}));if(l=(r={Eq:"ob$eq",NotEq:"ob$ne",Gt:"ob$gt",GtE:"ob$ge",Lt:"ob$lt",LtE:"ob$le"})[n],o&&(i=e[i=r[Sk.misceval.swappedOp_[n]]](t))!==Sk.builtin.NotImplemented.NotImplemented$||(i=t[l](e))!==Sk.builtin.NotImplemented.NotImplemented$||!o&&(i=e[i=r[Sk.misceval.swappedOp_[n]]](t))!==Sk.builtin.NotImplemented.NotImplemented$)return Sk.misceval.isTrue(i);if(!Sk.__future__.python3){if(o=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$cmp))try{if(i=Sk.misceval.callsimArray(o,[e]),Sk.builtin.checkNumber(i)){if(i=Sk.builtin.asnum$(i),"Eq"===n)return 0===i;if("NotEq"===n)return 0!==i;if("Lt"===n)return 0>i;if("Gt"===n)return 0=i;if("GtE"===n)return 0<=i}if(i!==Sk.builtin.NotImplemented.NotImplemented$)throw new Sk.builtin.TypeError("comparison did not return an int")}catch(t){throw new Sk.builtin.TypeError("comparison did not return an int")}if(o=Sk.abstr.lookupSpecial(e,Sk.builtin.str.$cmp))try{if(i=Sk.misceval.callsimArray(o,[t]),Sk.builtin.checkNumber(i)){if(i=Sk.builtin.asnum$(i),"Eq"===n)return 0===i;if("NotEq"===n)return 0!==i;if("Lt"===n)return 0i;if("LtE"===n)return 0<=i;if("GtE"===n)return 0>=i}if(i!==Sk.builtin.NotImplemented.NotImplemented$)throw new Sk.builtin.TypeError("comparison did not return an int")}catch(t){throw new Sk.builtin.TypeError("comparison did not return an int")}if(t===Sk.builtin.none.none$&&e===Sk.builtin.none.none$){if("Eq"===n)return t.v===e.v;if("NotEq"===n)return t.v!==e.v;if("Gt"===n)return t.v>e.v;if("GtE"===n)return t.v>=e.v;if("Lt"===n)return t.v";throw t}},Sk.exportSymbol("Sk.misceval.objectRepr",Sk.misceval.objectRepr),Sk.misceval.opAllowsEquality=function(t){switch(t){case"LtE":case"Eq":case"GtE":return!0}return!1},Sk.exportSymbol("Sk.misceval.opAllowsEquality",Sk.misceval.opAllowsEquality),Sk.misceval.isTrue=function(t){return!0===t||t===Sk.builtin.bool.true$||!1!==t&&t!==Sk.builtin.bool.false$&&null!=t&&(t.nb$bool?t.nb$bool():t.sq$length?0!==t.sq$length():!!t)},Sk.exportSymbol("Sk.misceval.isTrue",Sk.misceval.isTrue),Sk.misceval.softspace_=!1,Sk.misceval.print_=function(t){Sk.misceval.softspace_&&("\n"!==t&&Sk.output(" "),Sk.misceval.softspace_=!1);var e=new Sk.builtin.str(t);return Sk.misceval.chain(Sk.importModule("sys",!1,!0),(function(t){return Sk.misceval.apply(t.$d.stdout.write,void 0,void 0,void 0,[t.$d.stdout,e])}),(function(){var t;(t=0===e.v.length)||(t=!("\n"===(t=e.v[e.v.length-1])||"\t"===t||"\r"===t)),(t||" "===e.v[e.v.length-1])&&(Sk.misceval.softspace_=!0)}))},Sk.exportSymbol("Sk.misceval.print_",Sk.misceval.print_),Sk.misceval.loadname=function(t,e){if(void 0!==(e=e[t]))return e;if(void 0!==(e=Sk.builtins[t]))return e;throw new Sk.builtin.NameError("name '"+Sk.unfixReserved(t)+"' is not defined")},Sk.exportSymbol("Sk.misceval.loadname",Sk.misceval.loadname),Sk.misceval.call=function(t,e,n,i,s){return s=Array.prototype.slice.call(arguments,4),Sk.misceval.apply(t,e,n,i,s)},Sk.exportSymbol("Sk.misceval.call",Sk.misceval.call),Sk.misceval.callAsync=function(t,e,n,i,s,r){return r=Array.prototype.slice.call(arguments,5),Sk.misceval.applyAsync(t,e,n,i,s,r)},Sk.exportSymbol("Sk.misceval.callAsync",Sk.misceval.callAsync),Sk.misceval.callOrSuspend=function(t,e,n,i,s){return s=Array.prototype.slice.call(arguments,4),Sk.misceval.applyOrSuspend(t,e,n,i,s)},Sk.exportSymbol("Sk.misceval.callOrSuspend",Sk.misceval.callOrSuspend),Sk.misceval.callsim=function(t,e){return e=Array.prototype.slice.call(arguments,1),Sk.misceval.apply(t,void 0,void 0,void 0,e)},Sk.exportSymbol("Sk.misceval.callsim",Sk.misceval.callsim),Sk.misceval.callsimArray=function(t,e,n){return e=e||[],Sk.misceval.retryOptionalSuspensionOrThrow(Sk.misceval.callsimOrSuspendArray(t,e,n))},Sk.exportSymbol("Sk.misceval.callsimArray",Sk.misceval.callsimArray),Sk.misceval.callsimAsync=function(t,e,n){return n=Array.prototype.slice.call(arguments,2),Sk.misceval.applyAsync(t,e,void 0,void 0,void 0,n)},Sk.exportSymbol("Sk.misceval.callsimAsync",Sk.misceval.callsimAsync),Sk.misceval.callsimOrSuspend=function(t,e){return e=Array.prototype.slice.call(arguments,1),Sk.misceval.applyOrSuspend(t,void 0,void 0,void 0,e)},Sk.exportSymbol("Sk.misceval.callsimOrSuspend",Sk.misceval.callsimOrSuspend),Sk.misceval.callsimOrSuspendArray=function(t,e,n){return e=e||[],void 0!==t&&t.tp$call?t.tp$call(e,n):Sk.misceval.applyOrSuspend(t,void 0,void 0,n,e)},Sk.exportSymbol("Sk.misceval.callsimOrSuspendArray",Sk.misceval.callsimOrSuspendArray),Sk.misceval.apply=function(t,e,n,i,s){return(t=Sk.misceval.applyOrSuspend(t,e,n,i,s))instanceof Sk.misceval.Suspension?Sk.misceval.retryOptionalSuspensionOrThrow(t):t},Sk.exportSymbol("Sk.misceval.apply",Sk.misceval.apply),Sk.misceval.asyncToPromise=function(t,e){return new Promise((function(n,i){try{!function t(s){try{for(var r=function(){try{t(s.resume())}catch(t){i(t)}},o=function(t){try{s.data.result=t,r()}catch(t){i(t)}},a=function(t){try{s.data.error=t,r()}catch(t){i(t)}};s instanceof Sk.misceval.Suspension;){var l=e&&(e[s.data.type]||e["*"]);if(l){var u=l(s);if(u)return void u.then(t,i)}if("Sk.promise"==s.data.type)return void s.data.promise.then(o,a);if("Sk.yield"==s.data.type)return void Sk.global.setImmediate(r);if("Sk.delay"==s.data.type)return void Sk.global.setImmediate(r);if(!s.optional)throw new Sk.builtin.SuspensionError("Unhandled non-optional suspension of type '"+s.data.type+"'");s=s.resume()}n(s)}catch(t){i(t)}}(t())}catch(t){i(t)}}))},Sk.exportSymbol("Sk.misceval.asyncToPromise",Sk.misceval.asyncToPromise),Sk.misceval.applyAsync=function(t,e,n,i,s,r){return Sk.misceval.asyncToPromise((function(){return Sk.misceval.applyOrSuspend(e,n,i,s,r)}),t)},Sk.exportSymbol("Sk.misceval.applyAsync",Sk.misceval.applyAsync),Sk.misceval.chain=function(t,e){for(var n,i,s=1,r=t;;){if(s==arguments.length)return r;if(r&&r.$isSuspension)break;r=arguments[s](r),s++}for(i=Array(arguments.length-s),n=0;nt[i++]},e,n)},Sk.misceval.arrayFromIterable=function(t,e){if(void 0===t)return[];if(void 0===t.ht$type&&void 0!==t.sk$asarray)return t.sk$asarray();const n=[];return t=Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{n.push(t)})),(()=>n)),e?t:Sk.misceval.retryOptionalSuspensionOrThrow(t)},Sk.misceval.Break=function(t){if(!(this instanceof Sk.misceval.Break))return new Sk.misceval.Break(t);this.brValue=t},Sk.exportSymbol("Sk.misceval.Break",Sk.misceval.Break),Sk.misceval.applyOrSuspend=function(t,e,n,i,s){var r;if(null==t||t===Sk.builtin.none.none$)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not callable");"function"==typeof t&&void 0===t.tp$call&&(t=new Sk.builtin.func(t));var o=t.tp$call;if(void 0!==o){if(n)for(r=(n=n.tp$iter()).tp$iternext();void 0!==r;r=n.tp$iternext())s.push(r);if(e)for(r=(n=Sk.abstr.iter(e)).tp$iternext();void 0!==r;r=n.tp$iternext()){if(!Sk.builtin.checkString(r))throw new Sk.builtin.TypeError("Function keywords must be strings");i.push(r.v),i.push(Sk.abstr.objectGetItem(e,r,!1))}return o.call(t,s,i,e)}if(void 0!==(o=t.__call__))return s.unshift(t),Sk.misceval.apply(o,e,n,i,s);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not callable")},Sk.exportSymbol("Sk.misceval.applyOrSuspend",Sk.misceval.applyOrSuspend),Sk.misceval.promiseToSuspension=function(t){var e=new Sk.misceval.Suspension;return e.resume=function(){if(e.data.error)throw e.data.error;return e.data.result},e.data={type:"Sk.promise",promise:t},e},Sk.exportSymbol("Sk.misceval.promiseToSuspension",Sk.misceval.promiseToSuspension),Sk.misceval.buildClass=function(t,e,n,i,s,r){n=new Sk.builtin.str(n);const o=new Sk.builtin.tuple(i);let a;i=i||[];var l=!0;const u=(r=r||[]).indexOf("metaclass");-1{if(t=t.ob$type,!n.$isSubType(t)){if(!t.$isSubType(n))throw new Sk.builtin.TypeError("metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases");n=t}})),n}(a,i));let c=null;a!==Sk.builtin.type&&([c,h]=function(t,e,n,i,s){const r=t.tp$getattr(Sk.builtin.str.$prepare);let o,a=null;if(void 0===r)return[a,o];if(a=Sk.misceval.callsimArray(r,[e,n],i),!Sk.builtin.checkMapping(a))throw new Sk.builtin.TypeError(s?t.prototype.tp$name:".__prepare__() must return a mapping not '"+Sk.abstr.typeName(a)+"'");return o={get(t,e){try{return Sk.abstr.objectGetItem(t,new Sk.builtin.str(Sk.unfixReserved(e)))}catch(t){if(!(t instanceof Sk.builtin.KeyError))throw t}},set:(t,e,n)=>(Sk.abstr.objectSetItem(t,new Sk.builtin.str(Sk.unfixReserved(e)),n),!0)},[a,o]}(a,n,o,r,l)),i=!1;let p={};if(null===c)c=new Sk.builtin.dict([]);else if(c.constructor===Sk.builtin.dict||function(){const t=(Sk.global.navigator||{}).userAgent||"";return-1{Sk.abstr.objectSetItem(c,new Sk.builtin.str(t),p[t])})),Sk.misceval.callsimOrSuspendArray(a,[n,o,c],r)},Sk.exportSymbol("Sk.misceval.buildClass",Sk.misceval.buildClass)},function(t,e){Sk.builtin.callable_iter_=Sk.abstr.buildIteratorClass("callable_iterator",{constructor:function(t,e){if(!Sk.builtin.checkCallable(t))throw new Sk.builtin.TypeError("iter(v, w): v must be callable");this.$callable=t,this.$sentinel=e,this.$flag=!1},iternext(t){if(!0!==this.$flag){if(t)return t=Sk.misceval.callsimOrSuspendArray(this.$callable,[]),Sk.misceval.chain(t,(t=>{if(!Sk.misceval.richCompareBool(t,this.$sentinel,"Eq",!0))return t;this.$flag=!0}));if(t=Sk.misceval.callsimArray(this.$callable,[]),!Sk.misceval.richCompareBool(t,this.$sentinel,"Eq",!1))return t;this.$flag=!0}},flags:{sk$unacceptableBase:!0}}),Sk.builtin.seq_iter_=Sk.abstr.buildIteratorClass("iterator",{constructor:function(t){this.$index=0,this.$seq=t},iternext(t){let e;return e=Sk.misceval.tryCatch((()=>this.$seq.mp$subscript(new Sk.builtin.int_(this.$index++),t)),(t=>{if(!(t instanceof Sk.builtin.IndexError||t instanceof Sk.builtin.StopIteration))throw t;this.gi$ret=t.$value||Sk.builtin.none.none$})),t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)},methods:{__length_hint__:{$flags:{NoArgs:!0},$meth(){if(this.$seq.sq$length)return this.$seq.sq$length()-this.$index;throw new Sk.builtin.NotImplementedError("len is not implemented for "+Sk.abstr.typeName(this.$seq))}}},flags:{sk$unacceptableBase:!0}}),Sk.exportSymbol("Sk.builtin.callable_iter_",Sk.builtin.callable_iter_)},function(t,e){Sk.builtin.list=Sk.abstr.buildNativeClass("list",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.list,"bad call to list, use 'new' with an Array of python objects"),this.v=t,this.in$repr=!1},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$hash:Sk.builtin.none.none$,tp$doc:"Built-in mutable sequence.\n\nIf no argument is given, the constructor creates a new empty list.\nThe argument must be an iterable if specified.",tp$new:Sk.generic.new,tp$init(t,e){return Sk.abstr.checkNoKwargs("list",e),Sk.abstr.checkArgsLen("list",t,0,1),Sk.misceval.chain(Sk.misceval.arrayFromIterable(t[0],!0),(t=>{this.v=t}))},$r(){if(this.in$repr)return new Sk.builtin.str("[...]");this.in$repr=!0;const t=this.v.map((t=>Sk.misceval.objectRepr(t)));return this.in$repr=!1,new Sk.builtin.str("["+t.join(", ")+"]")},tp$richcompare:Sk.generic.seqCompare,tp$iter(){return new n(this)},sq$length(){return this.v.length},sq$concat(t){if(!(t instanceof Sk.builtin.list))throw new Sk.builtin.TypeError("can only concatenate list to list");return new Sk.builtin.list(this.v.concat(t.v))},sq$contains(t){for(let e=this.tp$iter(),n=e.tp$iternext();void 0!==n;n=e.tp$iternext())if(n===t||Sk.misceval.richCompareBool(n,t,"Eq"))return!0;return!1},sq$repeat(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(t)+"'");if((t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError))*this.v.length>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;const e=[];for(let n=0;n{e.push(this.v[t])})),new Sk.builtin.list(e)}throw new Sk.builtin.TypeError("list indices must be integers or slices, not "+Sk.abstr.typeName(t))},mp$ass_subscript(t,e){void 0===e?this.del$subscript(t):this.ass$subscript(t,e)},sq$inplace_concat(t){return t===this?(this.v.push(...this.v),this):Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.v.push(t)})),(()=>this))},sq$inplace_repeat(t){if(!Sk.misceval.isIndex(t))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(t)+"'");t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError);const e=this.v.length;if(0>=t)this.v.length=0;else if(t*e>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;for(let n=1;n{this.v.push(t)})),(()=>Sk.builtin.none.none$))},$flags:{OneArg:!0},$textsig:"($self, iterable, /)",$doc:"Extend list by appending elements from the iterable."},pop:{$meth(t){t=void 0===t?this.v.length-1:Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError),t=this.list$inRange(t,"pop index out of range");const e=this.v[t];return this.v.splice(t,1),e},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, index=-1, /)",$doc:"Remove and return item at index (default last).\n\nRaises IndexError if list is empty or index is out of range."},remove:{$meth(t){if(-1===(t=this.list$indexOf(t)))throw new Sk.builtin.ValueError("list.remove(x): x not in list");return this.v.splice(t,1),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:"($self, value, /)",$doc:"Remove first occurrence of value.\n\nRaises ValueError if the value is not present."},sort:{$meth(t,e){if(t.length)throw new Sk.builtin.TypeError("sort() takes no positional arguments");const[n,i]=Sk.abstr.copyKeywordsToNamedArgs("sort",["key","reverse"],t,e,[Sk.builtin.none.none$,Sk.builtin.bool.false$]);return this.list$sort(void 0,n,i)},$flags:{FastCall:!0},$textsig:"($self, /, *, key=None, reverse=False)",$doc:"Stable sort *IN PLACE*."},index:{$meth(t,e,n){if(void 0!==e&&!Sk.misceval.isIndex(e)||void 0!==n&&!Sk.misceval.isIndex(n))throw new Sk.builtin.TypeError("slice indices must be integers or have an __index__ method");if(-1===(e=this.list$indexOf(t,e,n)))throw new Sk.builtin.ValueError(Sk.misceval.objectRepr(t)+" is not in list");return new Sk.builtin.int_(e)},$flags:{MinArgs:1,MaxArgs:3},$textsig:"($self, value, start=0, stop=sys.maxsize, /)",$doc:"Return first index of value.\n\nRaises ValueError if the value is not present."},count:{$meth(t){let e=0;const n=this.v.length;for(let i=0;it&&(t+=this.v.length),0<=t&&t{n.push(t)})),!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("must assign iterable to extended slice");if(t=Sk.misceval.arrayFromIterable(e),n.length!==t.length)throw new Sk.builtin.ValueError("attempt to assign sequence of size "+t.length+" to extended slice of size "+n.length);for(e=0;e{this.v.splice(t-n,1),n+=e}))},valueOf(){return this.v}}}),Sk.exportSymbol("Sk.builtin.list",Sk.builtin.list),Sk.builtin.list.py2$methods={sort:{$name:"sort",$meth(t,e){const[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("sort",["cmp","key","reverse"],t,e,[Sk.builtin.none.none$,Sk.builtin.none.none$,Sk.builtin.bool.false$]);return this.list$sort(n,i,s)},$flags:{FastCall:!0},$textsig:"($self, cmp=None, key=None, reverse=False)",$doc:"Stable sort *IN PLACE*."}};var n=Sk.abstr.buildIteratorClass("list_iterator",{constructor:function(t){this.$index=0,this.$seq=t.v},iternext:Sk.generic.iterNextWithArray,methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}}),i=Sk.abstr.buildIteratorClass("list_reverseiterator",{constructor:function(t){this.$index=t.v.length-1,this.$seq=t.v},iternext(){const t=this.$seq[this.$index--];if(void 0!==t)return t;this.tp$iternext=()=>{}},methods:{__length_hint__:Sk.generic.iterReverseLengthHintMethodDef},flags:{sk$unacceptableBase:!0}})},function(t,e,n){function i(t){var e=t.replace(T,"").replace(y,"_").toLowerCase();return void 0===(e=k[e])?t:e}function s(t,e,n){if(void 0===e)e="utf-8";else{if(!Sk.builtin.checkString(e))throw new Sk.builtin.TypeError(t+"() argument "+("bytesstr".includes(t)?2:1)+" must be str not "+Sk.abstr.typeName(e));e=e.$jsstr()}if(void 0===n)n="strict";else{if(!Sk.builtin.checkString(n))throw new Sk.builtin.TypeError(t+"() argument "+("bytesstr".includes(t)?3:2)+" must be str not "+Sk.abstr.typeName(n));n=n.$jsstr()}return{encoding:e,errors:n}}function r(t,e,n){if(t=t.$jsstr(),e=i(e),"strict"!==n&&"ignore"!==n&&"replace"!==n)throw new Sk.builtin.NotImplementedError("'"+n+"' error handling not implemented in Skulpt");if("ascii"===e){for(s in e=[],t){const i=t.charCodeAt(s);if(127=t?"\\x":"\\u";return 3===(t=t.toString(16)).length&&(t=t.slice(1,3)),1===t.length?e+"0"+t:e+t}function a(t,e){if(({encoding:t,errors:e}=s("decode",t,e)),t=i(t),"strict"!==e&&"ignore"!==e&&"replace"!==e)throw new Sk.builtin.NotImplementedError("'"+e+"' error handling not implemented in Skulpt");if("ascii"===t){t=this.v;var n="";for(let i=0;i=n&&en)return new Sk.builtin.tuple([new Sk.builtin.bytes,new Sk.builtin.bytes,this])}else if(n=this.find$subleft(e,0,this.v.length),0>n)return new Sk.builtin.tuple([this,new Sk.builtin.bytes,new Sk.builtin.bytes]);return new Sk.builtin.tuple([new Sk.builtin.bytes(this.v.subarray(0,n)),new Sk.builtin.bytes(e),new Sk.builtin.bytes(this.v.subarray(n+e.length))])}}function p(t,e){return function(n){var i=void 0===n||n===Sk.builtin.none.none$?new Uint8Array([9,10,11,12,13,32,133]):this.get$raw(n);n=0;var s=this.v.length;if(t)for(;nn&&i.includes(this.v[s-1]);)s--;for(i=new Uint8Array(s-n),s=0;s=t||32===t}function d(t){return 97<=t&&122>=t}function f(t){return 65<=t&&90>=t}function m(t){return 48<=t&&57>=t}function g(t,e){return function(){return 0===this.v.length?e?Sk.builtin.bool.true$:Sk.builtin.bool.false$:this.v.every((e=>t(e)))?Sk.builtin.bool.true$:Sk.builtin.bool.false$}}function b(t,e){return function(){let n=!1;for(let i=0;i0<=t&&255>=t)),"bad internal call to bytes with array"),this.v=new Uint8Array(t);else if("string"==typeof t){let e;const n=new Uint8Array(t.length),i=t.length;for(let s=0;s bytes\nbytes(string, encoding[, errors]) -> bytes\nbytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer\nbytes(int) -> bytes object of size given by the parameter initialized with null bytes\nbytes() -> empty bytes object\n\nConstruct an immutable array of bytes from:\n - an iterable yielding integers in range(256)\n - a text string encoded using the specified encoding\n - any object implementing the buffer API.\n - an integer",tp$new(t,e){if(this!==Sk.builtin.bytes.prototype)return this.$subtype_new(t,e);let n;if(e=e||[],!(1>=t.length&&0==+e.length)){if([t,e,n]=Sk.abstr.copyKeywordsToNamedArgs("bytes",[null,"pySource","errors"],t,e),({encoding:e,errors:n}=s("bytes",e,n)),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("encoding or errors without a string argument");return r(t,e,n)}if(void 0===(t=t[0]))return new Sk.builtin.bytes;if(void 0!==(e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$bytes)))return t=Sk.misceval.callsimOrSuspendArray(e,[]),Sk.misceval.chain(t,(t=>{if(!Sk.builtin.checkBytes(t))throw new Sk.builtin.TypeError("__bytes__ returned non-bytes (type "+Sk.abstr.typeName(t)+")");return t}));if(Sk.misceval.isIndex(t)){if(0>(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError)))throw new Sk.builtin.ValueError("negative count");return new Sk.builtin.bytes(t)}if(Sk.builtin.checkBytes(t))return new Sk.builtin.bytes(t.v);if(Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("string argument without an encoding");if(Sk.builtin.checkIterable(t)){let e=[];return t=Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(0>(t=Sk.misceval.asIndexSized(t))||255new Sk.builtin.bytes(e)))}throw new Sk.builtin.TypeError("cannot convert '"+Sk.abstr.typeName(t)+"' object into bytes")},$r(){let t,e="'";const n=-1!==this.v.indexOf(34);let i="";for(let s=0;st||10t||13t||126t.length||n[i]>t[i];case"GtE":return i===s&&n.length>=t.length||n[i]>=t[i]}},tp$hash(){return new Sk.builtin.str(this.$jsstr()).tp$hash()},tp$as_sequence_or_mapping:!0,mp$subscript(t){if(Sk.misceval.isIndex(t)){let e=Sk.misceval.asIndexSized(t,Sk.builtin.IndexError);if(void 0!==e){if(0>e&&(e=this.v.length+e),0>e||e>=this.v.length)throw new Sk.builtin.IndexError("index out of range");return new Sk.builtin.int_(this.v[e])}}else if(t instanceof Sk.builtin.slice){const e=[];return t.sssiter$(this.v.length,(t=>{e.push(this.v[t])})),new Sk.builtin.bytes(new Uint8Array(e))}throw new Sk.builtin.TypeError("byte indices must be integers or slices, not "+Sk.abstr.typeName(t))},sq$length(){return this.v.length},sq$concat(t){if(!(t instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("can't concat "+Sk.abstr.typeName(t)+" to bytes");const e=new Uint8Array(this.v.length+t.v.length);let n;for(n=0;nNumber.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError;if(0>=t)return new Sk.builtin.bytes;t=new Uint8Array(e);let n=0;for(;n(t=Sk.misceval.asIndexOrThrow(t,"argument should be integer or bytes-like object, not {tp$name}"))||255(e=Sk.misceval.asIndexSized(e,Sk.builtin.OverflowError))?1/0:e,null!==(t=Sk.builtin.checkNone(t)?null:this.get$raw(t))&&!t.length)throw new Sk.builtin.ValueError("empty separator");return{sep:t,maxsplit:e}},find$left:u(!1),find$right:u(!0),find$subleft:function(t,e,n){n=n-t.length+1;let i=e;for(;it===this.v[i+e])))return i;i++}return-1},find$subright(t,e,n){let i=n-t.length;for(;i>=e;){if(t.every(((t,e)=>t===this.v[i+e])))return i;i--}return-1},$subtype_new(t,e){const n=new this.constructor;return t=Sk.builtin.bytes.prototype.tp$new(t,e),n.v=t.v,n},sk$asarray(){const t=[];return this.v.forEach((e=>{t.push(new Sk.builtin.int_(e))})),t},valueOf(){return this.v}},flags:{str$encode:r,$decode:a,check$encodeArgs:s},methods:{__getnewargs__:{$meth(){return new Sk.builtin.tuple(new Sk.builtin.bytes(this.v))},$flags:{NoArgs:!0},$textsig:null,$doc:null},capitalize:{$meth(){const t=this.v.length;if(0===t)return new Sk.builtin.bytes(this.v);const e=new Uint8Array(t);let n=this.v[0];e[0]=d(n)?n-32:n;for(let i=1;i copy of B\n\nReturn a copy of B with only its first character capitalized (ASCII)\nand the rest lower-cased."},center:{$meth:h("center",!1,!0),$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"B.center(width[, fillchar]) -> copy of B\n\nReturn B centered in a string of length width. Padding is\ndone using the specified fill character (default is a space)."},count:{$meth(t,e,n){t=this.get$tgt(t),({start:e,end:n}=Sk.builtin.slice.startEnd$wrt(this,e,n));let i=0;if("number"==typeof t)for(;et===this.v[s+e]))&&(i++,s+=t.length-1)}return new Sk.builtin.int_(i)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.count(sub[, start[, end]]) -> int\n\nReturn the number of non-overlapping occurrences of subsection sub in\nbytes B[start:end]. Optional arguments start and end are interpreted\nas in slice notation."},decode:{$meth:a,$flags:{NamedArgs:["encoding","errors"]},$textsig:"($self, /, encoding='utf-8', errors='strict')",$doc:"Decode the bytes using the codec registered for encoding.\n\n encoding\n The encoding with which to decode the bytes.\n errors\n The error handling scheme to use for the handling of decoding errors.\n The default is 'strict' meaning that decoding errors raise a\n UnicodeDecodeError. Other possible values are 'ignore' and 'replace'\n as well as any other name registered with codecs.register_error that\n can handle UnicodeDecodeErrors."},endswith:{$meth:l("endswith",((t,e)=>{const n=t.length-e.length;return 0<=n&&e.every(((e,i)=>e===t[n+i]))})),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.endswith(suffix[, start[, end]]) -> bool\n\nReturn True if B ends with the specified suffix, False otherwise.\nWith optional start, test B beginning at that position.\nWith optional end, stop comparing B at that position.\nsuffix can also be a tuple of bytes to try."},expandtabs:{$meth(t){t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError,"an integer is required (got type {tp$nam})");const e=[];let n=0;for(let s=0;s copy of B\n\nReturn a copy of B where all tab characters are expanded using spaces.\nIf tabsize is not given, a tab size of 8 characters is assumed."},find:{$meth:function(t,e,n){return new Sk.builtin.int_(this.find$left(t,e,n))},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.find(sub[, start[, end]]) -> int\n\nReturn the lowest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},hex:{$meth(){let t="";for(let e=0;e string\n\nCreate a string of hexadecimal numbers from a bytes object.\nExample: b'\\xb9\\x01\\xef'.hex() -> 'b901ef'."},index:{$meth:function(t,e,n){if(-1===(t=this.find$left(t,e,n)))throw new Sk.builtin.ValueError("subsection not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.index(sub[, start[, end]]) -> int\n\nReturn the lowest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaises ValueError when the subsection is not found."},isalnum:{$meth:g((t=>m(t)||d(t)||f(t))),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isalnum() -> bool\n\nReturn True if all characters in B are alphanumeric\nand there is at least one character in B, False otherwise."},isalpha:{$meth:g((t=>65<=t&&90>=t||97<=t&&122>=t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isalpha() -> bool\n\nReturn True if all characters in B are alphabetic\nand there is at least one character in B, False otherwise."},isascii:{$meth:g((t=>0<=t&&127>=t),!0),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isascii() -> bool\n\nReturn True if B is empty or all characters in B are ASCII,\nFalse otherwise."},isdigit:{$meth:g(m),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isdigit() -> bool\n\nReturn True if all characters in B are digits\nand there is at least one character in B, False otherwise."},islower:{$meth:b(d,f),$flags:{NoArgs:!0},$textsig:null,$doc:"B.islower() -> bool\n\nReturn True if all cased characters in B are lowercase and there is\nat least one cased character in B, False otherwise."},isspace:{$meth:g(_),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isspace() -> bool\n\nReturn True if all characters in B are whitespace\nand there is at least one character in B, False otherwise."},istitle:{$meth:function(){let t=!1,e=!1;for(let n=0;n bool\n\nReturn True if B is a titlecased string and there is at least one\ncharacter in B, i.e. uppercase characters may only follow uncased\ncharacters and lowercase characters only cased ones. Return False\notherwise."},isupper:{$meth:b(f,d),$flags:{NoArgs:!0},$textsig:null,$doc:"B.isupper() -> bool\n\nReturn True if all cased characters in B are uppercase and there is\nat least one cased character in B, False otherwise."},join:{$meth(t){const e=[];let n=0;return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(!(t instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("sequence item "+n+": expected a bytes-like object, "+Sk.abstr.typeName(t)+" found");n++,e.length&&e.push(...this.v),e.push(...t.v)})),(()=>new Sk.builtin.bytes(new Uint8Array(e))))},$flags:{OneArg:!0},$textsig:"($self, iterable_of_bytes, /)",$doc:"Concatenate any number of bytes objects.\n\nThe bytes whose method is called is inserted in between each pair.\n\nThe result is returned as a new bytes object.\n\nExample: b'.'.join([b'ab', b'pq', b'rs']) -> b'ab.pq.rs'."},ljust:{$meth:h("ljust",!1,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"B.ljust(width[, fillchar]) -> copy of B\n\nReturn B left justified in a string of length width. Padding is\ndone using the specified fill character (default is a space)."},lower:{$meth:S((t=>f(t)?t+32:t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.lower() -> copy of B\n\nReturn a copy of B with all ASCII characters converted to lowercase."},lstrip:{$meth:p(!0,!1),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, bytes=None, /)",$doc:"Strip leading bytes contained in the argument.\n\nIf the argument is omitted or None, strip leading ASCII whitespace."},partition:{$meth:c(!1),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the bytes into three parts using the given separator.\n\nThis will search for the separator sep in the bytes. If the separator is found,\nreturns a 3-tuple containing the part before the separator, the separator\nitself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing the original bytes\nobject and two empty bytes objects."},replace:{$meth(t,e,n){t=this.get$raw(t),e=this.get$raw(e),n=0>(n=void 0===n?-1:Sk.misceval.asIndexSized(n,Sk.builtin.OverflowError))?1/0:n;const i=[];let s=0;for(var r=0;r int\n\nReturn the highest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nReturn -1 on failure."},rindex:{$meth:function(t,e,n){if(-1===(t=this.find$right(t,e,n)))throw new Sk.builtin.ValueError("subsection not found");return new Sk.builtin.int_(t)},$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.rindex(sub[, start[, end]]) -> int\n\nReturn the highest index in B where subsection sub is found,\nsuch that sub is contained within B[start,end]. Optional\narguments start and end are interpreted as in slice notation.\n\nRaise ValueError when the subsection is not found."},rjust:{$meth:h("rjust",!0,!1),$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"B.rjust(width[, fillchar]) -> copy of B\n\nReturn B right justified in a string of length width. Padding is\ndone using the specified fill character (default is a space)"},rpartition:{$meth:c(!0),$flags:{OneArg:!0},$textsig:"($self, sep, /)",$doc:"Partition the bytes into three parts using the given separator.\n\nThis will search for the separator sep in the bytes, starting at the end. If\nthe separator is found, returns a 3-tuple containing the part before the\nseparator, the separator itself, and the part after it.\n\nIf the separator is not found, returns a 3-tuple containing two empty bytes\nobjects and the original bytes object."},rsplit:{$meth:function(t,e){({sep:t,maxsplit:e}=this.get$splitArgs(t,e));const n=[];let i=0,s=this.v.length;if(null!==t){for(;0<=s&&is)break;for(t=s+1,s--;0<=s&&!_(this.v[s]);)s--;n.push(new Sk.builtin.bytes(this.v.subarray(s+1,t))),i++}if(0<=s){for(;_(this.v[s]);)s--;0<=s&&n.push(new Sk.builtin.bytes(this.v.subarray(0,s+1)))}}return new Sk.builtin.list(n.reverse())},$flags:{NamedArgs:["sep","maxsplit"],Defaults:[Sk.builtin.none.none$,-1]},$textsig:"($self, /, sep=None, maxsplit=-1)",$doc:"Return a list of the sections in the bytes, using sep as the delimiter.\n\n sep\n The delimiter according which to split the bytes.\n None (the default value) means split on ASCII whitespace characters\n (space, tab, return, newline, formfeed, vertical tab).\n maxsplit\n Maximum number of splits to do.\n -1 (the default value) means no limit.\n\nSplitting is done starting at the end of the bytes and working to the front."},rstrip:{$meth:p(!1,!0),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, bytes=None, /)",$doc:"Strip trailing bytes contained in the argument.\n\nIf the argument is omitted or None, strip trailing ASCII whitespace."},split:{$meth:function(t,e){({sep:t,maxsplit:e}=this.get$splitArgs(t,e));const n=[],i=this.v.length;let s=0,r=0;if(null!==t){for(;re.length<=t.length&&e.every(((e,n)=>e===t[n])))),$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"B.startswith(prefix[, start[, end]]) -> bool\n\nReturn True if B starts with the specified prefix, False otherwise.\nWith optional start, test B beginning at that position.\nWith optional end, stop comparing B at that position.\nprefix can also be a tuple of bytes to try."},strip:{$meth:p(!0,!0),$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, bytes=None, /)",$doc:"Strip leading and trailing bytes contained in the argument.\n\nIf the argument is omitted or None, strip leading and trailing ASCII whitespace."},swapcase:{$meth:S((t=>f(t)?t+32:d(t)?t-32:t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.swapcase() -> copy of B\n\nReturn a copy of B with uppercase ASCII characters converted\nto lowercase ASCII and vice versa."},title:{$meth(){const t=this.v.length,e=new Uint8Array(t);let n=!1;for(let i=0;i copy of B\n\nReturn a titlecased version of B, i.e. ASCII words start with uppercase\ncharacters, all remaining cased characters have lowercase."},upper:{$meth:S((t=>d(t)?t-32:t)),$flags:{NoArgs:!0},$textsig:null,$doc:"B.upper() -> copy of B\n\nReturn a copy of B with all ASCII characters converted to uppercase."},zfill:{$meth(t){const e=(t=Sk.misceval.asIndexSized(t,Sk.builtin.IndexError))-this.v.length;if(0>=e)return new Sk.builtin.bytes(this.v);const n=new Uint8Array(t);let i,s=0;for(43!==this.v[0]&&45!==this.v[0]||(n[0]=this.v[0],s++),n.fill(48,s,s+e),i=s,s+=e;s copy of B\n\nPad a numeric string B with zeros on the left, to fill a field\nof the specified width. B is never truncated."}},classmethods:{fromhex:{$meth:function(t){function e(e){for(let n=o;n b'\\\\xb9\\\\x01\\\\xef'."}}});var w=Sk.abstr.buildIteratorClass("bytes_iterator",{constructor:function(t){this.$index=0,this.$seq=t.v},iternext(){const t=this.$seq[this.$index++];if(void 0!==t)return new Sk.builtin.int_(t)},methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}});Sk.exportSymbol("Sk.builtin.bytes",Sk.builtin.bytes)},function(t,e,n){(function(t){!function(t){function e(){}function n(){}var i=String.fromCharCode,s={}.toString,r=s.call(t.SharedArrayBuffer),o=s(),a=t.Uint8Array,l=a||Array,u=a?ArrayBuffer:l,c=u.isView||function(t){return t&&"length"in t},p=s.call(u.prototype);u=n.prototype;var h=t.TextEncoder,_=new(a?Uint16Array:l)(32);e.prototype.decode=function(t){if(!c(t)){var e=s.call(t);if(e!==p&&e!==r&&e!==o)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");t=a?new l(t):t||[]}for(var n,u,h,d=e="",f=0,m=0|t.length,g=m-32|0,b=0,S=0,k=0,T=-1;f>4){case 15:if(2!=(h=255&t[f=f+1|0])>>6||247>6?S+4|0:24,u=u+256&768;case 13:case 12:b<<=6,b|=(31&u)<<6|63&(h=255&t[f=f+1|0]),S=S+7|0,f>6&&b>>S&&1114112>b?(u=b,0<=(b=b-65536|0)&&(T=55296+(b>>10)|0,u=56320+(1023&b)|0,31>k?(_[k]=T,k=k+1|0,T=-1):(h=T,T=u,u=h))):(f=f-(u>>=8)-1|0,u=65533),b=S=0,n=f<=g?32:m-f|0;default:_[k]=u;continue;case 11:case 10:case 9:case 8:}_[k]=65533}if(d+=i(_[0],_[1],_[2],_[3],_[4],_[5],_[6],_[7],_[8],_[9],_[10],_[11],_[12],_[13],_[14],_[15],_[16],_[17],_[18],_[19],_[20],_[21],_[22],_[23],_[24],_[25],_[26],_[27],_[28],_[29],_[30],_[31]),32>k&&(d=d.slice(0,k-32|0)),f>>31,T=-1,d.length=o)i[s]=o;else{if(2047>=o)i[s]=192|o>>6;else{t:{if(55296<=o)if(56319>=o){var u=0|t.charCodeAt(e=e+1|0);if(56320<=u&&57343>=u){if(65535<(o=(o<<10)+u-56613888|0)){i[s]=240|o>>18,i[s=s+1|0]=128|o>>12&63,i[s=s+1|0]=128|o>>6&63,i[s=s+1|0]=128|63&o;continue}break t}o=65533}else 57343>=o&&(o=65533);!r&&e<<1>12,i[s=s+1|0]=128|o>>6&63}i[s=s+1|0]=128|63&o}}return a?i.subarray(0,s):i.slice(0,s)},h||(t.TextDecoder=e,t.TextEncoder=n)}(void 0===t?"undefined"==typeof self?this:self:t)}).call(this,n(0))},function(t,e){Sk.builtin.tuple=Sk.abstr.buildNativeClass("tuple",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.tuple,"bad call to tuple, use 'new' with an Array of python objects"),this.v=t,this.in$repr=!1},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$doc:"Built-in immutable sequence.\n\nIf no argument is given, the constructor returns an empty tuple.\nIf iterable is specified the tuple is initialized from iterable's items.\n\nIf the argument is a tuple, the return value is the same object.",$r(){if(this.in$repr)return new Sk.builtin.str("(...)");this.in$repr=!0;let t=this.v.map((t=>Sk.misceval.objectRepr(t)));return this.in$repr=!1,t=t.join(", "),1===this.v.length&&(t+=","),new Sk.builtin.str("("+t+")")},tp$new(t,e){return this!==Sk.builtin.tuple.prototype?this.$subtype_new(t,e):(Sk.abstr.checkNoKwargs("tuple",e),Sk.abstr.checkArgsLen("tuple",t,0,1),void 0===(t=t[0])?new Sk.builtin.tuple([]):t.constructor===Sk.builtin.tuple?t:Sk.misceval.chain(Sk.misceval.arrayFromIterable(t,!0),(t=>new Sk.builtin.tuple(t))))},tp$hash(){let t,e=3430008,n=1000003;const i=this.v.length;for(let s=0;s(t=Sk.misceval.asIndexSized(t,Sk.builtin.IndexError))&&(t=this.v.length+t),0>t||t>=this.v.length)throw new Sk.builtin.IndexError("tuple index out of range");return this.v[t]}if(t instanceof Sk.builtin.slice){const e=[];return t.sssiter$(this.v.length,(t=>{e.push(this.v[t])})),new Sk.builtin.tuple(e)}throw new Sk.builtin.TypeError("tuple indices must be integers or slices, not "+Sk.abstr.typeName(t))},sq$length(){return this.v.length},sq$repeat(t){if(1===(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError))&&this.constructor===Sk.builtin.tuple)return this;const e=[];for(let n=0;n(this.$seq=t.$items(),this.$version=t.$version,n&&(this.$seq=this.$seq.reverse()),this.tp$iternext=this.constructor.prototype.tp$iternext,this.tp$iternext())},iternext:e,methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0},proto:{next$item:a}})}function a(){if(this.$version!==this.$orig.$version){if(this.$seq.length!==this.$orig.get$size())throw new Sk.builtin.RuntimeError("dict changed size during iteration");throw new Sk.builtin.RuntimeError("dictionary keys changed during iteration")}return this.$seq[this.$index++]}Sk.builtin.dict=Sk.abstr.buildNativeClass("dict",{constructor:function(t){void 0===t&&(t=[]),Sk.asserts.assert(Array.isArray(t)&&0==t.length%2&&this instanceof Sk.builtin.dict,"bad call to dict constructor"),this.size=0,this.entries=Object.create(null),this.buckets={};for(let e=0;e new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n d = {}\n for k, v in iterable:\n d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n in the keyword argument list. For example: dict(one=1, two=2)",$r(){if(this.in$repr)return new Sk.builtin.str("{...}");this.in$repr=!0;const t=this.$items().map((t=>{var[e,n]=t;return Sk.misceval.objectRepr(e)+": "+Sk.misceval.objectRepr(n)}));return this.in$repr=!1,new Sk.builtin.str("{"+t.join(", ")+"}")},tp$new:Sk.generic.new,tp$init(t,e){return this.update$common(t,e,"dict")},tp$iter(){return new h(this)},tp$richcompare(t,e){let n;if(!(t instanceof Sk.builtin.dict)||"Eq"!==e&&"NotEq"!==e)return Sk.builtin.NotImplemented.NotImplemented$;if(t===this)n=!0;else if(this.size!==t.size)n=!1;else{let e;n=this.$items().every((n=>{var[i,s]=n;return e=t.mp$lookup(i),void 0!==e&&(e===s||Sk.misceval.richCompareBool(s,e,"Eq"))}))}return"Eq"===e?n:!n},nb$or(t){if(!(t instanceof Sk.builtin.dict))return Sk.builtin.NotImplemented.NotImplemented$;const e=this.dict$copy();return e.dict$merge(t),e},nb$reflected_or(t){return t instanceof Sk.builtin.dict?((t=t.dict$copy()).dict$merge(this),t):Sk.builtin.NotImplemented.NotImplemented$},nb$inplace_or(t){return Sk.misceval.chain(this.update$onearg(t),(()=>this))},sq$length(){return this.get$size()},sq$contains(t){return void 0!==this.mp$lookup(t)},mp$subscript(t,e){var n=this.mp$lookup(t);if(void 0!==n)return n;if(void 0!==(n=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$missing)))return t=Sk.misceval.callsimOrSuspendArray(n,[t]),e?t:Sk.misceval.retryOptionalSuspensionOrThrow(t);throw new Sk.builtin.KeyError(t)},mp$ass_subscript(t,e){if(void 0===e){if(void 0===this.pop$item(t))throw new Sk.builtin.KeyError(t)}else this.set$item(t,e)}},methods:{__reversed__:{$meth(){return new f(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a reverse iterator over the dict keys."},get:{$meth(t,e){return this.mp$lookup(t)||e||Sk.builtin.none.none$},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, key, default=None, /)",$doc:"Return the value for key if key is in the dictionary, else default."},setdefault:{$meth(t,e){let i;const s=n(t);return i="string"==typeof s?this.entries[s]:this.get$bucket_item(t,s),void 0!==i?i[1]:(e=e||Sk.builtin.none.none$,"string"==typeof s?this.entries[s]=[t,e]:this.set$bucket_item(t,e,s),this.size++,this.$version++,e)},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($self, key, default=None, /)",$doc:"Insert key with a value of default if key is not in the dictionary.\n\nReturn the value for key if key is in the dictionary, else default."},pop:{$meth(t,e){const n=this.pop$item(t);if(void 0!==n)return n[1];if(void 0!==e)return e;throw new Sk.builtin.KeyError(t)},$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"D.pop(k[,d]) -> v, remove specified key and return the corresponding value.\nIf key is not found, d is returned if given, otherwise KeyError is raised"},popitem:{$meth(){const t=this.get$size();if(0===t)throw new Sk.builtin.KeyError("popitem(): dictionary is empty");const[e,n]=this.$items()[t-1];return this.pop$item(e),new Sk.builtin.tuple([e,n])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.popitem() -> (k, v), remove and return some (key, value) pair as a\n2-tuple; but raise KeyError if D is empty."},keys:{$meth(){return new u(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.keys() -> a set-like object providing a view on D's keys"},items:{$meth(){return new p(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.items() -> a set-like object providing a view on D's items"},values:{$meth(){return new c(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"D.values() -> an object providing a view on D's values"},update:{$meth(t,e){return Sk.misceval.chain(this.update$common(t,e,"update"),(()=>Sk.builtin.none.none$))},$flags:{FastCall:!0},$textsig:null,$doc:"D.update([E, ]**F) -> None. Update D from dict/iterable E and F.\nIf E is present and has a .keys() method, then does: for k in E: D[k] = E[k]\nIf E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v\nIn either case, this is followed by: for k in F: D[k] = F[k]"},clear:{$meth(){this.size=0,this.$version++,this.entries=Object.create(null),this.buckets={}},$flags:{NoArgs:!0},$textsig:null,$doc:"D.clear() -> None. Remove all items from D."},copy:{$meth(){return this.dict$copy()},$flags:{NoArgs:!0},$textsig:null,$doc:"D.copy() -> a shallow copy of D"}},classmethods:Object.assign({fromkeys:{$meth:function(t,e){e=e||Sk.builtin.none.none$;let n=this===Sk.builtin.dict?new this:this.tp$call([],[]);return Sk.misceval.chain(n,(i=>(n=i,Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>n.mp$ass_subscript(t,e,!0))))),(()=>n))},$flags:{MinArgs:1,MaxArgs:2},$textsig:"($type, iterable, value=None, /)",$doc:"Create a new dictionary with keys from iterable and values set to value."}},Sk.generic.classGetItem),proto:{quick$lookup:function(t){if(void 0!==(t=this.entries[t.$savedKeyHash]))return t[1]},mp$lookup:function(t){const e=n(t);if(void 0!==(t="string"==typeof e?this.entries[e]:this.get$bucket_item(t,e)))return t[1]},get$size(){return this.size},sk$asarray(){return Object.values(this.entries).map((t=>t[0]))},update$common:function(t,e,n){let i;return Sk.abstr.checkArgsLen(n,t,0,1),void 0!==(t=t[0])&&(i=this.update$onearg(t)),Sk.misceval.chain(i,(()=>{if(e)for(let t=0;tvoid 0===t))&&delete this.buckets[e],i},set$bucket_item:function(t,e,n){let i=this.buckets[n];t=[t,e],void 0===i?(this.buckets[n]=[t],n="#"+n+"_0"):-1!==(e=i.indexOf(void 0))?(n="#"+n+"_"+e,i[e]=t):(n="#"+n+"_"+i.length,i.push(t)),this.entries[n]=t},pop$item:function(t){const e=n(t);if("string"==typeof e?(t=this.entries[e],delete this.entries[e]):t=this.pop$bucket_item(t,e),void 0!==t)return this.size--,this.$version++,t},dict$merge:function(t){if(t.tp$iter!==Sk.builtin.dict.prototype.tp$iter){if(void 0===(e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$keys)))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not a mapping");return Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(e),(e=>Sk.misceval.iterFor(Sk.abstr.iter(e),(e=>Sk.misceval.chain(Sk.abstr.objectGetItem(t,e,!0),(t=>{this.set$item(e,t)}))))))}var e=t.tp$iter();for(let n=e.tp$iternext();void 0!==n;n=e.tp$iternext()){const e=t.mp$subscript(n);this.set$item(n,e)}},dict$merge_seq:function(t){let e=0;return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(!Sk.builtin.checkIterable(t))throw new Sk.builtin.TypeError("cannot convert dictionary update sequence element #"+e+" to a sequence");if(2!==(t=Sk.misceval.arrayFromIterable(t)).length)throw new Sk.builtin.ValueError("dictionary update sequence element #"+e+" has length "+t.length+"; 2 is required");this.set$item(t[0],t[1]),e++}))}}});const l={tp$getattr:Sk.generic.getAttr,tp$as_number:!0,tp$as_sequence_or_mapping:!0,tp$hash:Sk.builtin.none.none$,$r(){if(this.in$repr)return new Sk.builtin.str("...");this.in$repr=!0;let t=Sk.misceval.arrayFromIterable(this);return t=t.map((t=>Sk.misceval.objectRepr(t))),this.in$repr=!1,new Sk.builtin.str(Sk.abstr.typeName(this)+"(["+t.join(", ")+"])")},tp$richcompare(t,e){if(!(Sk.builtin.checkAnySet(t)||t instanceof u||t instanceof p))return Sk.builtin.NotImplemented.NotImplemented$;const n=this.sq$length(),i=t.sq$length();switch(e){case"NotEq":case"Eq":let r;return this===t?r=!0:n===i&&(r=s(this,t)),"NotEq"===e?!r:r;case"Lt":return ni&&s(t,this);case"GtE":return n>=i&&s(t,this)}},nb$subtract(t){const e=i(this);return e.difference.$meth.call(e,t)},nb$and(t){const e=i(this);return e.intersection.$meth.call(e,t)},nb$or(t){const e=i(this);return e.union.$meth.call(e,t)},nb$xor(t){const e=i(this);return e.symmetric_difference.$meth.call(e,t)},sq$length(){return this.dict.get$size()}};var u=r("dict_keys",{sq$contains(t){return void 0!==this.dict.mp$lookup(t)},tp$iter(){return new h(this.dict)}},(function(){return new f(this.dict)})),c=r("dict_values",{tp$iter(){return new d(this.dict)}},(function(){return new g(this.dict)})),p=r("dict_items",{sq$contains(t){if(!(t instanceof Sk.builtin.tuple&&2===t.sq$length()))return!1;var e=t.mp$subscript(new Sk.builtin.int_(0));return t=t.mp$subscript(new Sk.builtin.int_(1)),void 0!==(e=this.dict.mp$lookup(e))&&(e===t||Sk.misceval.richCompareBool(e,t,"Eq"))},tp$iter(){return new _(this.dict)}},(function(){return new m(this.dict)})),h=o("dict_keyiterator",(function(){const t=this.next$item();return t&&t[0]})),_=o("dict_itemiterator",(function(){const t=this.next$item();return t&&new Sk.builtin.tuple([t[0],t[1]])})),d=o("dict_valueiterator",(function(){const t=this.next$item();return t&&t[1]})),f=o("dict_reversekeyiterator",h.prototype.tp$iternext,!0),m=o("dict_reverseitemiterator",_.prototype.tp$iternext,!0),g=o("dict_reversevalueiterator",d.prototype.tp$iternext,!0);Sk.builtin.dict.py2$methods={has_key:{$name:"has_key",$flags:{OneArg:!0},$meth(t){return new Sk.builtin.bool(this.sq$contains(t))},$doc:"D.has_key(k) -> True if D has a key k, else False"},keys:{$name:"keys",$meth(){return new Sk.builtin.list(this.sk$asarray())},$flags:{NoArgs:!0},$textsig:null,$doc:"D.keys() -> a set-like object providing a view on D's keys"},items:{$name:"items",$meth(){return new Sk.builtin.list(this.$items().map((t=>{var[e,n]=t;return new Sk.builtin.tuple([e,n])})))},$flags:{NoArgs:!0},$textsig:null,$doc:"D.items() -> a set-like object providing a view on D's items"},values:{$name:"values",$meth(){return new Sk.builtin.list(this.$items().map((t=>([,t]=t,t))))},$flags:{NoArgs:!0},$textsig:null,$doc:"D.values() -> an object providing a view on D's values"}}},function(t,e){Sk.builtin.mappingproxy=Sk.abstr.buildNativeClass("mappingproxy",{constructor:function(t){if(Sk.asserts.assert(this instanceof Sk.builtin.mappingproxy,"bad call to mapping proxy, use 'new'"),void 0!==t){const e=t.constructor;e===Object||null===e||t.hasOwnProperty("sk$object")?(this.mapping=new Sk.builtin.dict([]),function(t,e){Object.defineProperties(t,{entries:{get:()=>{const t=Object.create(null);return Object.entries(e).forEach((e=>{var[n,i]=e;(n=Sk.unfixReserved(n)).includes("$")||(n=new Sk.builtin.str(n),t[n.$savedKeyHash]=[n,i])})),t},configurable:!0},size:{get:()=>Object.keys(e).map((t=>Sk.unfixReserved(t))).filter((t=>!t.includes("$"))).length,configurable:!0}})}(this.mapping,t)):Sk.builtin.checkMapping(t)?this.mapping=t:Sk.asserts.fail("unhandled case for mappingproxy")}},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$hash:Sk.builtin.none.none$,tp$new(t,e){if(Sk.abstr.checkNoKwargs("mappingproxy",e),Sk.abstr.checkOneArg("mappingproxy",t,e),t=t[0],!Sk.builtin.checkMapping(t))throw new Sk.builtin.TypeError("mappingproxy() argument must be a mapping, not "+Sk.abstr.typeName(t));return(e=new Sk.builtin.mappingproxy).mapping=t,e},tp$richcompare(t,e){return Sk.misceval.richCompareBool(this.mapping,t,e)},tp$str(){return this.mapping.tp$str()},$r(){return new Sk.builtin.str("mappingproxy("+Sk.misceval.objectRepr(this.mapping)+")")},mp$subscript(t,e){return this.mapping.mp$subscript(t,e)},sq$contains(t){return this.mapping.sq$contains(t)},sq$length(){return this.mapping.sq$length()},tp$iter(){return this.mapping.tp$iter()},tp$as_number:!0,nb$or(t){return t instanceof Sk.builtin.mappingproxy&&(t=t.mapping),Sk.abstr.numberBinOp(this.mapping,t,"BitOr")},nb$reflected_or(t){return t instanceof Sk.builtin.mappingproxy&&(t=t.mapping),Sk.abstr.numberBinOp(t,this.mapping,"BitOr")},nb$inplace_or(t){throw new Sk.builtin.TypeError("'|=' is not supported by "+Sk.abstr.typeName(this)+"; use '|' instead")}},methods:{get:{$meth(t,e){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$get),t,e)},$flags:{FastCall:!0},$textsig:null,$doc:"D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None."},keys:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$keys),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.keys() -> a set-like object providing a view on D's keys"},items:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$items),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.items() -> a set-like object providing a view on D's items"},values:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$values),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.values() -> a set-like object providing a view on D's values"},copy:{$meth(){return Sk.misceval.callsimArray(this.mapping.tp$getattr(this.str$copy),[])},$flags:{NoArgs:!0},$textsig:null,$doc:"D.copy() -> a shallow copy of D"}},classmethods:Sk.generic.classGetItem,proto:{str$get:new Sk.builtin.str("get"),str$copy:new Sk.builtin.str("copy"),str$keys:new Sk.builtin.str("keys"),str$items:new Sk.builtin.str("items"),str$values:new Sk.builtin.str("values"),mp$lookup(t){return this.mapping.mp$lookup(t)}},flags:{sk$unacceptableBase:!0}})},function(t,e){Sk.builtin.property=Sk.abstr.buildNativeClass("property",{constructor:function(t,e,n,i){this.prop$get=t||Sk.builtin.none.none$,this.prop$set=e||Sk.builtin.none.none$,this.prop$del=n||Sk.builtin.none.none$,this.prop$doc=i||t&&t.$doc||Sk.builtin.none.none$},slots:{tp$getattr:Sk.generic.getAttr,tp$new:Sk.generic.new,tp$init(t,e){t=Sk.abstr.copyKeywordsToNamedArgs("property",["fget","fset","fdel","doc"],t,e,Array(4).fill(Sk.builtin.none.none$)),this.prop$get=t[0],this.prop$set=t[1],this.prop$del=t[2],Sk.builtin.checkNone(t[3])?Sk.builtin.checkNone(t[0])||(this.prop$doc=t[0].$doc||t[3]):this.prop$doc=t[3]},tp$doc:"Property attribute.\n\n fget\n function to be used for getting an attribute value\n fset\n function to be used for setting an attribute value\n fdel\n function to be used for del'ing an attribute\n doc\n docstring\n\nTypical use is to define a managed attribute x:\n\nclass C(object):\n def getx(self): return self._x\n def setx(self, value): self._x = value\n def delx(self): del self._x\n x = property(getx, setx, delx, 'I'm the 'x' property.')\n\nDecorators make defining new properties or modifying existing ones easy:\n\nclass C(object):\n @property\n def x(self):\n 'I am the 'x' property.'\n return self._x\n @x.setter\n def x(self, value):\n self._x = value\n @x.deleter\n def x(self):\n del self._x",tp$descr_get(t,e,n){if(null===t)return this;if(void 0===this.prop$get)throw new Sk.builtin.AttributeError("unreadable attribute");return t=Sk.misceval.callsimOrSuspendArray(this.prop$get,[t]),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t)},tp$descr_set(t,e,n){let i;if(i=null==e?this.prop$del:this.prop$set,Sk.builtin.checkNone(i))throw new Sk.builtin.AttributeError("can't "+(null==e?"delete":"set")+" attribute");if(!i.tp$call)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(i)+"' is not callable");return t=null==e?i.tp$call([t]):i.tp$call([t,e]),n?t:Sk.misceval.retryOptionalSuspensionOrThrow(t)}},methods:{getter:{$meth(t){return new Sk.builtin.property(t,this.prop$set,this.prop$del,this.prop$doc)},$flags:{OneArg:!0}},setter:{$meth(t){return new Sk.builtin.property(this.prop$get,t,this.prop$del,this.prop$doc)},$flags:{OneArg:!0}},deleter:{$meth(t){return new Sk.builtin.property(this.prop$get,this.prop$set,t,this.prop$doc)},$flags:{OneArg:!0}}},getsets:{fget:{$get(){return this.prop$get}},fset:{$get(){return this.prop$set}},fdel:{$get(){return this.prop$del}},__doc__:{$get(){return this.prop$doc},$set(t){this.prop$doc=t=t||Sk.builtin.none.none$}}}}),Sk.builtin.classmethod=Sk.abstr.buildNativeClass("classmethod",{constructor:function(t){this.cm$callable=t,this.$d=new Sk.builtin.dict},slots:{tp$getattr:Sk.generic.getAttr,tp$new:Sk.generic.new,tp$init(t,e){Sk.abstr.checkNoKwargs("classmethod",e),Sk.abstr.checkArgsLen("classmethod",t,1,1),this.cm$callable=t[0]},tp$doc:"classmethod(function) -> method\n\nConvert a function to be a class method.\n\nA class method receives the class as implicit first argument,\njust like an instance method receives the instance.\nTo declare a class method, use this idiom:\n\n class C:\n @classmethod\n def f(cls, arg1, arg2, ...):\n ...\n\nIt can be called either on the class (e.g. C.f()) or on an instance\n(e.g. C().f()). The instance is ignored except for its class.\nIf a class method is called for a derived class, the derived class\nobject is passed as the implied first argument.\n\nClass methods are different than C++ or Java static methods.\nIf you want those, see the staticmethod builtin.",tp$descr_get(t,e,n){const i=this.cm$callable;if(void 0===i)throw new Sk.builtin.RuntimeError("uninitialized classmethod object");return void 0===e&&(e=t.ob$type),(t=i.tp$descr_get)?t.call(i,e,n):new Sk.builtin.method(i,e)}},getsets:{__func__:{$get(){return this.cm$callable}},__dict__:Sk.generic.getSetDict}}),Sk.builtin.staticmethod=Sk.abstr.buildNativeClass("staticmethod",{constructor:function(t){this.sm$callable=t,this.$d=new Sk.builtin.dict},slots:{tp$getattr:Sk.generic.getAttr,tp$new:Sk.generic.new,tp$init(t,e){Sk.abstr.checkNoKwargs("staticmethod",e),Sk.abstr.checkArgsLen("staticmethod",t,1,1),this.sm$callable=t[0]},tp$doc:"staticmethod(function) -> method\n\nConvert a function to be a static method.\n\nA static method does not receive an implicit first argument.\nTo declare a static method, use this idiom:\n\n class C:\n @staticmethod\n def f(arg1, arg2, ...):\n ...\n\nIt can be called either on the class (e.g. C.f()) or on an instance\n(e.g. C().f()). The instance is ignored except for its class.\n\nStatic methods in Python are similar to those found in Java or C++.\nFor a more advanced concept, see the classmethod builtin.",tp$descr_get(t,e){if(void 0===this.sm$callable)throw new Sk.builtin.RuntimeError("uninitialized staticmethod object");return this.sm$callable}},getsets:{__func__:{$get(){return this.sm$callable}},__dict__:Sk.generic.getSetDict}})},function(t,e){function n(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;if(n=n.v,"number"==typeof i&&"number"==typeof n){const e=t(i,n);if(p(e))return new Sk.builtin.int_(e)}return i=_(i),n=_(n),new Sk.builtin.int_(e(i,n))}}function i(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;return n=n.v,"number"==typeof i&&"number"==typeof n?t(i,n):(i=_(i),n=_(n),e(i,n))}}function s(t,e){return function(){let n=this.v;if("number"==typeof n){const e=t(n);if(void 0!==e)return new Sk.builtin.int_(e);n=_(n)}return new Sk.builtin.int_(e(n))}}function r(){return new Sk.builtin.int_(this.v)}function o(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;if(0===(n=n.v))throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return"number"==typeof i&&"number"==typeof n?new Sk.builtin.int_(t(i,n)):(i=_(i),n=_(n),new Sk.builtin.int_(JSBI.numberIfSafe(e(i,n))))}}function a(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;if(n.nb$isnegative())throw new Sk.builtin.ValueError("negative shift count");let i=this.v;if(0===i)return new Sk.builtin.int_(0);if(n=n.v,"number"==typeof i&&"number"==typeof n&&53>n){const e=t(i,n);if(void 0!==e)return new Sk.builtin.int_(e)}return i=_(i),n=_(n),new Sk.builtin.int_(e(i,n))}}function l(t,e){return function(n){if(!(n instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;let i=this.v;return n=n.v,"number"==typeof i&&"number"==typeof n&&Math.abs(i)=-Number.MAX_SAFE_INTEGER}function h(t){return t<=Number.MAX_SAFE_INTEGER&&t>=-Number.MAX_SAFE_INTEGER?+t:JSBI.BigInt(t)}function _(t){return"number"==typeof t?JSBI.BigInt(t):t}function d(t){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("'byteorder' must be str, not "+Sk.abstr.typeName(t));if("little"===(t=t.toString()))return 1;if("big"===t)return 0;throw new Sk.builtin.ValueError("byteorder must be either 'little' or 'big'")}Sk.builtin.int_=Sk.abstr.buildNativeClass("int",{constructor:function(t){let e;if(Sk.asserts.assert(this instanceof Sk.builtin.int_,"bad call to int use 'new'"),"number"==typeof t){if(-6t)return $[t];e=t}else if(JSBI.__isBigInt(t))e=t;else{if(void 0===t)return w;if("string"==typeof t)e=h(t);else{if(t.nb$int)return t.nb$int();Sk.asserts.fail("bad argument to int constructor")}}this.v=e},slots:{tp$as_number:!0,tp$doc:"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given. If x is a number, return x.__int__(). For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base. The literal can be preceded by '+' or '-' and be surrounded\nby whitespace. The base defaults to 10. Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4",$r(){return new Sk.builtin.str(this.v.toString())},tp$hash(){var t=this.v;if("number"==typeof t){if(-1===t)return-2;if(536870911>t&&-536870911t==e),JSBI.equal),ob$ne:i(((t,e)=>t!=e),JSBI.notEqual),ob$gt:i(((t,e)=>t>e),JSBI.greaterThan),ob$ge:i(((t,e)=>t>=e),JSBI.greaterThanOrEqual),ob$lt:i(((t,e)=>tt<=e),JSBI.lessThanOrEqual),nb$int:r,nb$index(){return this.v},nb$float(){var t=this.v;if("number"==typeof t)return new Sk.builtin.float_(t);if(1/0===(t=parseFloat(JSBI.toNumber(t)))||-1/0===t)throw new Sk.builtin.OverflowError("int too large to convert to float");return new Sk.builtin.float_(t)},nb$isnegative(){const t=this.v;return"number"==typeof t?0>t:JSBI.lessThan(t,JSBI.__ZERO)},nb$ispositive(){const t=this.v;return"number"==typeof t?0<=t:JSBI.greaterThanOrEqual(t,JSBI.__ZERO)},nb$bool(){return 0!==this.v},nb$positive:r,nb$negative:s((t=>-t),JSBI.unaryMinus),nb$add:n(((t,e)=>t+e),((t,e)=>JSBI.numberIfSafe(JSBI.add(t,e)))),nb$subtract:n(((t,e)=>t-e),((t,e)=>JSBI.numberIfSafe(JSBI.subtract(t,e)))),nb$multiply:n(((t,e)=>t*e),((t,e)=>t===JSBI.__ZERO||e===JSBI.__ZERO?0:JSBI.multiply(t,e))),nb$divide:function(t){if(!Sk.__future__.python3)return this.nb$floor_divide(t);if(!(t instanceof Sk.builtin.int_))return Sk.builtin.NotImplemented.NotImplemented$;var e=this.v,n=t.v;if(0===n)throw new Sk.builtin.ZeroDivisionError("division by zero");if("number"==typeof e&&"number"==typeof n)return new Sk.builtin.float_(e/n);if(e=_(e),n=_(n),t=JSBI.lessThan(JSBI.bitwiseXor(e,n),JSBI.__ZERO),JSBI.equal(e,JSBI.__ZERO))return new Sk.builtin.float_(t?-0:0);if(e=u(e),n=u(n),JSBI.greaterThanOrEqual(e,JSBI.multiply(k,n)))throw new Sk.builtin.OverflowError("int/int too large to represent as a float");var i=e.toString(2).length-n.toString(2).length,s=JSBI.BigInt(0>i?-i:i);if((0<=i&&JSBI.greaterThanOrEqual(e,JSBI.multiply(JSBI.exponentiate(b,s),n))||0>i&&JSBI.greaterThanOrEqual(JSBI.multiply(e,JSBI.exponentiate(b,s)),n))&&(i+=1),i=Math.max(i,g)-m,e=JSBI.leftShift(e,JSBI.BigInt(Math.max(-i,0))),n=JSBI.leftShift(n,JSBI.BigInt(Math.max(i,0))),s=JSBI.divide(e,n),e=JSBI.remainder(e,n),e=JSBI.multiply(b,e),(JSBI.greaterThan(e,n)||JSBI.equal(e,n)&&JSBI.equal(JSBI.remainder(s,b),S))&&(s=JSBI.add(s,S)),1/0===(s=JSBI.toNumber(s))||-1/0===s)throw new Sk.builtin.OverflowError("int/int too large to represent as a float");return n=s*Math.pow(2,i),new Sk.builtin.float_(t?-n:n)},nb$floor_divide:o(((t,e)=>Math.floor(t/e)),c),nb$remainder:o(((t,e)=>t-Math.floor(t/e)*e),((t,e)=>JSBI.subtract(t,JSBI.multiply(e,c(t,e))))),nb$divmod(t){const e=this.nb$floor_divide(t);return t=this.nb$remainder(t),e===Sk.builtin.NotImplemented.NotImplemented$||t===Sk.builtin.NotImplemented.NotImplemented$?Sk.builtin.NotImplemented.NotImplemented$:new Sk.builtin.tuple([e,t])},nb$and:l(((t,e)=>t&e),JSBI.bitwiseAnd),nb$or:l(((t,e)=>t|e),JSBI.bitwiseOr),nb$xor:l(((t,e)=>t^e),JSBI.bitwiseXor),nb$abs:s(Math.abs,u),nb$lshift:a(((t,e)=>{if(p(t=2*t*y[e]))return t}),JSBI.leftShift),nb$rshift:a(((t,e)=>{Math.floor(t/y[e+1])}),((t,e)=>JSBI.numberIfSafe(JSBI.signedRightShift(t,e)))),nb$invert:s((t=>Math.abs(t)JSBI.numberIfSafe(JSBI.bitwiseNot(t)))),nb$power(t,e){let n;if(void 0!==e&&Sk.builtin.checkNone(e)&&(e=void 0),!(t instanceof Sk.builtin.int_&&(void 0===e||e instanceof Sk.builtin.int_)))return Sk.builtin.NotImplemented.NotImplemented$;const i=t.nb$isnegative();if(i&&void 0===e)return this.nb$float().nb$power(t.nb$float());let s=this.v;if(t=t.v,"number"==typeof s&&"number"==typeof t){const i=Math.pow(s,t);if(p(i)&&(n=new Sk.builtin.int_(i),void 0===e))return n}if(void 0!==e){if(i)throw new Sk.builtin.ValueError("pow() 2nd argument cannot be negative when 3rd argument specified");if(0===e.v)throw new Sk.builtin.ValueError("pow() 3rd argument cannot be 0");return void 0!==n?n.nb$remainder(e):new Sk.builtin.int_(JSBI.numberIfSafe(JSBI.powermod(_(s),_(t),_(e.v))))}return new Sk.builtin.int_(JSBI.exponentiate(_(s),_(t)))},nb$long(){return new Sk.builtin.lng(this.v)}},getsets:{real:{$get:r,$doc:"the real part of a complex number"},imag:{$get:()=>w,$doc:"the imaginary part of a complex number"},numerator:{$get:r},denominator:{$get:()=>E}},classmethods:{from_bytes:{$meth(t,e){Sk.abstr.checkArgsLen("from_bytes",t,0,2);let[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("from_bytes",["bytes","byteorder","signed"],t,e,[Sk.builtin.bool.false$]);if(t=d(i),n instanceof Sk.builtin.bytes||(n=Sk.misceval.callsimArray(Sk.builtin.bytes,[n])),Sk.misceval.isTrue(s))throw new Sk.builtin.NotImplementedError("from_bytes with signed=True is not yet implemented in Skulpt");const r=[];return n.valueOf().forEach((t=>{r.push(t.toString(16).padStart(2,"0"))})),t&&r.reverse(),t=new Sk.builtin.int_(JSBI.numberIfSafe(JSBI.BigInt("0x"+(r.join("")||"0")))),this===Sk.builtin.int_?t:Sk.misceval.callsimArray(this,[t])},$flags:{FastCall:!0}}},methods:{conjugate:{$meth:r,$flags:{NoArgs:!0},$textsig:null,$doc:"Returns self, the complex conjugate of any int."},bit_length:{$meth(){let t=this.v;return 0===t?new Sk.builtin.int_(0):(t="number"==typeof t?Math.abs(t):u(t),new Sk.builtin.int_(t.toString(2).length))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Number of bits necessary to represent self in binary.\n\n>>> bin(37)\n'0b100101'\n>>> (37).bit_length()\n6"},to_bytes:{$meth(t,e){Sk.abstr.checkArgsLen("to_bytes",t,0,2);let[n,i,s]=Sk.abstr.copyKeywordsToNamedArgs("to_bytes",["length","byteorder","signed"],t,e,[Sk.builtin.bool.false$]);if(t=d(i),n=Sk.misceval.asIndexSized(n,Sk.builtin.OverflowError),0>n)throw new Sk.builtin.ValueError("length argument must be non-negative");if(Sk.misceval.isTrue(s))throw new Sk.builtin.NotImplementedError("to_bytes with signed=True is not yet implemented in Skulpt");if(this.nb$isnegative())throw new Sk.builtin.OverflowError("can't convert negative int to unsigned");(e=JSBI.BigInt(this.v).toString(16)).length%2&&(e="0"+e);var r=e.length/2;if(r>n){if(0===n&&"00"===e)return new Sk.builtin.bytes;throw new Sk.builtin.OverflowError("int too big to convert")}const o=Array(n).fill(0);r=n-r;let a=0;for(;rMath.abs(e)?new Sk.builtin.int_(0):Sk.__future__.bankers_rounding?(e/=t,n=Math.round(e),new Sk.builtin.int_((.5==(0e||36= 2 and <= 36");if("string"==typeof e&&(e=Number(e)),"0x"===t.substring(0,2).toLowerCase()){if(16===e||0===e)t=t.substring(2),e=16;else if(34>e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}else if("0b"===t.substring(0,2).toLowerCase()){if(2===e||0===e)t=t.substring(2),e=2;else if(12>e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}else if("0o"===t.substring(0,2).toLowerCase()){if(8===e||0===e)t=t.substring(2),e=8;else if(25>e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}else if("0"===t.charAt(0)){if("0"===t)return 0;8!==e&&0!==e||(e=8)}if(0===e&&(e=10),-1!==t.indexOf("_")){if(-1!==t.indexOf("__"))throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'");t=10!==e?t.replace(T,""):t.charAt(0)+t.substring(1).replace(T,"")}if(0===t.length)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'");for(n=0;n=r?o=r-48:65<=r&&90>=r?o=r-65+10:97<=r&&122>=r&&(o=r-97+10),o>=e)throw new Sk.builtin.ValueError("invalid literal for int() with base "+e+": '"+i+"'")}if(s&&(t="-"+t),p(o=parseInt(t,e)))return o;for(i=!1,"-"===t[0]&&(i=!0,t=t.substring(1)),e=JSBI.BigInt(e),s=S,n=JSBI.__ZERO,r=t.length-1;0<=r;r--)48<=(o=t.charCodeAt(r))&&57>=o?o-=48:65<=o&&90>=o?o=o-65+10:97<=o&&122>=o&&(o=o-97+10),o=JSBI.multiply(JSBI.BigInt(o),s),n=JSBI.add(n,o),s=JSBI.multiply(s,e);return i&&(n=JSBI.multiply(n,JSBI.BigInt(-1))),n},Sk.builtin.int_.py2$methods={},Sk.longFromStr=function(t,e){return Sk.__future__.python3?new Sk.builtin.int_(h(t)):(t=Sk.str2number(t,e),new Sk.builtin.lng(t))},Sk.exportSymbol("Sk.longFromStr",Sk.longFromStr),Sk.builtin.int_.withinThreshold=p,Sk.builtin.int_.stringToNumberOrBig=h;const y=[.5,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,0x800000000000,281474976710656,562949953421312,0x4000000000000,0x8000000000000,4503599627370496,9007199254740992];Sk.builtin.lng=Sk.abstr.buildNativeClass("long",{base:Sk.builtin.int_,constructor:function(t){void 0!==(t=Sk.builtin.int_.call(this,t))&&(this.v=t.v)},slots:{$r(){return new Sk.builtin.str(this.v.toString()+"L")},tp$as_number:!0,nb$negative(){return new Sk.builtin.lng(v.nb$negative.call(this).v)},nb$positive(){return new Sk.builtin.lng(v.nb$positive.call(this).v)}}});const v=Sk.builtin.int_.prototype,$=[];for(t=-5;257>t;t++)$[t]=Object.create(Sk.builtin.int_.prototype,{v:{value:t}});const w=$[0],E=$[1]},function(t,e){const n=Sk.builtin.int_.prototype;Sk.builtin.bool=Sk.abstr.buildNativeClass("bool",{constructor:function(t){return Sk.misceval.isTrue(t)?Sk.builtin.bool.true$:Sk.builtin.bool.false$},base:Sk.builtin.int_,slots:{tp$doc:"bool(x) -> bool\n\nReturns True when the argument x is true, False otherwise.\nThe builtins True and False are the only two instances of the class bool.\nThe class bool is a subclass of the class int, and cannot be subclassed.",tp$new:(t,e)=>(Sk.abstr.checkNoKwargs("bool",e),Sk.abstr.checkArgsLen("bool",t,0,1),new Sk.builtin.bool(t[0])),$r(){return this.v?this.str$True:this.str$False},tp$as_number:!0,nb$and(t){return t.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v&t.v):n.nb$and.call(this,t)},nb$or(t){return t.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v|t.v):n.nb$or.call(this,t)},nb$xor(t){return t.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v^t.v):n.nb$xor.call(this,t)}},flags:{sk$unacceptableBase:!0},methods:{__format__:{$meth(){return this.$r()},$flags:{OneArg:!0}}},proto:{str$False:new Sk.builtin.str("False"),str$True:new Sk.builtin.str("True"),valueOf(){return!!this.v}}}),Sk.exportSymbol("Sk.builtin.bool",Sk.builtin.bool),Sk.builtin.bool.true$=Object.create(Sk.builtin.bool.prototype,{v:{value:1,enumerable:!0}}),Sk.builtin.bool.false$=Object.create(Sk.builtin.bool.prototype,{v:{value:0,enumerable:!0}})},function(t,e){function n(t){const e=[t,0];if(0===t)return e;var n=Math.abs(t);let i=Math.max(-1023,Math.floor(Math.log2(n))+1);for(n*=Math.pow(2,-i);.5>n;)n*=2,i--;for(;1<=n;)n*=.5,i++;return 0>t&&(n=-n),e[0]=n,e[1]=i,e}function i(){return new Sk.builtin.float_(this.v)}function s(t){return function(e){const n=this.v;if("number"!=typeof(e=e.v)){if(!JSBI.__isBigInt(e))return Sk.builtin.NotImplemented.NotImplemented$;if(1/0==(e=parseFloat(JSBI.toNumber(e)))||-1/0==e)throw new Sk.builtin.OverflowError("int too large to convert to float")}return t(n,e)}}function r(t,e){return function(n){const i=this.v;if("number"!=typeof(n=n.v)){if(!JSBI.__isBigInt(n))return Sk.builtin.NotImplemented.NotImplemented$;if(void 0!==e)return e(i,n)}return t(i,n)}}function o(t){const e=s(t);return function(t,n){if(void 0!==n&&!Sk.builtin.checkNone(n))throw new Sk.builtin.TypeError("pow() 3rd argument not allowed unless all arguments are integers");return e.call(this,t)}}function a(t,e){if(0===e)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return 1/0===t?1/0===e||-1/0===t?new Sk.builtin.float_(NaN):0>e?new Sk.builtin.float_(-1/0):new Sk.builtin.float_(1/0):-1/0===t?1/0===e||-1/0===t?new Sk.builtin.float_(NaN):0>e?new Sk.builtin.float_(1/0):new Sk.builtin.float_(-1/0):new Sk.builtin.float_(t/e)}function l(t,e){if(1/0===t||-1/0===t)return new Sk.builtin.float_(NaN);if(0===e)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return 1/0===e?0>t?new Sk.builtin.float_(-1):new Sk.builtin.float_(0):-1/0===e?0>t||0!==t?new Sk.builtin.float_(0):new Sk.builtin.float_(-1):new Sk.builtin.float_(Math.floor(t/e))}function u(t,e){if(0===e)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");if(0===t)return new Sk.builtin.float_(0);if(1/0===e)return 1/0===t||-1/0===t?new Sk.builtin.float_(NaN):0t?0n&&(n+=e):0>e&&0!==n&&(n+=e),0===n&&(0>e?n=-0:-1/0==1/0/n&&(n=0)),new Sk.builtin.float_(n)}function c(t,e){if(0>t&&0!=e%1)return new Sk.builtin.complex(t,0).nb$power(new Sk.builtin.complex(e,0));if(0===t&&0>e)throw new Sk.builtin.ZeroDivisionError("0.0 cannot be raised to a negative power");const n=Math.pow(t,e);if(1/0===Math.abs(n)&&1/0!==Math.abs(t)&&1/0!==Math.abs(e))throw new Sk.builtin.OverflowError("Numerical result out of range");return new Sk.builtin.float_(n)}Sk.builtin.float_=Sk.abstr.buildNativeClass("float",{constructor:function(t){if(Sk.asserts.assert(this instanceof Sk.builtin.float_,"bad call to float use 'new'"),"number"==typeof t)this.v=t;else if(void 0===t)this.v=0;else if("string"==typeof t)this.v=parseFloat(t);else{if(t.nb$float)return t.nb$float();Sk.asserts.fail("bad argument to float constructor")}},slots:{tp$getattr:Sk.generic.getAttr,tp$as_number:!0,tp$doc:"Convert a string or number to a floating point number, if possible.",tp$hash(){var t=this.v;if(!Number.isFinite(t))return Number.isNaN(t)?0:0e&&(t=-1,e=-e);let s,r=0;for(;e;)r=r<<28&536870911|r>>1,e*=268435456,i-=28,s=Math.trunc(e),e-=s,r+=s,536870911<=r&&(r-=536870911);return i=0<=i?i%29:28-(-1-i)%29,r=(r<>29-i)*t,-1===r?-2:r},$r(){return new Sk.builtin.str(this.str$(10,!0))},tp$new(t,e){if(e&&e.length)throw new Sk.builtin.TypeError("float() takes no keyword arguments");if(t&&1t?Math.ceil(t):Math.floor(t),Sk.builtin.int_.withinThreshold(t)?new Sk.builtin.int_(t):new Sk.builtin.int_(JSBI.BigInt(t))},nb$float:i,nb$long(){return new Sk.builtin.lng(this.nb$int().v)},nb$add:s(((t,e)=>new Sk.builtin.float_(t+e))),nb$subtract:s(((t,e)=>new Sk.builtin.float_(t-e))),nb$reflected_subtract:s(((t,e)=>new Sk.builtin.float_(e-t))),nb$multiply:s(((t,e)=>new Sk.builtin.float_(t*e))),nb$divide:s(a),nb$reflected_divide:s(((t,e)=>a(e,t))),nb$floor_divide:s(l),nb$reflected_floor_divide:s(((t,e)=>l(e,t))),nb$remainder:s(u),nb$reflected_remainder:s(((t,e)=>u(e,t))),nb$divmod:s(((t,e)=>new Sk.builtin.tuple([l(t,e),u(t,e)]))),nb$reflected_divmod:s(((t,e)=>new Sk.builtin.tuple([l(e,t),u(e,t)]))),nb$power:o(c),nb$reflected_power:o(((t,e)=>c(e,t))),nb$abs(){return new Sk.builtin.float_(Math.abs(this.v))},nb$negative(){return new Sk.builtin.float_(-this.v)},nb$positive(){return new Sk.builtin.float_(this.v)},nb$bool(){return 0!==this.v},nb$isnegative(){return 0>this.v},nb$ispositive(){return 0<=this.v},ob$eq:r(((t,e)=>t==e),JSBI.EQ),ob$ne:r(((t,e)=>t!=e),JSBI.NE),ob$gt:r(((t,e)=>t>e),JSBI.GT),ob$ge:r(((t,e)=>t>=e),JSBI.GE),ob$lt:r(((t,e)=>tt<=e),JSBI.LE)},getsets:{real:{$get:i,$doc:"the real part of a complex number"},imag:{$get:()=>new Sk.builtin.float_(0),$doc:"the imaginary part of a complex number"}},methods:{conjugate:{$meth:i,$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return self, the complex conjugate of any float."},__trunc__:{$meth(){return this.nb$int()},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return the Integral closest to x between 0 and x."},__round__:{$meth(t){return this.round$(t)},$flags:{MinArgs:0,MaxArgs:1},$textsig:"($self, ndigits=None, /)",$doc:"Return the Integral closest to x, rounding half toward even.\n\nWhen an argument is passed, work like built-in round(x, ndigits)."},as_integer_ratio:{$meth(){if(!Number.isFinite(this.v)){if(Number.isNaN(this.v))throw new Sk.builtin.ValueError("cannot convert NaN to integer ratio");throw new Sk.builtin.OverflowError("cannot convert Infinity to integer ratio")}let[t,e]=n(this.v);for(var i=0;300>i&&t!=Math.floor(t);i++)t*=2,e--;i=new Sk.builtin.int_(Math.abs(e));let s=new Sk.builtin.int_(t),r=new Sk.builtin.int_(1);return 0>> (10.0).as_integer_ratio()\n(10, 1)\n>>> (0.0).as_integer_ratio()\n(0, 1)\n>>> (-.25).as_integer_ratio()\n(-1, 4)"},is_integer:{$meth(){return new Sk.builtin.bool(Number.isInteger(this.v))},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:"Return True if the float is an integer."},__getnewargs__:{$meth(){return new Sk.builtin.tuple([this])},$flags:{NoArgs:!0},$textsig:"($self, /)",$doc:Sk.builtin.none.none$},__format__:{$meth:Sk.formatting.mkNumber__format__(!0),$flags:{OneArg:!0},$textsig:"($self, format_spec, /)",$doc:Sk.builtin.none.none$}},proto:{valueOf(){return this.v}}});const p=/_[eE]|[eE]_|\._|_\.|[+-]_|__/,h=/_(?=[^_])/g;Sk.builtin.float_.PyFloat_Check=function(t){return void 0!==t&&!!(Sk.builtin.checkNumber(t)||Sk.builtin.checkFloat(t)||t.ob$type.$isSubType(Sk.builtin.float_))},Sk.builtin.float_.prototype.toFixed=function(t){return t=Sk.builtin.asnum$(t),this.v.toFixed(t)},Sk.builtin.float_.prototype.round$=function(t){var e=Sk.builtin.asnum$(this),n=void 0===t?0:Sk.misceval.asIndexSized(t);if(Sk.__future__.bankers_rounding){e*=Math.pow(10,n);var i=Math.round(e);return n=(.5==(0n.length?e.toExponential():e.toExponential(11)),0>n.indexOf("e")&&0<=n.indexOf(".")){for(;"0"==n.charAt(n.length-1);)n=n.substring(0,n.length-1);"."==n.charAt(n.length-1)&&(n+="0")}n=(n=(n=n.replace(/\.0+e/,"e","i")).replace(/(e[-+])([1-9])$/,"$10$2")).replace(/0+(e.*)/,"$1")}else n=e.toString(t);return 0===this.v&&-1/0==1/this.v&&(n="-"+n),0>n.indexOf(".")&&0>n.indexOf("E")&&0>n.indexOf("e")&&(n+=".0"),n},Sk.builtin.float_.py2$methods={}},function(t,e){function n(t){let e=t.v;if("number"==typeof e)return e;if(t.nb$float&&(e=t.nb$float()),void 0===e)throw new Sk.builtin.TypeError("a float is required");return e.v}function i(t,e,n){return n===Sk.builtin.complex.prototype?new Sk.builtin.complex(t,e):(n=new n.constructor,Sk.builtin.complex.call(n,t,e),n)}function s(t,e){return function(n){const i=this.real,s=this.imag;var r=n.real;const o=n.v;if("number"==typeof r)n=n.imag;else if("number"==typeof o)r=o,n=0;else{if(!JSBI.__isBigInt(o))return Sk.builtin.NotImplemented.NotImplemented$;if(void 0===e){if(1/0==(r=parseFloat(JSBI.toNumber(o)))||-1/0==r)throw new Sk.builtin.OverflowError("int too large to convert to float")}else r=o.toString();n=0}return t(i,s,r,n)}}function r(t,e,n,i){var s=Math.abs(n);const r=Math.abs(i);if(s>=r){if(0===s)throw new Sk.builtin.ZeroDivisionError("complex division by zero");i=(t+e*(s=i/n))/(n+=i*s),t=(e-t*s)/n}else r>=s?(n=n*(s=n/i)+i,Sk.asserts.assert(0!==i),i=(t*s+e)/n,t=(e*s-t)/n):t=i=NaN;return new Sk.builtin.complex(i,t)}function o(t,e,n,i){if(0===n&&0===i){i=1;var s=0}else if(0===t&&0===e){if(0!==i||0>n)throw new Sk.builtin.ZeroDivisionError("complex division by zero");s=i=0}else{const r=Math.hypot(t,e);s=Math.pow(r,n),n*=t=Math.atan2(e,t),0!==i&&(s/=Math.exp(t*i),n+=i*Math.log(r)),i=s*Math.cos(n),s*=Math.sin(n)}return new Sk.builtin.complex(i,s)}function a(t,e,n){let i=1;var s=new Sk.builtin.complex(1,0);for(t=new Sk.builtin.complex(t,e);0=i;)n&i&&(s=new Sk.builtin.complex(s.real*t.real-s.imag*t.imag,s.real*t.imag+t.real*s.imag)),i<<=1,t=new Sk.builtin.complex(t.real*t.real-t.imag*t.imag,2*t.real*t.imag);return s}function l(t,e,n,i,s){switch(s=!1,e){case"e":case"f":case"g":break;case"E":s=!0,e="e";break;case"F":s=!0,e="f";break;case"r":if(0!==n)throw Error("Bad internall call");n=17,e="g";break;default:throw Error("Bad internall call")}if(isNaN(t))t="nan";else if(1/0===t)t="inf";else if(-1/0===t)t="-inf";else{i&l.Py_DTSF_ADD_DOT_0&&(e="g");var r="%"+(i&l.Py_DTSF_ALT?"#":"");null!=n&&(r=r+"."+n),t=(t=(r=new Sk.builtin.str(r+e)).nb$remainder(new Sk.builtin.float_(t))).v}return i&l.Py_DTSF_SIGN&&"-"!==t[0]&&(t="+"+t),s&&(t=t.toUpperCase()),t}Sk.builtin.complex=Sk.abstr.buildNativeClass("complex",{constructor:function(t,e){Sk.asserts.assert(this instanceof Sk.builtin.complex,"bad call to complex constructor, use 'new'"),this.real=t,this.imag=e},slots:{tp$as_number:!0,tp$doc:"Create a complex number from a real part and an optional imaginary part.\n\nThis is equivalent to (real + imag*1j) where imag defaults to 0.",tp$hash(){var t=new Sk.builtin.float_(this.real).tp$hash();return t=1003*new Sk.builtin.float_(this.imag).tp$hash()+t,Sk.builtin.int_.withinThreshold(t)?t:new Sk.builtin.int_(JSBI.BigInt(t)).tp$hash()},tp$getattr:Sk.generic.getAttr,tp$new(t,e){{var s,r=(t=Sk.abstr.copyKeywordsToNamedArgs("complex",["real","imag"],t,e,[null,null]))[1];let a=e=!1;var o=t[0];if(null!=o&&o.constructor===Sk.builtin.complex&&null==r)e=o;else if(Sk.builtin.checkString(o)){if(null!=r)throw new Sk.builtin.TypeError("complex() can't take second arg if first is a string");e=Sk.builtin.complex.complex_subtype_from_string(o,this)}else{if(null!=r&&Sk.builtin.checkString(r))throw new Sk.builtin.TypeError("complex() second arg can't be a string");if(null==o?t=null:t=void 0!==(t=Sk.abstr.lookupSpecial(o,Sk.builtin.str.$complex))?Sk.misceval.callsimArray(t,[]):null,null!=t&&t!==Sk.builtin.NotImplemented.NotImplemented$){if(!u(t))throw new Sk.builtin.TypeError("__complex__ should return a complex object");o=t}if(null!=o&&void 0===o.nb$float)throw new Sk.builtin.TypeError("complex() first argument must be a string or a number, not '"+Sk.abstr.typeName(o)+"'");if(null!=r&&void 0===r.nb$float)throw new Sk.builtin.TypeError("complex() second argument must be a number, not '"+Sk.abstr.typeName(o)+"'");null==o?o=t=0:u(o)?(t=o.real,o=o.imag,e=!0):(t=n(o),o=0),null==r?r=s=0:u(r)?(s=r.real,r=r.imag,a=!0):(s=n(r),r=0),!0===a&&(t-=r),!0===e&&(s+=o),e=i(t,s,this)}}return e},tp$richcompare(t,e){if("Eq"!==e&&"NotEq"!==e){if(Sk.builtin.checkNumber(t)||u(t))throw new Sk.builtin.TypeError("no ordering relation is defined for complex numbers");return Sk.builtin.NotImplemented.NotImplemented$}return s((function(t,n,i,s){return t=t==i&&n==s,"Eq"===e?t:!t}),!0).call(this,t)},$r(){{var t,e;let s=t="";var n=this.real,i=this.imag;(e=0===n)&&(e=1==(n?0>n?-1:1:0>1/n?-1:1)),e?(n="",e=l(i,"g",null,0,null)):(n=t=l(n,"g",null,0,null),e=l(i,"g",null,l.Py_DTSF_SIGN,null),0===i&&-1/0==1/i&&e&&"-"!==e[0]&&(e="-"+e),t="(",s=")"),i=new Sk.builtin.str(""+t+n+e+"j"+s)}return i},nb$int(){throw new Sk.builtin.TypeError("can't convert complex to int")},nb$long(){throw new Sk.builtin.TypeError("can't convert complex to long")},nb$float(){throw new Sk.builtin.TypeError("can't convert complex to float")},nb$positive(){return new Sk.builtin.complex(this.real,this.imag)},nb$negative(){return new Sk.builtin.complex(-this.real,-this.imag)},nb$bool(){return this.real||this.imag},nb$add:s(((t,e,n,i)=>new Sk.builtin.complex(t+n,e+i))),nb$subtract:s(((t,e,n,i)=>new Sk.builtin.complex(t-n,e-i))),nb$reflected_subtract:s(((t,e,n,i)=>new Sk.builtin.complex(n-t,i-e))),nb$multiply:s(((t,e,n,i)=>new Sk.builtin.complex(n*t-i*e,t*i+e*n))),nb$divide:s(r),nb$reflected_divide:s(((t,e,n,i)=>r(n,i,t,e))),nb$floor_divide(t){throw new Sk.builtin.TypeError("can't take floor of complex number.")},nb$reflected_floor_divide(t){throw new Sk.builtin.TypeError("can't take floor of complex number.")},nb$remainder(t){throw new Sk.builtin.TypeError("can't mod complex numbers.")},nb$reflected_remainder(t){throw new Sk.builtin.TypeError("can't mod complex numbers.")},nb$divmod(t){throw new Sk.builtin.TypeError("can't take floor or mod of complex number.")},nb$power(t,e){if(null!=e&&!Sk.builtin.checkNone(e))throw new Sk.builtin.ValueError("complex modulo");return _.call(this,t)},nb$reflected_power(t,e){if(null!=e&&!Sk.builtin.checkNone(e))throw new Sk.builtin.ValueError("complex modulo");return d.call(this,t)},nb$abs(){var t=this.real;const e=this.imag;if(!Number.isFinite(t)||!Number.isFinite(e))return 1/0===t||-1/0===t?new Sk.builtin.float_(Math.abs(t)):1/0===e||-1/0===e?new Sk.builtin.float_(Math.abs(e)):new Sk.builtin.float_(NaN);if(t=Math.hypot(t,e),!Number.isFinite(t))throw new Sk.builtin.OverflowError("absolute value too large");return new Sk.builtin.float_(t)}},getsets:{real:{$get(){return new Sk.builtin.float_(this.real)},$doc:"the real part of a complex number"},imag:{$get(){return new Sk.builtin.float_(this.imag)},$doc:"the imaginary part of a complex number"}},methods:{conjugate:{$meth(){return new Sk.builtin.complex(this.real,-this.imag)},$flags:{NoArgs:!0},$textsig:null,$doc:"complex.conjugate() -> complex\n\nReturn the complex conjugate of its argument. (3-4j).conjugate() == 3+4j."},__getnewargs__:{$meth(){return new Sk.builtin.tuple([new Sk.builtin.float_(this.real),new Sk.builtin.float_(this.imag)])},$flags:{NoArgs:!0},$textsig:null,$doc:Sk.builtin.none.none$},__format__:{$meth(t){if(Sk.builtin.checkString(t))throw new Sk.builtin.NotImplementedError("__format__ is not implemented for complex type.");throw new Sk.builtin.TypeError("__format__ requires str")},$flags:{OneArg:!0},$textsig:null,$doc:"complex.__format__() -> str\n\nConvert to a string according to format_spec."}}}),Sk.exportSymbol("Sk.builtin.complex",Sk.builtin.complex);const u=Sk.builtin.checkComplex,c=/_[eE]|[eE]_|\._|_\.|[+-]_|_j|j_/,p=/_(?=[^_])/g;Sk.builtin.complex.complex_subtype_from_string=function(t,e){e=e||Sk.builtin.complex.prototype;var n=0,s=0,r=!1;if(Sk.builtin.checkString(t))t=Sk.ffi.remapToJs(t);else if("string"!=typeof t)throw new TypeError("provided unsupported string-alike argument");if(-1!==t.indexOf("\0")||0===t.length||""===t)throw new Sk.builtin.ValueError("complex() arg is a malformed string");var o=0;for(t=(t=t.replace(/inf|infinity/gi,"Infinity")).replace(/nan/gi,"NaN");" "===t[o];)o++;if("("===t[o])for(r=!0,o++;" "===t[o];)o++;if(-1!==t.indexOf("_")){if(c.test(t))throw new Sk.builtin.ValueError("could not convert string to complex: '"+t+"'");t=t.charAt(0)+t.substring(1).replace(p,"")}var a=/^(?:[+-]?(?:(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[eE][+-]?\d+)?|NaN|Infinity))/,l=t.substr(o),u=l.match(a);if(null!==u)if("j"===t[o+=u[0].length]||"J"===t[o])s=parseFloat(u[0]),o++;else if("+"===t[o]||"-"===t[o]){if(n=parseFloat(u[0]),null!==(u=t.substr(o).match(a))?(s=parseFloat(u[0]),o+=u[0].length):(s="+"===t[o]?1:-1,o++),"j"!==t[o]&&"J"!==t[o])throw new Sk.builtin.ValueError("complex() arg is malformed string");o++}else n=parseFloat(u[0]);else null!==(u=u=l.match(/^([+-]?[jJ])/))&&(s=1===u[0].length||"+"===u[0][0]?1:-1,o+=u[0].length);for(;" "===t[o];)o++;if(r){if(")"!==t[o])throw new Sk.builtin.ValueError("complex() arg is malformed string");for(o++;" "===t[o];)o++}if(t.length!==o)throw new Sk.builtin.ValueError("complex() arg is malformed string");return i(n,s,e)};const h=(t,e,n,i)=>{const s=0|n;return 0===i&&n===s?(100s?t=o(t,e,s,0):0h(n,i,t,e)));l.Py_DTSF_SIGN=1,l.Py_DTSF_ADD_DOT_0=2,l.Py_DTSF_ALT=4,l.Py_DTST_FINITE=0,l.Py_DTST_INFINITE=1,l.Py_DTST_NAN=2},function(t,e){Sk.builtin.slice=Sk.abstr.buildNativeClass("slice",{constructor:function(t,e,n){void 0===e&&void 0===n&&(e=t,t=Sk.builtin.none.none$),void 0===e&&(e=Sk.builtin.none.none$),void 0===n&&(n=Sk.builtin.none.none$),this.start=t,this.stop=e,this.step=n},slots:{tp$getattr:Sk.generic.getAttr,tp$doc:"slice(stop)\nslice(start, stop[, step])\n\nCreate a slice object. This is used for extended slicing (e.g. a[0:10:2]).",tp$hash:Sk.builtin.none.none$,tp$new:(t,e)=>(Sk.abstr.checkNoKwargs("slice",e),Sk.abstr.checkArgsLen("slice",t,1,3),new Sk.builtin.slice(...t)),$r(){const t=Sk.misceval.objectRepr(this.start),e=Sk.misceval.objectRepr(this.stop),n=Sk.misceval.objectRepr(this.step);return new Sk.builtin.str("slice("+t+", "+e+", "+n+")")},tp$richcompare(t,e){if(t.ob$type!==Sk.builtin.slice)return Sk.builtin.NotImplemented.NotImplemented$;const n=new Sk.builtin.tuple([this.start,this.stop,this.step]);return t=new Sk.builtin.tuple([t.start,t.stop,t.step]),n.tp$richcompare(t,e)}},getsets:{start:{$get(){return this.start}},step:{$get(){return this.step}},stop:{$get(){return this.stop}}},methods:{indices:{$meth:function(t){if(0>(t=Sk.misceval.asIndexSized(t,Sk.builtin.OverflowError)))throw new Sk.builtin.TypeError("length should not be negative");const{start:e,stop:n,step:i}=this.slice$indices(t);return new Sk.builtin.tuple([new Sk.builtin.int_(e),new Sk.builtin.int_(n),new Sk.builtin.int_(i)])},$doc:"S.indices(len) -> (start, stop, stride)\n\nAssuming a sequence of length len, calculate the start and stop\nindices, and the stride length of the extended slice described by\nS. Out of bounds indices are clipped in a manner consistent with the\nhandling of normal slices.",$textsig:null,$flags:{OneArg:!0}}},proto:{slice$as_indices(t){let e;var n=t?t=>Sk.misceval.asIndexSized(t,null,"slice indices must be integers or None or have an __index__ method"):t=>Sk.misceval.asIndexOrThrow(t,"slice indices must be integers or None or have an __index__ method");if(Sk.builtin.checkNone(this.step))e=1;else if(e=n(this.step),0===e)throw new Sk.builtin.ValueError("slice step cannot be zero");return{start:t=Sk.builtin.checkNone(this.start)?null:n(this.start),stop:n=Sk.builtin.checkNone(this.stop)?null:n(this.stop),step:e}},$wrt:(t,e,n,i,s)=>(s=s?e=>JSBI.__isBigInt(e)?JSBI.add(e,JSBI.BigInt(t)):e+t:e=>e+t,0e&&(0>(e=s(e))&&(e=0)),null===n||n>t?n=t:0>n&&(n=s(n))):(null===e||e>=t?e=t-1:0>e&&(e=s(e)),null===n?n=-1:0>n&&(0>(n=s(n))&&(n=-1))),{start:e,stop:n,step:i}),slice$indices(t,e){let{start:n,stop:i,step:s}=this.slice$as_indices(!0,e);return this.$wrt(t,n,i,s,e)},sssiter$(t,e){let{start:n,stop:i,step:s}=this.slice$indices(t,!0);if(0i;t+=s)e(t)}},flags:{sk$unacceptableBase:!0}}),Sk.builtin.slice.startEnd$wrt=function(t,e,n){return t=t.sq$length(),void 0===e||Sk.builtin.checkNone(e)?e=0:0>(e=Sk.misceval.asIndexSized(e,null,"slice indices must be integers or have an __index__ method"))&&(0>(e+=t)&&(e=0)),void 0===n||Sk.builtin.checkNone(n)?n=t:0>(n=Sk.misceval.asIndexSized(n,null,"slice indices must be integers or have an __index__ method"))?0>(n+=t)&&(n=0):n>t&&(n=t),{start:e,end:n}}},function(t,e){function n(t){return function(e){return Sk.builtin.checkAnySet(e)?t.call(this,e):Sk.builtin.NotImplemented.NotImplemented$}}function i(t){return t instanceof Sk.builtin.set&&t.tp$hash===Sk.builtin.none.none$&&(t=new Sk.builtin.frozenset(Sk.misceval.arrayFromIterable(t))),t}t={},Sk.builtin.set=Sk.abstr.buildNativeClass("set",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.set,"Bad call to set - must be called with an Array and 'new'");const e=[];for(let n=0;n new empty set object\nset(iterable) -> new set object\n\nBuild an unordered collection of unique elements.",tp$init(t,e){return Sk.abstr.checkNoKwargs("set",e),Sk.abstr.checkArgsLen("set",t,0,1),this.set$clear(),(t=t[0])&&this.set$update(t)},tp$new:Sk.generic.new,$r(){if(this.in$repr)return new Sk.builtin.str(Sk.abstr.typeName(this)+"(...)");this.in$repr=!0;const t=this.sk$asarray().map((t=>Sk.misceval.objectRepr(t)));return this.in$repr=!1,Sk.__future__.python3?0===t.length?new Sk.builtin.str(Sk.abstr.typeName(this)+"()"):this.ob$type!==Sk.builtin.set?new Sk.builtin.str(Sk.abstr.typeName(this)+"({"+t.join(", ")+"})"):new Sk.builtin.str("{"+t.join(", ")+"}"):new Sk.builtin.str(Sk.abstr.typeName(this)+"(["+t.join(", ")+"])")},tp$iter(){return new s(this)},tp$richcompare(t,e){if(!Sk.builtin.checkAnySet(t))return Sk.builtin.NotImplemented.NotImplemented$;switch(e){case"NotEq":case"Eq":return t=this===t||this.get$size()===t.get$size()&&Sk.misceval.isTrue(this.set$issubset(t)),"Eq"===e?t:!t;case"LtE":return this===t||Sk.misceval.isTrue(this.set$issubset(t));case"GtE":return this===t||Sk.misceval.isTrue(t.set$issubset(this));case"Lt":return this.get$size()t.get$size()&&Sk.misceval.isTrue(t.set$issubset(this))}},nb$subtract:n((function(t){return this.difference.$meth.call(this,t)})),nb$and:n((function(t){return this.intersection.$meth.call(this,t)})),nb$or:n((function(t){return this.union.$meth.call(this,t)})),nb$xor:n((function(t){return this.symmetric_difference.$meth.call(this,t)})),nb$inplace_subtract:n((function(t){return t===this&&(t=t.set$copy()),Sk.misceval.chain(this.difference_update.$meth.call(this,t),(()=>this))})),nb$inplace_and:n((function(t){return Sk.misceval.chain(this.intersection_update.$meth.call(this,t),(()=>this))})),nb$inplace_or:n((function(t){return Sk.misceval.chain(this.update.$meth.call(this,t),(()=>this))})),nb$inplace_xor:n((function(t){return t===this&&(t=t.set$copy()),Sk.misceval.chain(this.symmetric_difference_update.$meth.call(this,t),(()=>this))})),sq$length(){return this.get$size()},sq$contains(t){return t=i(t),this.v.sq$contains(t)}},methods:{add:{$meth(t){return this.set$add(t),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Add an element to a set.\n\nThis has no effect if the element is already present."},clear:{$meth(){return this.set$clear(),Sk.builtin.none.none$},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove all elements from this set."},copy:{$meth(){return this.set$copy()},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a shallow copy of a set."},discard:{$meth(t){return t=i(t),this.set$discard(t),Sk.builtin.none.none$},$flags:{OneArg:!0},$textsig:null,$doc:"Remove an element from a set if it is a member.\n\nIf the element is not a member, do nothing."},difference:{$meth(...t){const e=this.set$copy();return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>e.set$difference_update(t))),(()=>e))},$flags:{MinArgs:0},$textsig:null,$doc:"Return the difference of two or more sets as a new set.\n\n(i.e. all elements that are in this set but not the others.)"},difference_update:{$meth(...t){return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>this.set$difference_update(t))),(()=>Sk.builtin.none.none$))},$flags:{MinArgs:0},$textsig:null,$doc:"Remove all elements of another set from this set."},intersection:{$meth(...t){return this.set$intersection_multi(...t)},$flags:{MinArgs:0},$textsig:null,$doc:"Return the intersection of two sets as a new set.\n\n(i.e. all elements that are in both sets.)"},intersection_update:{$meth(...t){return Sk.misceval.chain(this.set$intersection_multi(...t),(t=>(this.swap$bodies(t),Sk.builtin.none.none$)))},$flags:{MinArgs:0},$textsig:null,$doc:"Update a set with the intersection of itself and another."},isdisjoint:{$meth(t){return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{if(this.sq$contains(t))return new Sk.misceval.Break(Sk.builtin.bool.false$)})),(t=>t||Sk.builtin.bool.true$))},$flags:{OneArg:!0},$textsig:null,$doc:"Return True if two sets have a null intersection."},issubset:{$meth(t){return Sk.builtin.checkAnySet(t)||(t=this.set$make_basetype(t)),Sk.misceval.chain(t,(t=>this.set$issubset(t)))},$flags:{OneArg:!0},$textsig:null,$doc:"Report whether another set contains this set."},issuperset:{$meth(t){return Sk.builtin.checkAnySet(t)||(t=this.set$make_basetype(t)),Sk.misceval.chain(t,(t=>t.set$issubset(this)))},$flags:{OneArg:!0},$textsig:null,$doc:"Report whether this set contains another set."},pop:{$meth(){if(0===this.get$size())throw new Sk.builtin.KeyError("pop from an empty set");return Sk.misceval.callsimArray(this.v.popitem,[this.v]).v[0]},$flags:{NoArgs:!0},$textsig:null,$doc:"Remove and return an arbitrary set element.\nRaises KeyError if the set is empty."},remove:{$meth(t){const e=i(t);if(this.v.mp$lookup(e))return this.v.mp$ass_subscript(e),Sk.builtin.none.none$;throw new Sk.builtin.KeyError(t)},$flags:{OneArg:!0},$textsig:null,$doc:"Remove an element from a set; it must be a member.\n\nIf the element is not a member, raise a KeyError."},symmetric_difference:{$meth(t){let e;return Sk.misceval.chain(this.set$make_basetype(t),(t=>(e=t,e.set$symmetric_diff_update(this))),(()=>e))},$flags:{OneArg:!0},$textsig:null,$doc:"Return the symmetric difference of two sets as a new set.\n\n(i.e. all elements that are in exactly one of the sets.)"},symmetric_difference_update:{$meth(t){return Sk.builtin.checkAnySet(t)||(t=this.set$make_basetype(t)),Sk.misceval.chain(t,(t=>this.set$symmetric_diff_update(t)),(()=>Sk.builtin.none.none$))},$flags:{OneArg:!0},$textsig:null,$doc:"Update a set with the symmetric difference of itself and another."},union:{$meth(...t){const e=this.set$copy();return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>e.set$update(t))),(()=>e))},$flags:{MinArgs:0},$textsig:null,$doc:"Return the union of sets as a new set.\n\n(i.e. all elements that are in either set.)"},update:{$meth(...t){return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>this.set$update(t))),(()=>Sk.builtin.none.none$))},$flags:{MinArgs:0},$textsig:null,$doc:"Update a set with the union of itself and others."}},classmethods:Sk.generic.classGetItem,proto:Object.assign(t,{sk$asarray(){return this.v.sk$asarray()},get$size(){return this.v.sq$length()},set$add(t){this.v.mp$ass_subscript(t,!0)},set$make_basetype(t){return Sk.misceval.chain(Sk.misceval.arrayFromIterable(t,!0),(t=>new this.sk$builtinBase(t)))},set$discard(t){return this.v.pop$item(t)},set$clear(){this.v=new Sk.builtin.dict([])},set$copy(){const t=new this.sk$builtinBase;return t.v=this.v.dict$copy(),t},set$difference_update(t){return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.set$discard(t)}))},set$intersection(t){const e=new this.sk$builtinBase;return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.sq$contains(t)&&e.set$add(t)})),(()=>e))},set$intersection_multi(...t){if(!t.length)return this.set$copy();let e=this;return Sk.misceval.chain(Sk.misceval.iterArray(t,(t=>Sk.misceval.chain(e.set$intersection(t),(t=>{e=t})))),(()=>e))},set$issubset(t){if(this.get$size()>t.get$size())return Sk.builtin.bool.false$;for(let e=this.tp$iter(),n=e.tp$iternext();void 0!==n;n=e.tp$iternext())if(!t.sq$contains(n))return Sk.builtin.bool.false$;return Sk.builtin.bool.true$},set$symmetric_diff_update(t){return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{void 0===this.set$discard(t)&&this.set$add(t)}))},set$update(t){return Sk.misceval.iterFor(Sk.abstr.iter(t),(t=>{this.set$add(t)}))},swap$bodies(t){this.v=t.v}})}),Sk.exportSymbol("Sk.builtin.set",Sk.builtin.set),e=Sk.builtin.set.prototype,Sk.builtin.frozenset=Sk.abstr.buildNativeClass("frozenset",{constructor:function(t){void 0===t?t=[]:Array.isArray(t)||(t=Sk.misceval.arrayFromIterable(t)),Sk.asserts.assert(this instanceof Sk.builtin.frozenset,"bad call to frozen set - must be called with 'new'");const e=[];for(let n=0;n empty frozenset object\nfrozenset(iterable) -> frozenset object\n\nBuild an immutable unordered collection of unique elements.",tp$hash(){let t=1927868237;const e=this.sk$asarray();t*=e.length+1;for(let n=0;nt.length?new Sk.builtin.frozenset(t):Sk.builtin.frozenset.$emptyset)))},$r:e.$r,tp$iter:e.tp$iter,tp$richcompare:e.tp$richcompare,nb$subtract:e.nb$subtract,nb$and:e.nb$and,nb$or:e.nb$or,nb$xor:e.nb$xor,sq$length:e.sq$length,sq$contains:e.sq$contains},methods:{copy:Object.assign({},e.copy.d$def,{$meth(){return this.constructor===this.sk$builtinBase?this:new Sk.builtin.frozenset(this.sk$asarray())}}),difference:e.difference.d$def,intersection:e.intersection.d$def,isdisjoint:e.isdisjoint.d$def,issubset:e.issubset.d$def,issuperset:e.issuperset.d$def,symmetric_difference:e.symmetric_difference.d$def,union:e.union.d$def},classmethods:Sk.generic.classGetItem,proto:Object.assign({$subtype_new(t,e){const n=new this.constructor;return Sk.misceval.chain(Sk.builtin.frozenset.prototype.tp$new(t),(t=>(n.v=t.v,n)))}},t)}),Sk.builtin.frozenset.$emptyset=new Sk.builtin.frozenset([]),Sk.exportSymbol("Sk.builtin.frozenset",Sk.builtin.frozenset);var s=Sk.abstr.buildIteratorClass("set_iterator",{constructor:function(t){this.$index=0,this.$seq=t.sk$asarray(),this.$orig=t},iternext:Sk.generic.iterNextWithArrayCheckSize,methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}})},function(t,e){Sk.builtin.print=function(t,e){let n,[i,s,r]=Sk.abstr.copyKeywordsToNamedArgs("print",["sep","end","file","flush"],[],e);if(void 0===i||Sk.builtin.checkNone(i))i=" ";else{if(!Sk.builtin.checkString(i))throw new Sk.builtin.TypeError("sep must be None or a string, not "+Sk.abstr.typeName(i));i=i.$jsstr()}if(void 0===s||Sk.builtin.checkNone(s))s="\n";else{if(!Sk.builtin.checkString(s))throw new Sk.builtin.TypeError("end must be None or a string, not "+Sk.abstr.typeName(s));s=s.$jsstr()}if(void 0!==r&&!Sk.builtin.checkNone(r)&&(n=Sk.abstr.lookupSpecial(r,Sk.builtin.str.$write),void 0===n))throw new Sk.builtin.AttributeError("'"+Sk.abstr.typeName(r)+"' object has no attribute 'write'");const o=new Sk.builtin.str(t.map((t=>new Sk.builtin.str(t).toString())).join(i)+s);if(void 0===n)return Sk.misceval.chain(Sk.importModule("sys",!1,!0),(t=>(n=Sk.abstr.lookupSpecial(t.$d.stdout,Sk.builtin.str.$write))&&Sk.misceval.callsimOrSuspendArray(n,[o])));Sk.misceval.callsimArray(n,[o])},Sk.builtin.print.co_fastcall=1},function(t,e){Sk.builtin.module=Sk.abstr.buildNativeClass("module",{constructor:function(){this.$d={}},slots:{tp$doc:"Create a module object.\n\nThe name must be a string; the optional doc argument can have any type.",tp$getattr(t,e){var n=this.$d[t.$mangled];if(void 0!==n)return n;if(void 0!==(n=this.ob$type.$typeLookup(t))){const t=n.tp$descr_get;return t?t.call(n,this,this.ob$type,e):n}const i=this.$d.__getattr__;return void 0!==i?(n=Sk.misceval.tryCatch((()=>Sk.misceval.callsimOrSuspendArray(i,[t])),(t=>{if(!(t instanceof Sk.builtin.AttributeError))throw t})),e?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)):void 0},tp$setattr:Sk.generic.setAttr,tp$new:Sk.generic.new,tp$init(t,e){const[n,i]=Sk.abstr.copyKeywordsToNamedArgs("module",["name","doc"],t,e,[Sk.builtin.none.none$]);Sk.builtin.pyCheckType("module","string",n),this.init$dict(n,i)},$r(){let t=this.get$name();if(void 0!==t){var e=this.get$mod_reprf();if(void 0!==e)return Sk.misceval.callsimOrSuspendArray(e,[this])}return t=void 0===t?"'?'":t,e=void 0===(e=this.from$file())?this.empty_or$loader():e,new Sk.builtin.str("")}},getsets:{__dict__:{$get(){return new Sk.builtin.mappingproxy(this.$d)}}},methods:{__dir__:{$meth(){const t=this.tp$getattr(Sk.builtin.str.$dict);if(!Sk.builtin.checkMapping(t))throw new Sk.builtin.TypeError("__dict__ is not a dictionary");const e=t.mp$lookup(Sk.builtin.str.$dir);return void 0!==e?Sk.misceval.callsimOrSuspendArray(e,[]):new Sk.builtin.list(Sk.misceval.arrayFromIterable(t))},$flags:{NoArgs:!0},$doc:"__dir__() -> list\nspecialized dir() implementation"}},proto:{sk$hasDict:!0,init$dict(t,e){this.$d.__name__=t,this.$d.__doc__=e,this.$d.__package__=Sk.builtin.none.none$,this.$d.__spec__=Sk.builtin.none.none$,this.$d.__loader__=Sk.builtin.none.none$},sk$attrError(){let t=this.get$name();return t=void 0===t?"module":"module "+t,this.$initializing&&(t="(most likely due to a circular import) partially initialized "+t),t},get$name(){const t=this.tp$getattr(Sk.builtin.str.$name);return t&&Sk.misceval.objectRepr(t)},from$file(){const t=this.tp$getattr(Sk.builtin.str.$file);return t&&" from "+Sk.misceval.objectRepr(t)},empty_or$loader(){if(this.$js&&this.$js.includes("$builtinmodule"))return" (built-in)";const t=this.tp$getattr(Sk.builtin.str.$loader);return void 0===t||Sk.builtin.checkNone(t)?"":" ("+Sk.misceval.objectRepr(t)+")"},get$mod_reprf(){const t=this.tp$getattr(Sk.builtin.str.$loader);return t&&t.tp$getattr(this.str$mod_repr)},str$mod_repr:new Sk.builtin.str("module_repr")}}),Sk.exportSymbol("Sk.builtin.module",Sk.builtin.module)},function(t,e){Sk.builtin.structseq_types={},Sk.builtin.make_structseq=function(t,e,n,i,s){i=void 0===i?{}:i,s=void 0===s?null:s;const r=t+"."+e,o=[],a={};Object.keys(n).forEach(((t,e)=>{o.push(t),a[t]={$get(){return this.v[e]},$doc:n[t]}}));const l=o.length;let u=l;Object.keys(i).forEach(((t,e)=>{a[t]={$get(){return this.$hidden[e]||Sk.builtin.none.none$},$doc:i[t]},u++}));var c=Sk.abstr.buildNativeClass(r,{constructor:function(t,e){Sk.asserts.assert(this instanceof c),Sk.builtin.tuple.call(this,t),this.$hidden=e||[]},base:Sk.builtin.tuple,slots:{tp$new(t,e){if(Sk.abstr.checkOneArg(r,t,e),(t=Sk.misceval.arrayFromIterable(t[0])).lengthu)throw new Sk.builtin.TypeError(r+"() takes an at most "+u+"-sequence ("+t.length+"-sequence given)");return new c(t.slice(0,l),t.slice(l))},tp$doc:s||Sk.builtin.none.none$,$r(){var t;if(0===this.v.length)return new Sk.builtin.str(r+"()");var e=[];for(t=0;t")}},iternext(t,e){var n=this;if(this.gi$running)throw new Sk.builtin.ValueError("generator already executing");return this.gi$running=!0,void 0===e&&(e=Sk.builtin.none.none$),this.gi$sentvalue=e,e=[this],this.func_closure&&e.push(this.func_closure),function e(i){if(i instanceof Sk.misceval.Suspension){if(t)return new Sk.misceval.Suspension(e,i);i=Sk.misceval.retryOptionalSuspensionOrThrow(i)}if(n.gi$running=!1,Sk.asserts.assert(void 0!==i),Array.isArray(i))return n.gi$resumeat=i[0],i[1];n.gi$ret=i}(this.func_code.apply(this.func_globals,e))},methods:{send:{$meth(t){return Sk.misceval.chain(this.tp$iternext(!0,t),(t=>{if(void 0===t)throw void 0!==(t=this.gi$ret)&&t!==Sk.builtin.none.none$?new Sk.builtin.StopIteration(t):new Sk.builtin.StopIteration;return t}))},$flags:{OneArg:!0},$doc:"send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration."}}}),Sk.exportSymbol("Sk.builtin.generator",Sk.builtin.generator),Sk.builtin.makeGenerator=function(t,e){var n,i=new Sk.builtin.generator(null,null,null);for(n in i.tp$iternext=t,e)e.hasOwnProperty(n)&&(i[n]=e[n]);return i},Sk.exportSymbol("Sk.builtin.makeGenerator",Sk.builtin.makeGenerator)},function(t,e){Sk.builtin.file=function(t,e,n){var i;if(!(this instanceof Sk.builtin.file))return new Sk.builtin.file(t,e,n);if(this.mode=e,this.name=Sk.ffi.remapToJs(t),this.closed=!1,"/dev/stdout"===this.name)this.data$=Sk.builtin.none.none$,this.fileno=1;else if("/dev/stdin"===this.name)this.fileno=0;else if("/dev/stderr"===this.name)this.fileno=2;else{if(Sk.inBrowser)if(this.fileno=10,null==(n=document.getElementById(t.v))){if("w"!=e.v&&"a"!=e.v)throw new Sk.builtin.IOError("[Errno 2] No such file or directory: '"+t.v+"'");this.data$=""}else"textarea"==n.nodeName.toLowerCase()?this.data$=n.value:this.data$=n.textContent;else this.fileno=11,this.data$=Sk.read(t.v);for(i in this.lineList=this.data$.split("\n"),this.lineList=this.lineList.slice(0,-1),this.lineList)this.lineList[i]+="\n";this.currentLine=0}return this.pos$=0,Sk.fileopen&&10<=this.fileno&&Sk.fileopen(this),this},Sk.abstr.setUpInheritance("file",Sk.builtin.file,Sk.builtin.object),Sk.abstr.setUpBuiltinMro(Sk.builtin.file),Sk.builtin.file.prototype.$r=function(){return new Sk.builtin.str("<"+(this.closed?"closed":"open")+"file '"+this.name+"', mode '"+Sk.ffi.remapToJs(this.mode)+"'>")},Sk.builtin.file.prototype.tp$iter=function(){var t={tp$iter:function(){return t},$obj:this,$index:this.currentLine,$lines:this.lineList,tp$iternext:function(){if(!(t.$index>=t.$lines.length))return new Sk.builtin.str(t.$lines[t.$index++])}};return t},Sk.abstr.setUpSlots(Sk.builtin.file),Sk.builtin.file.prototype.__enter__=new Sk.builtin.func((function(t){return t})),Sk.builtin.file.prototype.__exit__=new Sk.builtin.func((function(t){return Sk.misceval.callsimArray(Sk.builtin.file.prototype.close,[t])})),Sk.builtin.file.prototype.close=new Sk.builtin.func((function(t){return t.closed=!0,Sk.builtin.none.none$})),Sk.builtin.file.prototype.flush=new Sk.builtin.func((function(t){})),Sk.builtin.file.prototype.fileno=new Sk.builtin.func((function(t){return this.fileno})),Sk.builtin.file.prototype.isatty=new Sk.builtin.func((function(t){return!1})),Sk.builtin.file.prototype.read=new Sk.builtin.func((function(t,e){var n=t.data$.length;if(t.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var i=void 0===e?n:Sk.ffi.remapToJs(e);return i=new Sk.builtin.str(t.data$.substr(t.pos$,i)),t.pos$=void 0===e?n:t.pos$+Sk.ffi.remapToJs(e),t.pos$>=n&&(t.pos$=n),i})),Sk.builtin.file.$readline=function(t,e,n){if(0===t.fileno){if(t=Sk.ffi.remapToJs(n),(t=Sk.inputfun(t||""))instanceof Promise||t&&"function"==typeof t.then){var i=new Sk.misceval.Suspension;return i.resume=function(){if(i.data.error)throw i.data.error;return new Sk.builtin.str(i.data.result)},i.data={type:"Sk.promise",promise:t},i}return new Sk.builtin.str(t)}return e="",t.currentLinen(t,e))));if("object"===i){if((i=t.constructor)===Object&&Object.getPrototypeOf(t)===c||void 0===i)return e.dictHook?e.dictHook(t):l(t,e);if(i===Uint8Array)return new Sk.builtin.bytes(t);if(i===Set)return a(t,e);if(i===Map){const i=new Sk.builtin.dict;return t.forEach(((t,s)=>{i.mp$ass_subscript(n(s,e),n(t,e))})),i}return i===Sk.misceval.Suspension?t:e.proxyHook?e.proxyHook(t):u(t)}if(e.unhandledHook)return e.unhandledHook(t);Sk.asserts.fail("unhandled remap case of type "+i)}function i(t,e){if(null==t)return t;const n=t.valueOf();if(null===n)return n;const o=typeof n;return e=e||{},"string"===o?e.stringHook?e.stringHook(n):n:"boolean"===o?n:"number"===o?e.numberHook?e.numberHook(n,t):n:JSBI.__isBigInt(n)?e.bigintHook?e.bigintHook(n,t):n:Array.isArray(n)?e.arrayHook?e.arrayHook(n,t):n.map((t=>i(t,e))):n.sk$object?t instanceof Sk.builtin.dict?e.dictHook?e.dictHook(t):r(t,e):t instanceof Sk.builtin.set?e.setHook?e.setHook(t):new Set(s(t,e)):e.unhandledHook?e.unhandledHook(t):void 0:"object"===o?e.objectHook?e.objectHook(n,t):n:"function"===o?e.funcHook?e.funcHook(n,t):n:void Sk.asserts.fail("unhandled type "+o)}function s(t,e){return Array.from(t,(t=>i(t,e)))}function r(t,e){const n={};return t.$items().forEach((t=>{var[s,r]=t;n[s.valueOf()]=i(r,e)})),n}function o(t){return Number.isInteger(t)?Math.abs(t)n(t,e))))}function l(t,e){const i=new Sk.builtin.dict;return Object.entries(t).forEach((t=>{var[s,r]=t;i.mp$ass_subscript(new Sk.builtin.str(s),n(r,e))})),i}function u(t,e){if(null==t)return Sk.builtin.none.none$;var i=typeof t;if("object"!==i&&"function"!==i)return n(t);if(e=e||{},i=_.get(t)){if(e.bound===i.$bound)return i;e.name||(e.name=i.$name)}return e=new g(t,e),_.set(t,e),e}Sk.ffi={remapToPy:n,remapToJs:i,toPy:n,toJs:i,isTrue:function(t){return null!=t&&t.nb$bool?t.nb$bool():t.sq$length?0!==t.sq$length():!!t},toJsString:function(t){return String(t)},toJsNumber:function(t){return Number(t)},toJsArray:s,toJsHashMap:r,toPyDict:l,toPyFloat:function(t){return new Sk.builtin.float_(Number(t))},toPyInt:function(t){if("number"==typeof t)return t=Math.trunc(t),Math.abs(t)n(t,e))))},toPyTuple:function(t,e){return new Sk.builtin.tuple(Array.from(t,(t=>n(t,e))))},toPySet:a,numberToPy:o,proxy:u};const c=Object.prototype,p=Function.prototype,h=/^-?\d+$/,_=new WeakMap,d={dictHook:t=>u(t),unhandledHook:t=>String(t)},f=(t,e)=>({dictHook:t=>u(t),funcHook:n=>u(n,{bound:t,name:e}),unhandledHook:t=>String(t)}),m={unhandledHook:t=>{var e=_.get(t);if(e)return e;if(e={v:t,$isPyWrapped:!0,unwrap:()=>t},void 0===t.tp$call)return _.set(t,e),e;const s=(...e)=>{e=e.map((t=>n(t,d)));let s=Sk.misceval.tryCatch((()=>Sk.misceval.chain(t.tp$call(e),(t=>i(t,m)))),(t=>{if(!Sk.uncaughtException)throw t;Sk.uncaughtException(t)}));for(;s instanceof Sk.misceval.Suspension;){if(!s.optional)return Sk.misceval.asyncToPromise((()=>s));s=s.resume()}return s};return _.set(t,Object.assign(s,e)),s}},g=Sk.abstr.buildNativeClass("Proxy",{constructor:function(t,e){if(void 0===t)throw new Sk.builtin.TypeError("Proxy cannot be called from python");this.js$wrapped=t,this.$module=null,this.$methods=Object.create(null),this.in$repr=!1,e||(e={}),Object.defineProperties(this,this.memoized$slots),"function"==typeof t?(this.is$callable=!0,this.$bound=e.bound,this.$name=e.name||t.name||"(native JS)",2>=this.$name.length&&(this.$name+=" (native JS)")):(this.is$callable=!1,delete this.is$type,this.is$type=!1,this.$name=e.name)},slots:{tp$doc:"proxy for a javascript object",tp$hash(){return Sk.builtin.object.prototype.tp$hash.call(this.js$wrapped)},tp$getattr(t){return this.$lookup(t)||Sk.generic.getAttr.call(this,t)},tp$setattr(t,e){t=t.toString(),void 0===e?delete this.js$wrapped[t]:this.js$wrapped[t]=i(e,m)},$r(){if(this.is$callable){if(this.is$type||!this.$bound)return new Sk.builtin.str("<"+this.tp$name+" '"+this.$name+"'>");var t=Sk.misceval.objectRepr(u(this.$bound));return new Sk.builtin.str("")}return this.js$proto===c?this.in$repr?new Sk.builtin.str("{...}"):(this.in$repr=!0,t=Object.entries(this.js$wrapped).map((t=>{var[e,i]=t;return i=n(i,f(this.js$wrapped,e)),"'"+e+"': "+Sk.misceval.objectRepr(i)})),t=new Sk.builtin.str("proxyobject({"+t.join(", ")+"})"),this.in$repr=!1,t):new Sk.builtin.str("<"+this.tp$name+" "+("proxyobject"===this.tp$name?"object":"proxyobject")+">")},tp$as_sequence_or_mapping:!0,mp$subscript(t){const e=this.$lookup(t);if(void 0===e)throw new Sk.builtin.LookupError(t);return e},mp$ass_subscript(t,e){return this.tp$setattr(t,e)},sq$contains(t){return i(t)in this.js$wrapped},ob$eq(t){return this.js$wrapped===t.js$wrapped},ob$ne(t){return this.js$wrapped!==t.js$wrapped},tp$as_number:!0,nb$bool(){return this.js$proto===c?0new Sk.builtin.str(t)))))},$flags:{NoArgs:!0}},__new__:{$meth(t,...e){if(!(t instanceof g))throw new Sk.builtin.TypeError("expected a proxy object as the first argument not "+Sk.abstr.typeName(t));try{return t.$new(e)}catch(e){if(e instanceof TypeError&&e.message.includes("not a constructor"))throw new Sk.builtin.TypeError(Sk.misceval.objectRepr(t)+" is not a constructor");throw e}},$flags:{MinArgs:1}},__call__:{$meth(t,e){if("function"!=typeof this.js$wrapped)throw new Sk.builtin.TypeError("'"+this.tp$name+"' object is not callable");return this.$call(t,e)},$flags:{FastCall:!0}},keys:{$meth(){return new Sk.builtin.list(Object.keys(this.js$wrapped).map((t=>new Sk.builtin.str(t))))},$flags:{NoArgs:!0}},get:{$meth(t,e){return this.$lookup(t)||e||Sk.builtin.none.none$},$flags:{MinArgs:1,MaxArgs:2}}},getsets:{__class__:{$get(){return n(this.js$wrapped.constructor,d)},$set(){throw new Sk.builtin.TypeError("not writable")}},__name__:{$get(){return new Sk.builtin.str(this.$name)}},__module__:{$get(){return this.$module||Sk.builtin.none.none$},$set(t){this.$module=t}}},proto:{valueOf(){return this.js$wrapped},$new(t,e){return Sk.abstr.checkNoKwargs("__new__",e),n(new this.js$wrapped(...t.map((t=>i(t,m)))),{dictHook:t=>u(t),proxyHook:t=>u(t,{name:this.$name})})},$call(t,e){return Sk.abstr.checkNoKwargs("__call__",e),Sk.misceval.chain(this.js$wrapped.apply(this.$bound,t.map((t=>i(t,m)))),(t=>t instanceof Promise?Sk.misceval.promiseToSuspension(t):t),(t=>n(t,d)))},$lookup(t){t=t.toString();const e=this.js$wrapped[t];return void 0!==e?n(e,f(this.js$wrapped,t)):t in this.js$wrapped?Sk.builtin.none.none$:void 0},memoized$slots:{js$proto:{configurable:!0,get(){return delete this.js$proto,this.js$proto=Object.getPrototypeOf(this.js$wrapped)}},$dir:{configurable:!0,get(){const t=[];let e=this.js$wrapped;for(;null!=e&&e!==c&&e!==p;)t.push(...Object.getOwnPropertyNames(e)),e=Object.getPrototypeOf(e);return new Set(t)}},tp$iter:{configurable:!0,get(){return delete this.tp$iter,void 0!==this.js$wrapped[Symbol.iterator]?this.tp$iter=()=>u(this.js$wrapped[Symbol.iterator]()):this.tp$iter=()=>{throw new Sk.builtin.TypeError(Sk.misceval.objectRepr(this)+" is not iterable")}}},tp$iternext:{configurable:!0,get(){if(delete this.tp$iternext,void 0!==this.js$wrapped.next)return this.tp$iternext=()=>{const t=this.js$wrapped.next().value;return t&&n(t,d)}}},sq$length:{configurable:!0,get(){if(delete this.sq$length,!this.is$callable&&void 0!==this.js$wrapped.length)return this.sq$length=()=>this.js$wrapped.length}},tp$call:{configurable:!0,get(){if(delete this.tp$call,this.is$callable)return this.tp$call=this.is$type?this.$new:this.$call}},tp$name:{configurable:!0,get(){if(delete this.tp$name,this.is$callable)return this.tp$name=this.is$type?"proxyclass":this.$bound?"proxymethod":"proxyfunction";{const t=this.js$wrapped;let e=t[Symbol.toStringTag]||this.$name||t.constructor&&t.constructor.name||"proxyobject";return"Object"===e?e="proxyobject":2>=e.length&&(e=u(t.constructor).$name),this.tp$name=e}}},is$type:{configurable:!0,get(){delete this.is$type;var t=this.js$wrapped;const e=t.prototype;if(void 0===e)return this.is$type=t===Sk.global.Proxy;{const e=S.call(t).match(b);t=null===e?null:"class"===e[0]||!k.has(t)}return!0===t?this.is$type=!0:!1===t?this.is$type=!1:1e;r+=n)s.push(new Sk.builtin.int_(r));else{if(t=r=JSBI.BigInt(t),n=JSBI.BigInt(n),e=JSBI.BigInt(e),JSBI.greaterThan(n,JSBI.__ZERO))for(;JSBI.lessThan(r,e);)s.push(new Sk.builtin.int_(i(r))),r=JSBI.add(r,n);else for(;JSBI.greaterThan(r,e);)s.push(new Sk.builtin.int_(i(r))),r=JSBI.add(r,n);t=i(t),n=i(n),e=i(e)}return new Sk.builtin.range_(t,e,n,s)}function i(t){return JSBI.lessThan(t,JSBI.__MAX_SAFE)&&JSBI.greaterThan(t,JSBI.__MIN_SAFE)?JSBI.toNumber(t):t}Sk.builtin.range_=Sk.abstr.buildNativeClass("range",{constructor:function(t,e,n,i){this.start=t,this.stop=e,this.step=n,this.v=i},slots:{tp$getattr:Sk.generic.getAttr,tp$as_sequence_or_mapping:!0,tp$doc:"range(stop) -> range object\nrange(start, stop[, step]) -> range object\n\nReturn an object that produces a sequence of integers from start (inclusive)\nto stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.\nstart defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.\nThese are exactly the valid indices for a list of 4 elements.\nWhen step is given, it specifies the increment (or decrement).",tp$new:(t,e)=>(Sk.abstr.checkNoKwargs("range",e),Sk.abstr.checkArgsLen("range",t,1,3),n(t[0],t[1],t[2])),$r(){let t="range("+this.start+", "+this.stop;return 1!=this.step&&(t+=", "+this.step),new Sk.builtin.str(t+")")},tp$richcompare(t,e){return"Eq"!==e&&"NotEq"!==e||t.ob$type!==Sk.builtin.range_?Sk.builtin.NotImplemented.NotImplemented$:(t=new Sk.builtin.list(t.v),new Sk.builtin.list(this.v).tp$richcompare(t,e))},tp$iter(){return new s(this)},nb$bool(){return 0!==this.v.length},sq$contains(t){const e=this.v;for(let n=0;n(t=Sk.misceval.asIndexSized(t))&&(t=this.v.length+t),0>t||t>=this.v.length)throw new Sk.builtin.IndexError("range object index out of range");return this.v[t]}if(t.constructor===Sk.builtin.slice){const e=[],n=this.v;t.sssiter$(n.length,(t=>{e.push(n[t])}));let{start:i,stop:s,step:r}=t.slice$indices(n.length);return i=Sk.misceval.asIndex(n[i])||this.start,s=Sk.misceval.asIndex(n[s])||this.stop,r="number"==typeof this.step?r*this.step:JSBI.multiply(this.step,JSBI.BigInt(r)),new Sk.builtin.range_(i,s,r,e)}throw new Sk.builtin.TypeError("range indices must be integers or slices, not "+Sk.abstr.typeName(t))}},getsets:{start:{$get(){return new Sk.builtin.int_(this.start)}},step:{$get(){return new Sk.builtin.int_(this.step)}},stop:{$get(){return new Sk.builtin.int_(this.stop)}}},methods:{__reversed__:{$meth(){return new r(this)},$flags:{NoArgs:!0},$textsig:null,$doc:"Return a reverse iterator."},count:{$meth(t){let e=0;for(let n=0;n integer -- return number of occurrences of value"},index:{$meth(t){for(let e=0;e integer -- return index of value.\nRaise ValueError if the value is not present."}},proto:{sk$asarray(){return this.v.slice(0)}},flags:{sk$unacceptableBase:!0}});var s=Sk.abstr.buildIteratorClass("range_iterator",{constructor:function(t){this.$index=0,this.$seq=t.v},iternext(){return this.$seq[this.$index++]},methods:{__length_hint__:Sk.generic.iterLengthHintWithArrayMethodDef},flags:{sk$unacceptableBase:!0}}),r=Sk.abstr.buildIteratorClass("range_reverseiterator",{constructor:function(t){this.$seq=t.v,this.$index=this.$seq.length-1},iternext(){return this.$seq[this.$index--]},methods:{__length_hint__:Sk.generic.iterReverseLengthHintMethodDef},flags:{sk$unacceptableBase:!0}});Sk.builtin.range=Sk.builtin.xrange=function(t,e,i){return t=n(t,e,i),new Sk.builtin.list(t.v)}},function(t,e){Sk.builtin.enumerate=Sk.abstr.buildIteratorClass("enumerate",{constructor:function(t,e){if(!(this instanceof Sk.builtin.enumerate))throw TypeError("Failed to construct 'enumerate': Please use the 'new' operator");return this.$iterable=t,this.$index=e,this},iternext(t){const e=Sk.misceval.chain(this.$iterable.tp$iternext(t),(t=>{if(void 0!==t)return new Sk.builtin.tuple([new Sk.builtin.int_(this.$index++),t])}));return t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)},slots:{tp$doc:"Return an enumerate object.\n\n iterable\n an object supporting iteration\n\nThe enumerate object yields pairs containing a count (from start, which\ndefaults to zero) and a value yielded by the iterable argument.\n\nenumerate is useful for obtaining an indexed list:\n (0, seq[0]), (1, seq[1]), (2, seq[2]), ...",tp$new(t,e){let[n,i]=Sk.abstr.copyKeywordsToNamedArgs("enumerate",["iterable","start"],t,e,[new Sk.builtin.int_(0)]);return n=Sk.abstr.iter(n),i=Sk.misceval.asIndexOrThrow(i),this===Sk.builtin.enumerate.prototype?new Sk.builtin.enumerate(n,i):(t=new this.constructor,Sk.builtin.enumerate.call(t,n,i),t)}},classmethods:Sk.generic.classGetItem}),Sk.exportSymbol("Sk.builtin.enumerate",Sk.builtin.enumerate)},function(t,e){Sk.builtin.filter_=Sk.abstr.buildIteratorClass("filter",{constructor:function(t,e){this.$func=t,this.$iterable=e},iternext(t){const e=Sk.misceval.iterFor(this.$iterable,(t=>Sk.misceval.chain(this.check$filter(t),(t=>t?new Sk.misceval.Break(t):void 0))));return t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)},slots:{tp$doc:"Return an iterator yielding those items of iterable for which function(item)\nis true. If function is None, return the items that are true.",tp$new(t,e){let[n,i]=Sk.abstr.copyKeywordsToNamedArgs("filter",["predicate","iterable"],t,e,[]);return n=Sk.builtin.checkNone(n)?null:n,i=Sk.abstr.iter(i),this===Sk.builtin.filter_.prototype?new Sk.builtin.filter_(n,i):(t=new this.constructor,Sk.builtin.filter_.call(t,n,i),t)}},proto:{check$filter(t){let e;return e=null===this.$func?t:Sk.misceval.callsimOrSuspendArray(this.$func,[t]),Sk.misceval.chain(e,(e=>Sk.misceval.isTrue(e)?t:void 0))}}}),Sk.exportSymbol("Sk.builtin.filter_",Sk.builtin.filter_)},function(t,e){Sk.builtin.map_=Sk.abstr.buildIteratorClass("map",{constructor:function(t,e){this.$func=t,this.$iters=e},iternext(t){const e=[],n=Sk.misceval.chain(Sk.misceval.iterArray(this.$iters,(n=>Sk.misceval.chain(n.tp$iternext(t),(t=>{if(void 0===t)return new Sk.misceval.Break(!0);e.push(t)})))),(t=>t?void 0:Sk.misceval.callsimOrSuspendArray(this.$func,e)));return t?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)},slots:{tp$doc:"map(func, *iterables) --\x3e map object\n\nMake an iterator that computes the function using arguments from\neach of the iterables. Stops when the shortest iterable is exhausted.",tp$new(t,e){this===Sk.builtin.map_.prototype&&Sk.abstr.checkNoKwargs("map",e),Sk.abstr.checkArgsLen("map",t,2),e=t[0];const n=[];for(let e=1;ethis.$idx)){var e=Sk.misceval.tryCatch((()=>Sk.abstr.objectGetItem(this.$seq,new Sk.builtin.int_(this.$idx--),t)),(t=>{if(!(t instanceof Sk.builtin.IndexError))throw t;this.$idx=-1}));return t?e:Sk.misceval.retryOptionalSuspensionOrThrow(e)}},slots:{tp$doc:"Return a reverse iterator over the values of the given sequence.",tp$new(t,e){if(this===Sk.builtin.reversed.prototype&&Sk.abstr.checkNoKwargs("reversed",e),Sk.abstr.checkArgsLen("reversed",t,1,1),t=t[0],void 0!==(e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$reversed)))return Sk.misceval.callsimArray(e,[]);if(!Sk.builtin.checkSequence(t)||void 0===Sk.abstr.lookupSpecial(t,Sk.builtin.str.$len))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' object is not a sequence");return this===Sk.builtin.reversed.prototype?new Sk.builtin.reversed(t):(e=new this.constructor,Sk.builtin.reversed.call(e,t),e)}},methods:{__length_hint__:{$meth:function(){return 0<=this.$idx?new Sk.builtin.int_(this.$idx):new Sk.builtin.int_(0)},$flags:{NoArgs:!0}}}})},function(t,e){Sk.builtin.zip_=Sk.abstr.buildIteratorClass("zip",{constructor:function(t){this.$iters=t,0===t.length&&(this.tp$iternext=()=>{})},iternext(t){const e=[],n=Sk.misceval.chain(Sk.misceval.iterArray(this.$iters,(n=>Sk.misceval.chain(n.tp$iternext(t),(t=>{if(void 0===t)return new Sk.misceval.Break(!0);e.push(t)})))),(t=>t?void 0:new Sk.builtin.tuple(e)));return t?n:Sk.misceval.retryOptionalSuspensionOrThrow(n)},slots:{tp$doc:"zip(iter1 [,iter2 [...]]) --\x3e zip object\n\nReturn a zip object whose .__next__() method returns a tuple where\nthe i-th element comes from the i-th iterable argument. The .__next__()\nmethod continues until the shortest iterable in the argument sequence\nis exhausted and then it raises StopIteration.",tp$new(t,e){this===Sk.builtin.zip_.prototype&&Sk.abstr.checkNoKwargs("zip",e),e=[];for(let n=0;n":n.T_RARROW,".":n.T_DOT,"...":n.T_ELLIPSIS,"/":n.T_SLASH,"//":n.T_DOUBLESLASH,"//=":n.T_DOUBLESLASHEQUAL,"/=":n.T_SLASHEQUAL,":":n.T_COLON,";":n.T_SEMI,"<":n.T_LESS,"<<":n.T_LEFTSHIFT,"<<=":n.T_LEFTSHIFTEQUAL,"<=":n.T_LESSEQUAL,"=":n.T_EQUAL,"==":n.T_EQEQUAL,">":n.T_GREATER,">=":n.T_GREATEREQUAL,">>":n.T_RIGHTSHIFT,">>=":n.T_RIGHTSHIFTEQUAL,"@":n.T_AT,"@=":n.T_ATEQUAL,"[":n.T_LSQB,"]":n.T_RSQB,"^":n.T_CIRCUMFLEX,"^=":n.T_CIRCUMFLEXEQUAL,"{":n.T_LBRACE,"|":n.T_VBAR,"|=":n.T_VBAREQUAL,"}":n.T_RBRACE,"~":n.T_TILDE};var i={};!function(){for(var t in n)i[n[t]]=t}(),["tok_name","ISTERMINAL","ISNONTERMINAL","ISEOF"].concat(Object.keys(i).map((function(t){return i[t]}))),Sk.token={},Sk.token.tokens=n,Sk.token.tok_name=i,Sk.token.EXACT_TOKEN_TYPES=t,Sk.token.ISTERMINAL=function(t){return t=n.T_NT_OFFSET},Sk.token.ISEOF=function(t){return t==n.T_ENDMARKER},Sk.exportSymbol("Sk.token",Sk.token),Sk.exportSymbol("Sk.token.tokens",Sk.token.tokens),Sk.exportSymbol("Sk.token.tok_name",Sk.token.tok_name),Sk.exportSymbol("Sk.token.EXACT_TOKEN_TYPES"),Sk.exportSymbol("Sk.token.ISTERMINAL",Sk.token.ISTERMINAL),Sk.exportSymbol("Sk.token.ISNONTERMINAL",Sk.token.ISNONTERMINAL),Sk.exportSymbol("Sk.token.ISEOF",Sk.token.ISEOF)},function(t,e){Sk.OpMap={"(":Sk.token.tokens.T_LPAR,")":Sk.token.tokens.T_RPAR,"[":Sk.token.tokens.T_LSQB,"]":Sk.token.tokens.T_RSQB,":":Sk.token.tokens.T_COLON,",":Sk.token.tokens.T_COMMA,";":Sk.token.tokens.T_SEMI,"+":Sk.token.tokens.T_PLUS,"-":Sk.token.tokens.T_MINUS,"*":Sk.token.tokens.T_STAR,"/":Sk.token.tokens.T_SLASH,"|":Sk.token.tokens.T_VBAR,"&":Sk.token.tokens.T_AMPER,"<":Sk.token.tokens.T_LESS,">":Sk.token.tokens.T_GREATER,"=":Sk.token.tokens.T_EQUAL,".":Sk.token.tokens.T_DOT,"%":Sk.token.tokens.T_PERCENT,"`":Sk.token.tokens.T_BACKQUOTE,"{":Sk.token.tokens.T_LBRACE,"}":Sk.token.tokens.T_RBRACE,"@":Sk.token.tokens.T_AT,"@=":Sk.token.tokens.T_ATEQUAL,"==":Sk.token.tokens.T_EQEQUAL,"!=":Sk.token.tokens.T_NOTEQUAL,"<>":Sk.token.tokens.T_NOTEQUAL,"<=":Sk.token.tokens.T_LESSEQUAL,">=":Sk.token.tokens.T_GREATEREQUAL,"~":Sk.token.tokens.T_TILDE,"^":Sk.token.tokens.T_CIRCUMFLEX,"<<":Sk.token.tokens.T_LEFTSHIFT,">>":Sk.token.tokens.T_RIGHTSHIFT,"**":Sk.token.tokens.T_DOUBLESTAR,"+=":Sk.token.tokens.T_PLUSEQUAL,"-=":Sk.token.tokens.T_MINEQUAL,"*=":Sk.token.tokens.T_STAREQUAL,"/=":Sk.token.tokens.T_SLASHEQUAL,"%=":Sk.token.tokens.T_PERCENTEQUAL,"&=":Sk.token.tokens.T_AMPEREQUAL,"|=":Sk.token.tokens.T_VBAREQUAL,"^=":Sk.token.tokens.T_CIRCUMFLEXEQUAL,"<<=":Sk.token.tokens.T_LEFTSHIFTEQUAL,">>=":Sk.token.tokens.T_RIGHTSHIFTEQUAL,"**=":Sk.token.tokens.T_DOUBLESTAREQUAL,"//":Sk.token.tokens.T_DOUBLESLASH,"//=":Sk.token.tokens.T_DOUBLESLASHEQUAL,"->":Sk.token.tokens.T_RARROW,"...":Sk.token.tokens.T_ELLIPSIS},Sk.ParseTables={sym:{and_expr:257,and_test:258,annassign:259,arglist:260,argument:261,arith_expr:262,assert_stmt:263,async_funcdef:264,async_stmt:265,atom:266,atom_expr:267,augassign:268,break_stmt:269,classdef:270,comp_for:271,comp_if:272,comp_iter:273,comp_op:274,comparison:275,compound_stmt:276,continue_stmt:277,debugger_stmt:278,decorated:279,decorator:280,decorators:281,del_stmt:282,dictorsetmaker:283,dotted_as_name:284,dotted_as_names:285,dotted_name:286,encoding_decl:287,eval_input:288,except_clause:289,expr:290,expr_stmt:291,exprlist:292,factor:293,file_input:294,flow_stmt:295,for_stmt:296,funcdef:297,global_stmt:298,if_stmt:299,import_as_name:300,import_as_names:301,import_from:302,import_name:303,import_stmt:304,lambdef:305,lambdef_nocond:306,nonlocal_stmt:307,not_test:308,or_test:309,parameters:310,pass_stmt:311,power:312,print_stmt:313,raise_stmt:314,return_stmt:315,shift_expr:316,simple_stmt:317,single_input:256,sliceop:318,small_stmt:319,star_expr:320,stmt:321,subscript:322,subscriptlist:323,suite:324,term:325,test:326,test_nocond:327,testlist:328,testlist_comp:329,testlist_star_expr:330,tfpdef:331,trailer:332,try_stmt:333,typedargslist:334,varargslist:335,vfpdef:336,while_stmt:337,with_item:338,with_stmt:339,xor_expr:340,yield_arg:341,yield_expr:342,yield_stmt:343},number2symbol:{256:"single_input",257:"and_expr",258:"and_test",259:"annassign",260:"arglist",261:"argument",262:"arith_expr",263:"assert_stmt",264:"async_funcdef",265:"async_stmt",266:"atom",267:"atom_expr",268:"augassign",269:"break_stmt",270:"classdef",271:"comp_for",272:"comp_if",273:"comp_iter",274:"comp_op",275:"comparison",276:"compound_stmt",277:"continue_stmt",278:"debugger_stmt",279:"decorated",280:"decorator",281:"decorators",282:"del_stmt",283:"dictorsetmaker",284:"dotted_as_name",285:"dotted_as_names",286:"dotted_name",287:"encoding_decl",288:"eval_input",289:"except_clause",290:"expr",291:"expr_stmt",292:"exprlist",293:"factor",294:"file_input",295:"flow_stmt",296:"for_stmt",297:"funcdef",298:"global_stmt",299:"if_stmt",300:"import_as_name",301:"import_as_names",302:"import_from",303:"import_name",304:"import_stmt",305:"lambdef",306:"lambdef_nocond",307:"nonlocal_stmt",308:"not_test",309:"or_test",310:"parameters",311:"pass_stmt",312:"power",313:"print_stmt",314:"raise_stmt",315:"return_stmt",316:"shift_expr",317:"simple_stmt",318:"sliceop",319:"small_stmt",320:"star_expr",321:"stmt",322:"subscript",323:"subscriptlist",324:"suite",325:"term",326:"test",327:"test_nocond",328:"testlist",329:"testlist_comp",330:"testlist_star_expr",331:"tfpdef",332:"trailer",333:"try_stmt",334:"typedargslist",335:"varargslist",336:"vfpdef",337:"while_stmt",338:"with_item",339:"with_stmt",340:"xor_expr",341:"yield_arg",342:"yield_expr",343:"yield_stmt"},dfas:{256:[[[[1,1],[2,1],[3,2]],[[0,1]],[[2,1]]],{2:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1}],257:[[[[44,1]],[[45,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],258:[[[[46,1]],[[47,0],[0,1]]],{6:1,7:1,8:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],259:[[[[48,1]],[[49,2]],[[50,3],[0,2]],[[49,4]],[[0,4]]],{48:1}],260:[[[[51,1]],[[52,2],[0,1]],[[51,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,53:1}],261:[[[[49,1],[15,2],[53,2]],[[50,2],[54,3],[0,1]],[[49,3]],[[0,3]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,53:1}],262:[[[[55,1]],[[30,0],[43,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],263:[[[[24,1]],[[49,2]],[[52,3],[0,2]],[[49,4]],[[0,4]]],{24:1}],264:[[[[10,1]],[[56,2]],[[0,2]]],{10:1}],265:[[[[10,1]],[[57,2],[56,2],[58,2]],[[0,2]]],{10:1}],266:[[[[6,1],[25,1],[33,1],[9,1],[11,1],[12,2],[35,3],[38,4],[19,1],[7,5]],[[0,1]],[[59,1],[60,6]],[[61,1],[62,7],[63,7]],[[64,1],[63,8]],[[7,5],[0,5]],[[59,1]],[[61,1]],[[64,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,25:1,33:1,35:1,38:1}],267:[[[[29,1],[65,2]],[[65,2]],[[66,2],[0,2]]],{6:1,7:1,9:1,11:1,12:1,19:1,25:1,29:1,33:1,35:1,38:1}],268:[[[[67,1],[68,1],[69,1],[70,1],[71,1],[72,1],[73,1],[74,1],[75,1],[76,1],[77,1],[78,1],[79,1]],[[0,1]]],{67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:1,75:1,76:1,77:1,78:1,79:1}],269:[[[[39,1]],[[0,1]]],{39:1}],270:[[[[13,1]],[[25,2]],[[48,3],[35,4]],[[80,5]],[[61,6],[81,7]],[[0,5]],[[48,3]],[[61,6]]],{13:1}],271:[[[[10,1],[34,2]],[[34,2]],[[82,3]],[[83,4]],[[84,5]],[[85,6],[0,5]],[[0,6]]],{10:1,34:1}],272:[[[[37,1]],[[86,2]],[[85,3],[0,2]],[[0,3]]],{37:1}],273:[[[[87,1],[54,1]],[[0,1]]],{10:1,34:1,37:1}],274:[[[[88,1],[89,1],[8,2],[90,1],[88,1],[83,1],[91,1],[92,3],[93,1],[94,1]],[[0,1]],[[83,1]],[[8,1],[0,3]]],{8:1,83:1,88:1,89:1,90:1,91:1,92:1,93:1,94:1}],275:[[[[95,1]],[[96,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],276:[[[[97,1],[98,1],[58,1],[99,1],[57,1],[100,1],[56,1],[101,1],[102,1]],[[0,1]]],{4:1,10:1,13:1,20:1,21:1,34:1,37:1,41:1,42:1}],277:[[[[40,1]],[[0,1]]],{40:1}],278:[[[[17,1]],[[0,1]]],{17:1}],279:[[[[103,1]],[[56,2],[104,2],[99,2]],[[0,2]]],{41:1}],280:[[[[41,1]],[[105,2]],[[2,4],[35,3]],[[61,5],[81,6]],[[0,4]],[[2,4]],[[61,5]]],{41:1}],281:[[[[106,1]],[[106,1],[0,1]]],{41:1}],282:[[[[27,1]],[[82,2]],[[0,2]]],{27:1}],283:[[[[49,1],[107,2],[53,3]],[[48,4],[54,5],[52,6],[0,1]],[[54,5],[52,6],[0,2]],[[95,7]],[[49,7]],[[0,5]],[[49,8],[107,8],[0,6]],[[54,5],[52,9],[0,7]],[[52,6],[0,8]],[[49,10],[53,11],[0,9]],[[48,12]],[[95,13]],[[49,13]],[[52,9],[0,13]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,53:1}],284:[[[[105,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],{25:1}],285:[[[[109,1]],[[52,0],[0,1]]],{25:1}],286:[[[[25,1]],[[110,0],[0,1]]],{25:1}],287:[[[[25,1]],[[0,1]]],{25:1}],288:[[[[111,1]],[[2,1],[112,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],289:[[[[113,1]],[[49,2],[0,1]],[[108,3],[52,3],[0,2]],[[49,4]],[[0,4]]],{113:1}],290:[[[[114,1]],[[115,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],291:[[[[116,1]],[[117,2],[50,3],[118,4],[0,1]],[[111,4],[62,4]],[[116,5],[62,5]],[[0,4]],[[50,3],[0,5]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],292:[[[[95,1],[107,1]],[[52,2],[0,1]],[[95,1],[107,1],[0,2]]],{6:1,7:1,9:1,11:1,12:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],293:[[[[119,2],[30,1],[22,1],[43,1]],[[120,2]],[[0,2]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],294:[[[[2,0],[112,1],[121,0]],[[0,1]]],{2:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1,112:1}],295:[[[[122,1],[123,1],[124,1],[125,1],[126,1]],[[0,1]]],{5:1,23:1,31:1,39:1,40:1}],296:[[[[34,1]],[[82,2]],[[83,3]],[[111,4]],[[48,5]],[[80,6]],[[127,7],[0,6]],[[48,8]],[[80,9]],[[0,9]]],{34:1}],297:[[[[4,1]],[[25,2]],[[128,3]],[[48,4],[129,5]],[[80,6]],[[49,7]],[[0,6]],[[48,4]]],{4:1}],298:[[[[26,1]],[[25,2]],[[52,1],[0,2]]],{26:1}],299:[[[[37,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[130,1],[0,4]],[[48,6]],[[80,7]],[[0,7]]],{37:1}],300:[[[[25,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],{25:1}],301:[[[[131,1]],[[52,2],[0,1]],[[131,1],[0,2]]],{25:1}],302:[[[[36,1]],[[105,2],[19,3],[110,3]],[[32,4]],[[105,2],[19,3],[32,4],[110,3]],[[132,5],[15,5],[35,6]],[[0,5]],[[132,7]],[[61,5]]],{36:1}],303:[[[[32,1]],[[133,2]],[[0,2]]],{32:1}],304:[[[[134,1],[135,1]],[[0,1]]],{32:1,36:1}],305:[[[[14,1]],[[48,2],[136,3]],[[49,4]],[[48,2]],[[0,4]]],{14:1}],306:[[[[14,1]],[[48,2],[136,3]],[[86,4]],[[48,2]],[[0,4]]],{14:1}],307:[[[[18,1]],[[25,2]],[[52,1],[0,2]]],{18:1}],308:[[[[8,1],[137,2]],[[46,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],309:[[[[138,1]],[[139,0],[0,1]]],{6:1,7:1,8:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],310:[[[[35,1]],[[61,2],[140,3]],[[0,2]],[[61,2]]],{35:1}],311:[[[[28,1]],[[0,1]]],{28:1}],312:[[[[141,1]],[[53,2],[0,1]],[[120,3]],[[0,3]]],{6:1,7:1,9:1,11:1,12:1,19:1,25:1,29:1,33:1,35:1,38:1}],313:[[[[16,1]],[[49,2],[142,3],[0,1]],[[52,4],[0,2]],[[49,5]],[[49,2],[0,4]],[[52,6],[0,5]],[[49,7]],[[52,8],[0,7]],[[49,7],[0,8]]],{16:1}],314:[[[[5,1]],[[49,2],[0,1]],[[36,3],[52,3],[0,2]],[[49,4]],[[52,5],[0,4]],[[49,6]],[[0,6]]],{5:1}],315:[[[[23,1]],[[111,2],[0,1]],[[0,2]]],{23:1}],316:[[[[143,1]],[[144,0],[142,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],317:[[[[145,1]],[[2,2],[146,3]],[[0,2]],[[145,1],[2,2]]],{5:1,6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,16:1,17:1,18:1,19:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,35:1,36:1,38:1,39:1,40:1,43:1}],318:[[[[48,1]],[[49,2],[0,1]],[[0,2]]],{48:1}],319:[[[[147,1],[148,1],[149,1],[150,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1]],[[0,1]]],{5:1,6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,16:1,17:1,18:1,19:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,35:1,36:1,38:1,39:1,40:1,43:1}],320:[[[[15,1]],[[95,2]],[[0,2]]],{15:1}],321:[[[[1,1],[3,1]],[[0,1]]],{4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1}],322:[[[[49,1],[48,2]],[[48,2],[0,1]],[[49,3],[157,4],[0,2]],[[157,4],[0,3]],[[0,4]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,48:1}],323:[[[[158,1]],[[52,2],[0,1]],[[158,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1,48:1}],324:[[[[1,1],[2,2]],[[0,1]],[[159,3]],[[121,4]],[[160,1],[121,4]]],{2:1,5:1,6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,16:1,17:1,18:1,19:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,35:1,36:1,38:1,39:1,40:1,43:1}],325:[[[[120,1]],[[161,0],[15,0],[162,0],[41,0],[163,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],326:[[[[84,1],[164,2]],[[37,3],[0,1]],[[0,2]],[[84,4]],[[127,5]],[[49,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],327:[[[[165,1],[84,1]],[[0,1]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],328:[[[[49,1]],[[52,2],[0,1]],[[49,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],329:[[[[49,1],[107,1]],[[54,2],[52,3],[0,1]],[[0,2]],[[49,4],[107,4],[0,3]],[[52,3],[0,4]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],330:[[[[49,1],[107,1]],[[52,2],[0,1]],[[49,1],[107,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,15:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],331:[[[[25,1]],[[48,2],[0,1]],[[49,3]],[[0,3]]],{25:1}],332:[[[[35,1],[110,2],[38,3]],[[61,4],[81,5]],[[25,4]],[[166,6]],[[0,4]],[[61,4]],[[64,4]]],{35:1,38:1,110:1}],333:[[[[20,1]],[[48,2]],[[80,3]],[[167,4],[168,5]],[[48,6]],[[48,7]],[[80,8]],[[80,9]],[[167,4],[127,10],[168,5],[0,8]],[[0,9]],[[48,11]],[[80,12]],[[168,5],[0,12]]],{20:1}],334:[[[[15,1],[169,2],[53,3]],[[169,4],[52,5],[0,1]],[[50,6],[52,7],[0,2]],[[169,8]],[[52,5],[0,4]],[[169,9],[53,3],[0,5]],[[49,10]],[[15,11],[169,2],[53,3],[0,7]],[[52,12],[0,8]],[[50,13],[52,5],[0,9]],[[52,7],[0,10]],[[169,14],[52,15],[0,11]],[[0,12]],[[49,4]],[[52,15],[0,14]],[[169,16],[53,3],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],{15:1,25:1,53:1}],335:[[[[15,1],[53,2],[170,3]],[[170,5],[52,4],[0,1]],[[170,6]],[[50,7],[52,8],[0,3]],[[53,2],[170,9],[0,4]],[[52,4],[0,5]],[[52,10],[0,6]],[[49,11]],[[15,12],[53,2],[170,3],[0,8]],[[50,13],[52,4],[0,9]],[[0,10]],[[52,8],[0,11]],[[52,15],[170,14],[0,12]],[[49,5]],[[52,15],[0,14]],[[53,2],[170,16],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],{15:1,25:1,53:1}],336:[[[[25,1]],[[0,1]]],{25:1}],337:[[[[21,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[0,4]],[[48,6]],[[80,7]],[[0,7]]],{21:1}],338:[[[[49,1]],[[108,2],[0,1]],[[95,3]],[[0,3]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],339:[[[[42,1]],[[171,2]],[[48,3],[52,1]],[[80,4]],[[0,4]]],{42:1}],340:[[[[172,1]],[[173,0],[0,1]]],{6:1,7:1,9:1,11:1,12:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,38:1,43:1}],341:[[[[111,2],[36,1]],[[49,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,12:1,14:1,19:1,22:1,25:1,29:1,30:1,33:1,35:1,36:1,38:1,43:1}],342:[[[[31,1]],[[174,2],[0,1]],[[0,2]]],{31:1}],343:[[[[62,1]],[[0,1]]],{31:1}]},states:[[[[1,1],[2,1],[3,2]],[[0,1]],[[2,1]]],[[[44,1]],[[45,0],[0,1]]],[[[46,1]],[[47,0],[0,1]]],[[[48,1]],[[49,2]],[[50,3],[0,2]],[[49,4]],[[0,4]]],[[[51,1]],[[52,2],[0,1]],[[51,1],[0,2]]],[[[49,1],[15,2],[53,2]],[[50,2],[54,3],[0,1]],[[49,3]],[[0,3]]],[[[55,1]],[[30,0],[43,0],[0,1]]],[[[24,1]],[[49,2]],[[52,3],[0,2]],[[49,4]],[[0,4]]],[[[10,1]],[[56,2]],[[0,2]]],[[[10,1]],[[57,2],[56,2],[58,2]],[[0,2]]],[[[6,1],[25,1],[33,1],[9,1],[11,1],[12,2],[35,3],[38,4],[19,1],[7,5]],[[0,1]],[[59,1],[60,6]],[[61,1],[62,7],[63,7]],[[64,1],[63,8]],[[7,5],[0,5]],[[59,1]],[[61,1]],[[64,1]]],[[[29,1],[65,2]],[[65,2]],[[66,2],[0,2]]],[[[67,1],[68,1],[69,1],[70,1],[71,1],[72,1],[73,1],[74,1],[75,1],[76,1],[77,1],[78,1],[79,1]],[[0,1]]],[[[39,1]],[[0,1]]],[[[13,1]],[[25,2]],[[48,3],[35,4]],[[80,5]],[[61,6],[81,7]],[[0,5]],[[48,3]],[[61,6]]],[[[10,1],[34,2]],[[34,2]],[[82,3]],[[83,4]],[[84,5]],[[85,6],[0,5]],[[0,6]]],[[[37,1]],[[86,2]],[[85,3],[0,2]],[[0,3]]],[[[87,1],[54,1]],[[0,1]]],[[[88,1],[89,1],[8,2],[90,1],[88,1],[83,1],[91,1],[92,3],[93,1],[94,1]],[[0,1]],[[83,1]],[[8,1],[0,3]]],[[[95,1]],[[96,0],[0,1]]],[[[97,1],[98,1],[58,1],[99,1],[57,1],[100,1],[56,1],[101,1],[102,1]],[[0,1]]],[[[40,1]],[[0,1]]],[[[17,1]],[[0,1]]],[[[103,1]],[[56,2],[104,2],[99,2]],[[0,2]]],[[[41,1]],[[105,2]],[[2,4],[35,3]],[[61,5],[81,6]],[[0,4]],[[2,4]],[[61,5]]],[[[106,1]],[[106,1],[0,1]]],[[[27,1]],[[82,2]],[[0,2]]],[[[49,1],[107,2],[53,3]],[[48,4],[54,5],[52,6],[0,1]],[[54,5],[52,6],[0,2]],[[95,7]],[[49,7]],[[0,5]],[[49,8],[107,8],[0,6]],[[54,5],[52,9],[0,7]],[[52,6],[0,8]],[[49,10],[53,11],[0,9]],[[48,12]],[[95,13]],[[49,13]],[[52,9],[0,13]]],[[[105,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],[[[109,1]],[[52,0],[0,1]]],[[[25,1]],[[110,0],[0,1]]],[[[25,1]],[[0,1]]],[[[111,1]],[[2,1],[112,2]],[[0,2]]],[[[113,1]],[[49,2],[0,1]],[[108,3],[52,3],[0,2]],[[49,4]],[[0,4]]],[[[114,1]],[[115,0],[0,1]]],[[[116,1]],[[117,2],[50,3],[118,4],[0,1]],[[111,4],[62,4]],[[116,5],[62,5]],[[0,4]],[[50,3],[0,5]]],[[[95,1],[107,1]],[[52,2],[0,1]],[[95,1],[107,1],[0,2]]],[[[119,2],[30,1],[22,1],[43,1]],[[120,2]],[[0,2]]],[[[2,0],[112,1],[121,0]],[[0,1]]],[[[122,1],[123,1],[124,1],[125,1],[126,1]],[[0,1]]],[[[34,1]],[[82,2]],[[83,3]],[[111,4]],[[48,5]],[[80,6]],[[127,7],[0,6]],[[48,8]],[[80,9]],[[0,9]]],[[[4,1]],[[25,2]],[[128,3]],[[48,4],[129,5]],[[80,6]],[[49,7]],[[0,6]],[[48,4]]],[[[26,1]],[[25,2]],[[52,1],[0,2]]],[[[37,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[130,1],[0,4]],[[48,6]],[[80,7]],[[0,7]]],[[[25,1]],[[108,2],[0,1]],[[25,3]],[[0,3]]],[[[131,1]],[[52,2],[0,1]],[[131,1],[0,2]]],[[[36,1]],[[105,2],[19,3],[110,3]],[[32,4]],[[105,2],[19,3],[32,4],[110,3]],[[132,5],[15,5],[35,6]],[[0,5]],[[132,7]],[[61,5]]],[[[32,1]],[[133,2]],[[0,2]]],[[[134,1],[135,1]],[[0,1]]],[[[14,1]],[[48,2],[136,3]],[[49,4]],[[48,2]],[[0,4]]],[[[14,1]],[[48,2],[136,3]],[[86,4]],[[48,2]],[[0,4]]],[[[18,1]],[[25,2]],[[52,1],[0,2]]],[[[8,1],[137,2]],[[46,2]],[[0,2]]],[[[138,1]],[[139,0],[0,1]]],[[[35,1]],[[61,2],[140,3]],[[0,2]],[[61,2]]],[[[28,1]],[[0,1]]],[[[141,1]],[[53,2],[0,1]],[[120,3]],[[0,3]]],[[[16,1]],[[49,2],[142,3],[0,1]],[[52,4],[0,2]],[[49,5]],[[49,2],[0,4]],[[52,6],[0,5]],[[49,7]],[[52,8],[0,7]],[[49,7],[0,8]]],[[[5,1]],[[49,2],[0,1]],[[36,3],[52,3],[0,2]],[[49,4]],[[52,5],[0,4]],[[49,6]],[[0,6]]],[[[23,1]],[[111,2],[0,1]],[[0,2]]],[[[143,1]],[[144,0],[142,0],[0,1]]],[[[145,1]],[[2,2],[146,3]],[[0,2]],[[145,1],[2,2]]],[[[48,1]],[[49,2],[0,1]],[[0,2]]],[[[147,1],[148,1],[149,1],[150,1],[151,1],[152,1],[153,1],[154,1],[155,1],[156,1]],[[0,1]]],[[[15,1]],[[95,2]],[[0,2]]],[[[1,1],[3,1]],[[0,1]]],[[[49,1],[48,2]],[[48,2],[0,1]],[[49,3],[157,4],[0,2]],[[157,4],[0,3]],[[0,4]]],[[[158,1]],[[52,2],[0,1]],[[158,1],[0,2]]],[[[1,1],[2,2]],[[0,1]],[[159,3]],[[121,4]],[[160,1],[121,4]]],[[[120,1]],[[161,0],[15,0],[162,0],[41,0],[163,0],[0,1]]],[[[84,1],[164,2]],[[37,3],[0,1]],[[0,2]],[[84,4]],[[127,5]],[[49,2]]],[[[165,1],[84,1]],[[0,1]]],[[[49,1]],[[52,2],[0,1]],[[49,1],[0,2]]],[[[49,1],[107,1]],[[54,2],[52,3],[0,1]],[[0,2]],[[49,4],[107,4],[0,3]],[[52,3],[0,4]]],[[[49,1],[107,1]],[[52,2],[0,1]],[[49,1],[107,1],[0,2]]],[[[25,1]],[[48,2],[0,1]],[[49,3]],[[0,3]]],[[[35,1],[110,2],[38,3]],[[61,4],[81,5]],[[25,4]],[[166,6]],[[0,4]],[[61,4]],[[64,4]]],[[[20,1]],[[48,2]],[[80,3]],[[167,4],[168,5]],[[48,6]],[[48,7]],[[80,8]],[[80,9]],[[167,4],[127,10],[168,5],[0,8]],[[0,9]],[[48,11]],[[80,12]],[[168,5],[0,12]]],[[[15,1],[169,2],[53,3]],[[169,4],[52,5],[0,1]],[[50,6],[52,7],[0,2]],[[169,8]],[[52,5],[0,4]],[[169,9],[53,3],[0,5]],[[49,10]],[[15,11],[169,2],[53,3],[0,7]],[[52,12],[0,8]],[[50,13],[52,5],[0,9]],[[52,7],[0,10]],[[169,14],[52,15],[0,11]],[[0,12]],[[49,4]],[[52,15],[0,14]],[[169,16],[53,3],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],[[[15,1],[53,2],[170,3]],[[170,5],[52,4],[0,1]],[[170,6]],[[50,7],[52,8],[0,3]],[[53,2],[170,9],[0,4]],[[52,4],[0,5]],[[52,10],[0,6]],[[49,11]],[[15,12],[53,2],[170,3],[0,8]],[[50,13],[52,4],[0,9]],[[0,10]],[[52,8],[0,11]],[[52,15],[170,14],[0,12]],[[49,5]],[[52,15],[0,14]],[[53,2],[170,16],[0,15]],[[50,17],[52,15],[0,16]],[[49,14]]],[[[25,1]],[[0,1]]],[[[21,1]],[[49,2]],[[48,3]],[[80,4]],[[127,5],[0,4]],[[48,6]],[[80,7]],[[0,7]]],[[[49,1]],[[108,2],[0,1]],[[95,3]],[[0,3]]],[[[42,1]],[[171,2]],[[48,3],[52,1]],[[80,4]],[[0,4]]],[[[172,1]],[[173,0],[0,1]]],[[[111,2],[36,1]],[[49,2]],[[0,2]]],[[[31,1]],[[174,2],[0,1]],[[0,2]]],[[[62,1]],[[0,1]]]],labels:[[0,"EMPTY"],[317,null],[4,null],[276,null],[1,"def"],[1,"raise"],[1,"True"],[3,null],[1,"not"],[1,"None"],[55,null],[2,null],[25,null],[1,"class"],[1,"lambda"],[16,null],[1,"print"],[1,"debugger"],[1,"nonlocal"],[52,null],[1,"try"],[1,"while"],[31,null],[1,"return"],[1,"assert"],[1,null],[1,"global"],[1,"del"],[1,"pass"],[54,null],[15,null],[1,"yield"],[1,"import"],[1,"False"],[1,"for"],[7,null],[1,"from"],[1,"if"],[9,null],[1,"break"],[1,"continue"],[49,null],[1,"with"],[14,null],[316,null],[19,null],[308,null],[1,"and"],[11,null],[326,null],[22,null],[261,null],[12,null],[35,null],[271,null],[325,null],[297,null],[339,null],[296,null],[26,null],[283,null],[8,null],[342,null],[329,null],[10,null],[266,null],[332,null],[45,null],[38,null],[40,null],[50,null],[46,null],[41,null],[42,null],[36,null],[43,null],[48,null],[44,null],[37,null],[39,null],[324,null],[260,null],[292,null],[1,"in"],[309,null],[273,null],[327,null],[272,null],[28,null],[21,null],[27,null],[29,null],[1,"is"],[30,null],[20,null],[290,null],[274,null],[333,null],[299,null],[270,null],[337,null],[279,null],[265,null],[281,null],[264,null],[286,null],[280,null],[320,null],[1,"as"],[284,null],[23,null],[328,null],[0,null],[1,"except"],[340,null],[18,null],[330,null],[268,null],[259,null],[312,null],[293,null],[321,null],[269,null],[277,null],[314,null],[315,null],[343,null],[1,"else"],[310,null],[51,null],[1,"elif"],[300,null],[301,null],[285,null],[303,null],[302,null],[335,null],[275,null],[258,null],[1,"or"],[334,null],[267,null],[34,null],[262,null],[33,null],[319,null],[13,null],[295,null],[263,null],[291,null],[311,null],[307,null],[313,null],[282,null],[298,null],[304,null],[278,null],[318,null],[322,null],[5,null],[6,null],[47,null],[17,null],[24,null],[305,null],[306,null],[323,null],[289,null],[1,"finally"],[331,null],[336,null],[338,null],[257,null],[32,null],[341,null]],keywords:{False:33,None:9,True:6,and:47,as:108,assert:24,break:39,class:13,continue:40,debugger:17,def:4,del:27,elif:130,else:127,except:113,finally:168,for:34,from:36,global:26,if:37,import:32,in:83,is:92,lambda:14,nonlocal:18,not:8,or:139,pass:28,print:16,raise:5,return:23,try:20,while:21,with:42,yield:31},tokens:{0:112,1:25,2:11,3:7,4:2,5:159,6:160,7:35,8:61,9:38,10:64,11:48,12:52,13:146,14:43,15:30,16:15,17:162,18:115,19:45,20:94,21:89,22:50,23:110,24:163,25:12,26:59,27:90,28:88,29:91,30:93,31:22,32:173,33:144,34:142,35:53,36:74,37:78,38:68,39:79,40:69,41:72,42:73,43:75,44:77,45:67,46:71,47:161,48:76,49:41,50:70,51:129,52:19,54:29,55:10},start:256}},function(t,e){function n(t,e){return this.filename=t,this.grammar=e,this.p_flags=0,this}n.FUTURE_PRINT_FUNCTION="print_function",n.FUTURE_UNICODE_LITERALS="unicode_literals",n.FUTURE_DIVISION="division",n.FUTURE_ABSOLUTE_IMPORT="absolute_import",n.FUTURE_WITH_STATEMENT="with_statement",n.FUTURE_NESTED_SCOPES="nested_scopes",n.FUTURE_GENERATORS="generators",n.CO_FUTURE_PRINT_FUNCTION=65536,n.CO_FUTURE_UNICODE_LITERALS=131072,n.CO_FUTURE_DIVISON=8192,n.CO_FUTURE_ABSOLUTE_IMPORT=16384,n.CO_FUTURE_WITH_STATEMENT=32768,n.prototype.setup=function(t){t=t||this.grammar.start,this.stack=[{dfa:this.grammar.dfas[t],state:0,node:{type:t,value:null,context:null,children:[]}}],this.used_names={}},n.prototype.addtoken=function(t,e,n){var i,s=this.classify(t,e,n);t:for(;;){var r=this.stack[this.stack.length-1],o=r.dfa[0],a=o[r.state];for(i=0;ic),this.shift(t,e,u,n),n=u;1===o[n].length&&0===o[n][0][0]&&o[n][0][1]===n;){if(this.pop(),0===this.stack.length)return!0;n=(r=this.stack[this.stack.length-1]).state,o=r.dfa[0]}return!1}if(256<=c&&(l=(l=this.grammar.dfas[c])[1]).hasOwnProperty(s)){this.push(c,this.grammar.dfas[c],u,n);continue t}}e:{for(o=[0,r.state],r=a.length;r--;)if(a[r][0]===o[0]&&a[r][1]===o[1]){a=!0;break e}a=!1}if(!a)throw t=n[0][0],new Sk.builtin.SyntaxError("bad input",this.filename,t,n);if(this.pop(),0===this.stack.length)throw new Sk.builtin.SyntaxError("too much input",this.filename)}},n.prototype.classify=function(t,e,i){if(t===Sk.token.tokens.T_NAME){this.used_names[e]=!0;var s=this.grammar.keywords.hasOwnProperty(e)&&this.grammar.keywords[e];if("print"===e&&(this.p_flags&n.CO_FUTURE_PRINT_FUNCTION||!0===Sk.__future__.print_function)&&(s=!1),s)return s}if(!(s=this.grammar.tokens.hasOwnProperty(t)&&this.grammar.tokens[t])){e="#"+t;for(let n in Sk.token.tokens)if(Sk.token.tokens[n]==t){e=n;break}throw new Sk.builtin.SyntaxError("bad token "+e,this.filename,i[0][0],i)}return s},n.prototype.shift=function(t,e,n,i){var s=this.stack[this.stack.length-1].dfa,r=this.stack[this.stack.length-1].node;r.children.push({type:t,value:e,lineno:i[0][0],col_offset:i[0][1],children:null}),this.stack[this.stack.length-1]={dfa:s,state:n,node:r}},n.prototype.push=function(t,e,n,i){t={type:t,value:null,lineno:i[0][0],col_offset:i[0][1],children:[]},this.stack[this.stack.length-1]={dfa:this.stack[this.stack.length-1].dfa,state:n,node:this.stack[this.stack.length-1].node},this.stack.push({dfa:e,state:0,node:t})},n.prototype.pop=function(){var t=this.stack.pop().node;if(t)if(0!==this.stack.length){this.stack[this.stack.length-1].node.children.push(t)}else this.rootnode=t,this.rootnode.used_names=this.used_names},Sk.parse=function(t,e){var i,s=Sk.token.tokens.T_COMMENT,r=Sk.token.tokens.T_NL,o=Sk.token.tokens.T_OP,a=Sk.token.tokens.T_ENDMARKER,l=Sk.token.tokens.T_ENCODING,u=!1,c=function(t,e){return void 0===e&&(e="file_input"),t=new n(t,Sk.ParseTables),"file_input"===e?t.setup(Sk.ParseTables.sym.file_input):Sk.asserts.fail("todo;"),t}(t);if(Sk._tokenize(t,(i=e.split("\n").reverse().map((function(t){return t+"\n"})),function(){if(0===i.length)throw new Sk.builtin.Exception("EOF");return i.pop()}),"utf-8",(function(t){var e=null;t.type!==s&&t.type!==r&&t.type!==l&&(t.type===o&&(e=Sk.OpMap[t.string]),c.addtoken(e||t.type,t.string,[t.start,t.end,t.line]),t.type===a&&(u=!0))})),!u)throw new Sk.builtin.SyntaxError("incomplete input",this.filename);return{cst:c.rootnode,flags:c.p_flags}},Sk.parseTreeDump=function(t,e){var n,i=""+(e=e||"");if(256<=t.type)for(i+=Sk.ParseTables.number2symbol[t.type]+"\n",n=0;n=i(e)||o+2==i(e)&&s(e,o+1).type==V.T_COMMA)throw new Sk.builtin.SyntaxError("named arguments must follow bare *",t.c_filename,e.lineno);(_=s(e,o+1)).type==V.T_COMMA?o=$(t,e,o+=2,u,c):(p=v(t,_),(o+=3)t.c_feature_version)return o(t,l,"Async functions are only supported in Python 3.5 and greater"),null;r(l,B.funcdef);var d=h(s(l,p));if(u(t,0,s(l,p),0))return null;var f=w(t,s(l,p+1));if(!f)return null;if(s(l,p+2).type==V.T_RARROW){if(!(c=F(t,s(l,p+3))))return null;p+=2}if(s(l,p+3).type==V.T_TYPE_COMMENT){if(!(_=V.T_NEW_TYPE_COMMENT(s(l,p+3))))return null;p+=1}var g=m(t,s(l,p+3));if(!g)return null;if(1":return Sk.astnodes.RShift;case"&":return Sk.astnodes.BitAnd;case"^":return Sk.astnodes.BitXor;case"|":return Sk.astnodes.BitOr;case"*":return"*"===e.value.charAt(1)?Sk.astnodes.Pow:Sk.astnodes.Mult;case"@":if(Sk.__future__.python3)return Sk.astnodes.MatMult;default:Sk.asserts.fail("invalid augassign")}}(0,s(e,1)),a,e.lineno,e.col_offset)}if(s(e,1).type===B.annassign){if(!Sk.__future__.python3)throw new Sk.builtin.SyntaxError("Annotated assignment is not supported in Python 2",t.c_filename,e.lineno);n=s(e,0);var l=s(e,1),p=1;for(o=n;1==i(o);)o=s(o,0);switch(0o(r,a,"f-string: expecting '}'");for(Sk.asserts.assert(e<=n);e=e),Sk.asserts.assert("{"==t.charAt(e-1)),Sk.asserts.assert("}"==t.charAt(n)||"!"==t.charAt(n)||":"==t.charAt(n)),t=t.substring(e,n),/^\s*$/.test(t)&&o(i,s,"f-string: empty expression not allowed");try{let e=Sk.parse("","("+t+")");var r=Sk.astFromParse(e.cst,"",e.flags)}catch(t){throw t.traceback&&t.traceback[0]&&((r=t.traceback[0]).lineno=(r.lineno||1)-1+s.lineno,r.filename=i.c_filename),t}return Sk.asserts.assert(1==r.body.length&&r.body[0].constructor===Sk.astnodes.Expr),r.body[0].value}(t,l,e,r,a),"!"==t.charAt(e)&&(++e>=n&&d(),c=t.charAt(e),e++,"s"!=c&&"r"!=c&&"a"!=c&&o(r,a,"f-string: invalid conversion character: expected 's', 'r', or 'a'")),e>=n&&d(),":"==t.charAt(e)&&(++e>=n&&d(),[u,e]=x(t,e,n,i,s+1,r,a)),(e>=n||"}"!=t.charAt(e))&&d(),e++,[new Sk.astnodes.FormattedValue(l,c,u,a.lineno,a.col_offset),e]}function x(t,e,n,i,s,r,o){let a=[],l=t=>{if(-1!==t.indexOf("}")){if(/(^|[^}])}(}})*($|[^}])/.test(t))throw new Sk.builtin.SyntaxError("f-string: single '}' is not allowed",r.c_filename,o.lineno,o.col_offset);t=t.replace(/}}/g,"}")}a.push(new Sk.astnodes.Str(new Sk.builtin.str(t),o.lineno,o.col_offset,r.end_lineno,o.end_col_offset))};for(;ei&&(u=-1,n=i))}if(-1===u){l(t.substring(e,n)),e=n;break}if(u+1=l.length){if("None"===l)return new Sk.astnodes.NameConstant(Sk.builtin.none.none$,e.lineno,e.col_offset);if("True"===l)return new Sk.astnodes.NameConstant(Sk.builtin.bool.true$,e.lineno,e.col_offset);if("False"===l)return new Sk.astnodes.NameConstant(Sk.builtin.bool.false$,e.lineno,e.col_offset)}return t=h(l),new Sk.astnodes.Name(t,Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset);case V.T_STRING:n=[];for(var u=0;u=T&&o(p,_,"Truncated \\xNN escape"),y+=String.fromCharCode(parseInt(b.substr(m+1,2),16)),m+=2):k||"u"!==g?k||"U"!==g?y+="\\"+g:(m+8>=T&&o(p,_,"Truncated \\UXXXXXXXX escape"),y+=String.fromCodePoint(parseInt(b.substr(m+1,8),16)),m+=8):(m+4>=T&&o(p,_,"Truncated \\uXXXX escape"),y+=String.fromCharCode(parseInt(b.substr(m+1,4),16)),m+=4))):k&&127l.charCodeAt(1)&&(l="0o"+l.substring(1)),n=!0,"l"!==u&&"L"!==u||(l=l.slice(0,-1),n=!1),l=(u=Number(l))>Number.MAX_SAFE_INTEGER?n?new Sk.builtin.int_(JSBI.BigInt(l)):new Sk.builtin.lng(JSBI.BigInt(l)):n?new Sk.builtin.int_(u):new Sk.builtin.lng(u)),new t(l,e.lineno,e.col_offset);case V.T_ELLIPSIS:return new Sk.astnodes.Ellipsis(e.lineno,e.col_offset,e.end_lineno,e.end_col_offset);case V.T_LPAR:return(n=s(e,1)).type==V.T_RPAR?new Sk.astnodes.Tuple([],Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset):n.type==B.yield_expr?F(t,n):1==i(n)?M(t,n):s(n,1).type==B.comp_for?d(S(t,n),e):d(M(t,n),e);case V.T_LSQB:return(n=s(e,1)).type==V.T_RSQB?new Sk.astnodes.List([],Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset):(r(n,B.testlist_comp),1==i(n)||s(n,1).type==V.T_COMMA?(t=f(t,n))?new Sk.astnodes.List(t,Sk.astnodes.Load,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset):null:(l=n,Sk.asserts.assert(l.type==B.testlist_comp),d(t=O(t,l,1),e)));case V.T_LBRACE:if((n=s(e,1)).type==V.T_RBRACE)return new Sk.astnodes.Dict(null,null,e.lineno,e.col_offset,e.end_lineno,e.end_col_offset);if(l=s(n,0).type==V.T_DOUBLESTAR,1==i(n)||13-l&&s(n,3-l).type==B.comp_for){if(l)return o(t,e,"dict unpacking cannot be used in dict comprehension"),null;l=n,Sk.asserts.assert(3>11&7,this.__namespaces=n||[]}function i(t,e,n,i,s){this.symFlags={},this.name=e,this.varnames=[],this.children=[],this.blockType=n,this.returnsValue=this.varkeywords=this.varargs=this.generator=this.childHasFree=this.hasFree=this.isNested=!1,this.lineno=s,this.table=t,t.cur&&(t.cur.nested||"function"===t.cur.blockType)&&(this.isNested=!0),i.scopeId=a++,t.stss[i.scopeId]=this,this.symbols={}}function s(t){this.filename=t,this.top=this.cur=null,this.stack=[],this.curClass=this.global=null,this.tmpname=0,this.stss={}}function r(t,e){var n;for(n=0;n>11&7)||2==t}))),this._funcGlobals},i.prototype.get_frees=function(){return Sk.asserts.assert("function"==this.get_type(),"get_frees only valid for function scopes"),this._funcFrees||(this._funcFrees=this._identsMatching((function(t){return 4==(t>>11&7)}))),this._funcFrees},i.prototype.get_methods=function(){var t;if(Sk.asserts.assert("class"==this.get_type(),"get_methods only valid for class scopes"),!this._classMethods){var e=[];for(t=0;t>11&7},s.prototype.getStsForAst=function(t){return Sk.asserts.assert(void 0!==t.scopeId,"ast wasn't added to st?"),t=this.stss[t.scopeId],Sk.asserts.assert(void 0!==t,"unknown sym tab entry"),t},s.prototype.SEQStmt=function(t){var e,n;if(null!==t){Sk.asserts.assert(Sk.isArrayLike(t),"SEQ: nodes isn't array? got "+t.toString());var i=t.length;for(n=0;n","").replace(" ","_"))};var a=Sk.builtin.str.reservedWords_;n.prototype.makeConstant=function(t){var e,n="";for(e=0;e Sk.execLimit) {throw new Sk.builtin.TimeoutError(Sk.timeoutMsg())}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(t=t+"if (!$waking && ($dateNow - Sk.lastYield > Sk.yieldLimit)) {var $susp = $saveSuspension({data: {type: 'Sk.yield'}, resume: function() {}}, '"+this.filename+"',$currLineNo,$currColNo);",t+="$susp.$blk = $blk;$susp.optional = true;return $susp;}$waking = false;",this.u.doesSuspend=!0)),t},n.prototype._jumpfalse=function(t,e){t=this._gr("jfalse","(",t,"===false||!Sk.misceval.isTrue(",t,"))"),o("if(",t,"){/*test failed */$blk=",e,";continue;}")},n.prototype._jumpundef=function(t,e){o("if(",t,"===undefined){$blk=",e,";continue;}")},n.prototype._jumpnotundef=function(t,e){o("if(",t,"!==undefined){$blk=",e,";continue;}")},n.prototype._jumptrue=function(t,e){t=this._gr("jtrue","(",t,"===true||Sk.misceval.isTrue(",t,"))"),o("if(",t,"){/*test passed */$blk=",e,";continue;}")},n.prototype._jump=function(t){null===this.u.blocks[this.u.curblock]._next&&(o("$blk=",t,";"),this.u.blocks[this.u.curblock]._next=t)},n.prototype._checkSuspension=function(t){if(this.u.canSuspend){var e=this.newBlock("function return or resume suspension");this._jump(e),this.setBlock(e),t=t||{lineno:"$currLineNo",col_offset:"$currColNo"},o("if ($ret && $ret.$isSuspension) { return $saveSuspension($ret,'"+this.filename+"',"+t.lineno+","+t.col_offset+"); }"),this.u.doesSuspend=!0,this.u.tempsToSave=this.u.tempsToSave.concat(this.u.localtemps)}else o("if ($ret && $ret.$isSuspension) { $ret = Sk.misceval.retryOptionalSuspensionOrThrow($ret); }")},n.prototype.cunpackstarstoarray=function(t,e){if(!t||0==t.length)return"[]";let n=!1;for(let i of t){if(e&&n)throw new Sk.builtin.SyntaxError("Extended argument unpacking is not permitted in Python 2");i.constructor===Sk.astnodes.Starred&&(n=!0)}if(n){e=this._gr("unpack","[]");for(let n of t)n.constructor!==Sk.astnodes.Starred?o(e,".push(",this.vexpr(n),");"):(o("$ret = Sk.misceval.iterFor(Sk.abstr.iter(",this.vexpr(n.value),"), function(e) { ",e,".push(e); });"),this._checkSuspension());return e}return"["+t.map((t=>this.vexpr(t))).join(",")+"]"},n.prototype.cunpackkwstoarray=function(t,e){var n="undefined";if(t&&0=n.length&&(n=this.vexpr(s),"dict"===t?(t=this.vexpr(r),o(e,".mp$ass_subscript(",t,",",n,");")):"list"===t?o(e,".v.push(",n,");"):"set"===t&&o(e,".v.mp$ass_subscript(",n,", true);"),this._jump(c),this.setBlock(c)),this._jump(u),this.setBlock(p),e},n.prototype.cyield=function(t){if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'yield' outside function",this.filename,t.lineno);var e="Sk.builtin.none.none$";return t.value&&(e=this.vexpr(t.value)),t=this.newBlock("after yield"),o("return [/*resume*/",t,",/*ret*/",e,"];"),this.setBlock(t),"$gen.gi$sentvalue"},n.prototype.cyieldfrom=function(t){if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'yield' outside function",this.filename,t.lineno);var e=this.vexpr(t.value);e=this._gr("iter","Sk.abstr.iter(",e,")"),o("$gen."+e+"=",e,";");var n=this.newBlock("after iter"),i=this.newBlock("after yield from");this._jump(n),this.setBlock(n);var s=this.gensym("retval");o(e,"=$gen.",e,";"),o("var ",s,";"),o("if ($gen.gi$sentvalue === Sk.builtin.none.none$ || "+e+".constructor === Sk.builtin.generator) {"),o("$ret=",e,".tp$iternext(true, $gen.gi$sentvalue);"),o("} else {");var r=this.makeConstant("new Sk.builtin.str('send');");return o("$ret=Sk.misceval.tryCatch("),o("function(){"),o("return Sk.misceval.callsimOrSuspendArray(Sk.abstr.gattr(",e,",",r,"), [$gen.gi$sentvalue]);},"),o("function (e) { "),o("if (e instanceof Sk.builtin.StopIteration) { "),o(e,".gi$ret = e.$value;"),o("return undefined;"),o("} else { throw e; }"),o("}"),o(");"),o("}"),this._checkSuspension(t),o(s,"=$ret;"),o("if(",s,"===undefined) {"),o("$gen.gi$sentvalue=$gen."+e+".gi$ret;"),o("$blk=",i,";continue;"),o("}"),o("return [/*resume*/",n,",/*ret*/",s,"];"),this.setBlock(i),"$gen.gi$sentvalue"},n.prototype.ccompare=function(t){var e;Sk.asserts.assert(t.ops.length===t.comparators.length);var n=this.vexpr(t.left),i=t.ops.length,s=this.newBlock("done"),r=this._gr("compareres","null");for(e=0;ethis.u.lineno&&(this.u.lineno=t.lineno,this.u.linenoSet=!1),t.constructor){case Sk.astnodes.BoolOp:return this.cboolop(t);case Sk.astnodes.BinOp:return this._gr("binop","Sk.abstr.numberBinOp(",this.vexpr(t.left),",",this.vexpr(t.right),",'",t.op.prototype._astname,"')");case Sk.astnodes.UnaryOp:return this._gr("unaryop","Sk.abstr.numberUnaryOp(",this.vexpr(t.operand),",'",t.op.prototype._astname,"')");case Sk.astnodes.Lambda:return this.clambda(t);case Sk.astnodes.IfExp:return this.cifexp(t);case Sk.astnodes.Dict:return this.cdict(t);case Sk.astnodes.ListComp:return this.clistcomp(t);case Sk.astnodes.DictComp:return this.cdictcomp(t);case Sk.astnodes.SetComp:return this.csetcomp(t);case Sk.astnodes.GeneratorExp:return this.cgenexp(t);case Sk.astnodes.Yield:return this.cyield(t);case Sk.astnodes.YieldFrom:return this.cyieldfrom(t);case Sk.astnodes.Compare:return this.ccompare(t);case Sk.astnodes.Call:return e=this.ccall(t),this.annotateSource(t),e;case Sk.astnodes.Num:if("number"==typeof t.n)return t.n;if(t.n instanceof Sk.builtin.lng)return this.makeConstant("new Sk.builtin.lng('"+t.n.v.toString()+"')");if(t.n instanceof Sk.builtin.int_)return"number"==typeof t.n.v?this.makeConstant("new Sk.builtin.int_("+t.n.v+")"):this.makeConstant("new Sk.builtin.int_('"+t.n.v.toString()+"')");if(t.n instanceof Sk.builtin.float_)return t=0===t.n.v&&-1/0==1/t.n.v?"-0":t.n.v,this.makeConstant("new Sk.builtin.float_("+t+")");if(t.n instanceof Sk.builtin.complex)return this.makeConstant("new Sk.builtin.complex("+(0===t.n.real&&-1/0==1/t.n.real?"-0":t.n.real)+", "+(0===t.n.imag&&-1/0==1/t.n.imag?"-0":t.n.imag)+")");Sk.asserts.fail("unhandled Num type");case Sk.astnodes.Bytes:if(Sk.__future__.python3){for(e=[],t=t.s.$jsstr(),n=0;ni||127<=i&&256>i?n+"\\x"+("0"+i.toString(16)).substr(-2):256<=i?n+"\\u"+("000"+i.toString(16)).substr(-4):n+t.charAt(s);return t=n+'"',e.call(this,"new Sk.builtin.str(",t,")");case Sk.astnodes.Attribute:switch(t.ctx!==Sk.astnodes.AugLoad&&t.ctx!==Sk.astnodes.AugStore&&(s=this.vexpr(t.value)),i=(i=t.attr.$r().v).substring(1,i.length-1),i=r(this.u.private_,new Sk.builtin.str(i)).v,i=this.makeConstant("new Sk.builtin.str('"+i+"')"),t.ctx){case Sk.astnodes.AugLoad:return o("$ret = ",n,".tp$getattr(",i,", true);"),this._checkSuspension(t),o("\nif ($ret === undefined) {"),o("\nthrow new Sk.builtin.AttributeError(",n,'.sk$attrError() + " has no attribute \'" + ',i,'.$jsstr() + "\'");'),o("\n};"),this._gr("lattr","$ret");case Sk.astnodes.Load:return o("$ret = ",s,".tp$getattr(",i,", true);"),this._checkSuspension(t),o("\nif ($ret === undefined) {"),o("\nthrow new Sk.builtin.AttributeError(",s,'.sk$attrError() + " has no attribute \'" + ',i,'.$jsstr() + "\'");'),o("\n};"),this._gr("lattr","$ret");case Sk.astnodes.AugStore:o("$ret = undefined;"),o("if(",e,"!==undefined){"),o("$ret = ",n,".tp$setattr(",i,",",e,", true);"),o("}"),this._checkSuspension(t);break;case Sk.astnodes.Store:o("$ret = ",s,".tp$setattr(",i,",",e,", true);"),this._checkSuspension(t);break;case Sk.astnodes.Del:o("$ret = ",s,".tp$setattr(",i,", undefined, true);"),this._checkSuspension(t);break;default:Sk.asserts.fail("invalid attribute expression")}break;case Sk.astnodes.Subscript:switch(t.ctx){case Sk.astnodes.AugLoad:return o("$ret = Sk.abstr.objectGetItem(",n,",",i,", true);"),this._checkSuspension(t),this._gr("gitem","$ret");case Sk.astnodes.Load:case Sk.astnodes.Store:case Sk.astnodes.Del:return this.vslice(t.slice,t.ctx,this.vexpr(t.value),e);case Sk.astnodes.AugStore:o("$ret=undefined;"),o("if(",e,"!==undefined){"),o("$ret=Sk.abstr.objectSetItem(",n,",",i,",",e,", true)"),o("}"),this._checkSuspension(t);break;default:Sk.asserts.fail("invalid subscript expression")}break;case Sk.astnodes.Name:return this.nameop(t.id,t.ctx,e);case Sk.astnodes.NameConstant:if(t.ctx===Sk.astnodes.Store||t.ctx===Sk.astnodes.AugStore||t.ctx===Sk.astnodes.Del)throw new Sk.builtin.SyntaxError("can not assign to a constant name");switch(t.value){case Sk.builtin.none.none$:return"Sk.builtin.none.none$";case Sk.builtin.bool.true$:return"Sk.builtin.bool.true$";case Sk.builtin.bool.false$:return"Sk.builtin.bool.false$";default:Sk.asserts.fail("invalid named constant")}break;case Sk.astnodes.List:return this.ctuplelistorset(t,e,"list");case Sk.astnodes.Tuple:return this.ctuplelistorset(t,e,"tuple");case Sk.astnodes.Set:return this.ctuplelistorset(t,e,"set");case Sk.astnodes.Starred:if(t.ctx===Sk.astnodes.Store)throw new Sk.builtin.SyntaxError("starred assignment target must be in a list or tuple",this.filename,t.lineno);throw new Sk.builtin.SyntaxError("can't use starred expression here",this.filename,t.lineno);case Sk.astnodes.JoinedStr:return this.cjoinedstr(t);case Sk.astnodes.FormattedValue:return this.cformattedvalue(t);case Sk.astnodes.Ellipsis:return this.makeConstant("Sk.builtin.Ellipsis");default:Sk.asserts.fail("unhandled case "+t.constructor.name+" vexpr")}},n.prototype.vseqexpr=function(t,e){var n;Sk.asserts.assert(void 0===e||t.length===e.length);var i=[];for(n=0;n",this.u.blocks[e]._next=null,e},n.prototype.setBlock=function(t){Sk.asserts.assert(0<=t&&t0) { $err=err; $blk=$exc.pop(); } else { throw err; } }};",o+="var $saveSuspension = function($child, $filename, $lineno, $colno) {var susp = new Sk.misceval.Suspension(); susp.child=$child;susp.resume=function(){"+t.scopename+".$wakingSuspension=susp; return "+t.scopename+"("+(t.ste.generator?"$gen":"")+"); };susp.data=susp.child.data;susp.$blk=$blk;susp.$loc=$loc;susp.$gbl=$gbl;susp.$exc=$exc;susp.$err=$err;susp.$postfinally=$postfinally;susp.$filename=$filename;susp.$lineno=$lineno;susp.$colno=$colno;susp.optional=susp.child.optional;"+(r?"susp.$cell=$cell;":""),s={},e=0;et?this.vexpr(t):"undefined"))),i&&i.vararg&&(d=i.vararg),i&&i.kwarg&&(f=i.kwarg),!Sk.__future__.python3&&i&&i.kwonlyargs&&0!=i.kwonlyargs.length)throw new Sk.builtin.SyntaxError("Keyword-only arguments are not supported in Python 2");var m=this.enterScope(e,t,t.lineno,this.canSuspend),g=this.u.ste.generator,b=this.u.ste.hasFree,S=this.u.ste.childHasFree,k=this.newBlock("codeobj entry");this.u.prefixCode="var "+m+"=(function "+this.niceName(e.v)+"$(";var T=[];if(g){if(f)throw new Sk.builtin.SyntaxError(e.v+"(): keyword arguments in generators not supported",this.filename,t.lineno);if(d)throw new Sk.builtin.SyntaxError(e.v+"(): variable number of arguments in generators not supported",this.filename,t.lineno);T.push("$gen")}else{for(f&&(T.push("$kwa"),this.u.tempsToSave.push("$kwa")),u=0;i&&u0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }} }});",a.call(this,m),i){for(let t of i.args)c.push(t.arg.v);for(let t of i.kwonlyargs||[])c.push(t.arg.v);this.u.argnames=c}if(this.exitScope(),0"),null,t.args,(function(e){e=this.vexpr(t.body),o("return ",e,";")}))},n.prototype.cifexp=function(t){var e=this.newBlock("next of ifexp"),n=this.newBlock("end of ifexp"),i=this._gr("res","null"),s=this.vexpr(t.test);return this._jumpfalse(s,e),o(i,"=",this.vexpr(t.body),";"),this._jump(n),this.setBlock(e),o(i,"=",this.vexpr(t.orelse),";"),this._jump(n),this.setBlock(n),i},n.prototype.cgenexpgen=function(t,e,n){var i=this.newBlock("start for "+e),s=this.newBlock("skip for "+e);this.newBlock("if cleanup for "+e);var r=this.newBlock("end for "+e),a=t[e];if(0===e)var l="$loc.$iter0";else{var u=this.vexpr(a.iter);l="$loc."+this.gensym("iter"),o(l,"=","Sk.abstr.iter(",u,");")}this._jump(i),this.setBlock(i),this.annotateSource(n),o("$ret = Sk.abstr.iternext(",l,this.u.canSuspend?", true":", false",");"),this._checkSuspension(n),u=this._gr("next","$ret"),this._jumpundef(u,r),this.vexpr(a.target,u);var c=a.ifs?a.ifs.length:0;for(l=0;l=t.length&&(this.annotateSource(n),t=this.vexpr(n),o("return [",s,"/*resume*/,",t,"/*ret*/];"),this.setBlock(s)),this._jump(i),this.setBlock(r),1===e&&o("return Sk.builtin.none.none$;")},n.prototype.cgenexp=function(t){var e=this.buildcodeobj(t,new Sk.builtin.str(""),null,null,(function(e){this.cgenexpgen(t.generators,0,t.elt)}));return e=this._gr("gener","Sk.misceval.callsimArray(",e,");"),o(e,".gi$locals.$iter0=Sk.abstr.iter(",this.vexpr(t.generators[0].iter),");"),e},n.prototype.cclass=function(t){Sk.asserts.assert(t instanceof Sk.astnodes.ClassDef);var e=this.vseqexpr(t.decorator_list),n=this.vseqexpr(t.bases);let i=this.cunpackkwstoarray(t.keywords);var s=this.enterScope(t.name,t,t.lineno),r=this.newBlock("class entry");this.u.prefixCode="var "+s+"=(function $"+t.name.v+"$class_outer($globals,$locals,$cell){var $gbl=$globals,$loc=$locals,$free=$globals;",this.u.switchCode+="(function $"+t.name.v+"$_closure($cell){",this.u.switchCode+="var $blk="+r+",$exc=[],$ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;",null!==Sk.execLimit&&(this.u.switchCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.switchCode+="if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}"),this.u.switchCode+="while(true){try{",this.u.switchCode+=this.outputInterruptTest(),this.u.switchCode+="switch($blk){",this.u.suffixCode="}}catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }}}",this.u.suffixCode+="}).call(null, $cell);});",this.u.private_=t.name,this.cbody(t.body,t.name),o("return;"),this.exitScope(),o("$ret = Sk.misceval.buildClass($gbl,",s,",",t.name.$r().v,",[",n,"], $cell, ",i,");"),this._checkSuspension();for(let t of e.reverse())o("$ret = Sk.misceval.callsimOrSuspendArray(",t,", [$ret]);"),this._checkSuspension();this.nameop(t.name,Sk.astnodes.Store,"$ret")},n.prototype.ccontinue=function(t){var e=this.peekFinallyBlock();if(0==this.u.continueBlocks.length)throw new Sk.builtin.SyntaxError("'continue' outside loop",this.filename,t.lineno);t=this.u.continueBlocks[this.u.continueBlocks.length-1],Sk.asserts.assert(this.u.breakBlocks.length===this.u.continueBlocks.length),e&&e.breakDepth==this.u.continueBlocks.length?o("$postfinally={isBreak:true,gotoBlock:",t,"};"):this._jump(t)},n.prototype.cbreak=function(t){var e=this.peekFinallyBlock();if(0===this.u.breakBlocks.length)throw new Sk.builtin.SyntaxError("'break' outside loop",this.filename,t.lineno);t=this.u.breakBlocks[this.u.breakBlocks.length-1],e&&e.breakDepth==this.u.breakBlocks.length?o("$postfinally={isBreak:true,gotoBlock:",t,"};"):this._jump(t)},n.prototype.vstmt=function(t,e){if(this.u.lineno=t.lineno,this.u.linenoSet=!1,this.u.localtemps=[],Sk.debugging&&this.u.canSuspend){var n=this.newBlock("debug breakpoint for line "+t.lineno);o("if (Sk.breakpoints('"+this.filename+"',"+t.lineno+","+t.col_offset+")) {","var $susp = $saveSuspension({data: {type: 'Sk.debug'}, resume: function() {}}, '"+this.filename+"',"+t.lineno+","+t.col_offset+");","$susp.$blk = "+n+";","$susp.optional = true;","return $susp;","}"),this._jump(n),this.setBlock(n),this.u.doesSuspend=!0}switch(this.annotateSource(t),t.constructor){case Sk.astnodes.FunctionDef:this.cfunction(t,e);break;case Sk.astnodes.ClassDef:this.cclass(t);break;case Sk.astnodes.Return:if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'return' outside function",this.filename,t.lineno);n=t.value?this.vexpr(t.value):"Sk.builtin.none.none$",0==this.u.finallyBlocks.length?o("return ",n,";"):(o("$postfinally={returning:",n,"};"),this._jump(this.peekFinallyBlock().blk));break;case Sk.astnodes.Delete:this.vseqexpr(t.targets);break;case Sk.astnodes.Assign:var i=t.targets.length;for(n=this.vexpr(t.value),e=0;e"!==t.name.v){var e=t.name.$r().v;e=e.substring(1,e.length-1),o(t.scopename,".co_name=new Sk.builtins['str']('",e,"');"),this.stack.length&&"class"==this.u.ste.blockType&&o(t.scopename,".co_qualname=new Sk.builtins['str']('"+this.u.name.v+"."+e+"');")}for(var n in t.consts)t.consts.hasOwnProperty(n)&&(t.suffixCode+=n+" = "+t.consts[n]+";")},n.prototype.cbody=function(t,e){var n=0;const i=this.maybeCDocstringOfBody(t);for(null!==i&&(o("$loc.__doc__ = ",i,";"),n=1);n"),t,0,this.canSuspend),n=this.newBlock("module entry");if(this.u.prefixCode="var "+e+"=(function($forcegbl, $forceloc){",this.u.varDeclsCode="var $gbl = $forcegbl || {}, $blk="+n+",$exc=[],$loc=$forceloc || $gbl,$cell={},$err=undefined;var $ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;",null!==Sk.execLimit&&(this.u.varDeclsCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.varDeclsCode+="if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}"),this.u.varDeclsCode+="var $waking=false; if ("+e+".$wakingSuspension!==undefined) { $wakeFromSuspension(); $waking=true; }if (Sk.retainGlobals) { if (Sk.globals) { $gbl = Sk.globals; Sk.globals = $gbl; $loc = $gbl; } else { Sk.globals = $gbl; }} else { Sk.globals = $gbl; }",this.u.switchCode="while(true){try{",this.u.switchCode+=this.outputInterruptTest(),this.u.switchCode+="switch($blk){",this.u.suffixCode="}",this.u.suffixCode+="}catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }} } });",t.constructor===Sk.astnodes.Module)this.cbody(t.body),o("return $loc;");else Sk.asserts.fail("todo; unhandled case in compilerMod");return this.exitScope(),this.result.push(this.outputAllUnits()),e},Sk.compile=function(t,e,i,s){i=Sk.__future__,Sk.__future__=Object.create(Sk.__future__);var r=Sk.parse(e,t),o=Sk.astFromParse(r.cst,e,r.flags);return r=r.flags,s=(t=new n(e,Sk.symboltable(o,e),r,s,t)).cmod(o),Sk.__future__=i,{funcname:"$compiledmod",code:`var $compiledmod = function() {${t.result.join("")}\nreturn ${s};}();\n$compiledmod;`,filename:e}},Sk.exportSymbol("Sk.compile",Sk.compile),Sk.resetCompiler=function(){Sk.gensymcount=0},Sk.exportSymbol("Sk.resetCompiler",Sk.resetCompiler),Sk.fixReserved=s,Sk.exportSymbol("Sk.fixReserved",Sk.fixReserved),Sk.unfixReserved=function(t){return t.replace(/_\$rw\$$/,"")},Sk.exportSymbol("Sk.unfixReserved",Sk.unfixReserved),Sk.mangleName=r,Sk.exportSymbol("Sk.mangleName",Sk.mangleName),Sk.reservedWords_=a,Sk.exportSymbol("Sk.reservedWords_",Sk.reservedWords_)},function(t,e){Sk.sysmodules=new Sk.builtin.dict([]),Sk.realsyspath=void 0,Sk.importSearchPathForName=function(t,e,n){var i=t.replace(/\./g,"/"),s=function(t,e){return Sk.misceval.chain(Sk.misceval.tryCatch((function(){return Sk.read(t)}),(function(t){})),(function(n){if(void 0!==n)return new Sk.misceval.Break({filename:t,code:n,packagePath:e})}))};return void 0===n&&(n=Sk.realsyspath),Sk.misceval.iterFor(n.tp$iter(),(function(t){return Sk.misceval.chain(s(t.v+"/"+i+e,!1),(function(n){return n||s(t.v+"/"+i+"/__init__"+e,t.v+"/"+i)}))}))},Sk.importSetUpPath=function(t){if(!Sk.realsyspath){var e=[new Sk.builtin.str("src/builtin"),new Sk.builtin.str("src/lib"),new Sk.builtin.str(".")];for(t=0;ti;++i)t+=" ";n[e-1]="/* "+t+e+" */ "+n[e-1]}return n.join("\n")}(r),Sk.debugout(r)}"$compiledmod"!==i.funcname&&(r+="\n"+i.funcname+";");var o=new Sk.builtin.str(n),l=new Sk.builtin.str(t);Sk.sysmodules.mp$ass_subscript(o,c),s&&s.tp$setattr(l,c);var u=Sk.global.eval(r);c.init$dict(o,Sk.builtin.none.none$),c.$d.__package__=i.packagePath?o:m?new Sk.builtin.str(_+m):h||Sk.builtin.none.none$,i.packagePath&&(c.$d.__path__=new Sk.builtin.tuple([new Sk.builtin.str(i.packagePath)])),i.filename&&"$builtinmodule"!==i.funcname&&(c.$d.__file__=new Sk.builtin.str(i.filename));var p=s&&s.$initializing;return c.$initializing=!0,s&&!p&&(s.$initializing=!0),Sk.misceval.tryCatch((()=>Sk.misceval.chain(u(c.$d),(t=>(c.$initializing=!1,s&&!p&&(s.$initializing=!1),t)))),(t=>{try{Sk.abstr.objectDelItem(Sk.sysmodules,o)}catch(t){}if(s)try{s.tp$setattr(l,void 0)}catch(t){}throw c.$initializing=!1,s&&!p&&(s.$initializing=!1),t}))}}),(function(e){var n;if(void 0===e){if(r&&!p)return;throw new Sk.builtin.ModuleNotFoundError("No module named "+Sk.misceval.objectRepr(new Sk.builtin.str(t)))}if(e!==c.$d){for(n in c.$d)e[n]||(e[n]=c.$d[n]);c.$d=e}if(Sk.onAfterImport&&"function"==typeof Sk.onAfterImport)try{Sk.onAfterImport(t)}catch(t){}return p?(u.tp$setattr(new Sk.builtin.str(f[f.length-1]),c),p):c}))}));return o?g:Sk.misceval.retryOptionalSuspensionOrThrow(g)},Sk.importModule=function(t,e,n){return Sk.importModuleInternal_(t,e,void 0,void 0,void 0,!1,n)},Sk.importMain=function(t,e,n){return Sk.dateSet=!1,Sk.filesLoaded=!1,Sk.sysmodules=new Sk.builtin.dict([]),Sk.realsyspath=void 0,Sk.resetCompiler(),Sk.importModuleInternal_(t,e,"__main__",void 0,void 0,!1,n)},Sk.importMainWithBody=function(t,e,n,i){return Sk.dateSet=!1,Sk.filesLoaded=!1,Sk.sysmodules=new Sk.builtin.dict([]),Sk.realsyspath=void 0,Sk.resetCompiler(),Sk.importModuleInternal_(t,e,"__main__",n,void 0,!1,i)},Sk.importBuiltinWithBody=function(t,e,n,i){return Sk.importModuleInternal_(t,e,"__builtin__."+t,n,void 0,!1,i)},Sk.builtin.__import__=function(t,e,n,i,s){t=t.toString();var r,o=Sk.globals;if(null==s&&(s=Sk.__future__.absolute_import?0:-1),0!==s&&e.__package__&&e.__package__!==Sk.builtin.none.none$){if((r=e.__package__.v)&&0=e.length)throw new Sk.builtin.ImportError("Attempted relative import beyond toplevel package");e.length-=s-1,r=e.join(".")}var a=Sk.sysmodules.quick$lookup(new Sk.builtin.str(r))}if(0Sk.importModuleInternal_(s,void 0,void 0,void 0,n,!0,!0)))}return Sk.misceval.chain(...e,(function(){return Sk.asserts.assert(n),n}))}return e}),(function(t){return o!==Sk.globals&&(Sk.globals=o),t}))},Sk.importStar=function(t,e,n){if(n=t.tp$getattr(new Sk.builtin.str("__all__")))for(let i=Sk.abstr.iter(n),s=i.tp$iternext();void 0!==s;s=i.tp$iternext())e[s.v]=Sk.abstr.gattr(t,s);else{n=Object.getOwnPropertyNames(t.$d);for(let i in n)"_"!=n[i].charAt(0)&&(e[n[i]]=t.$d[n[i]])}},Sk.exportSymbol("Sk.importMain",Sk.importMain),Sk.exportSymbol("Sk.importMainWithBody",Sk.importMainWithBody),Sk.exportSymbol("Sk.importBuiltinWithBody",Sk.importBuiltinWithBody),Sk.exportSymbol("Sk.builtin.__import__",Sk.builtin.__import__),Sk.exportSymbol("Sk.importStar",Sk.importStar)},function(t,e){Sk.builtin.timSort=function(t,e){this.list=new Sk.builtin.list(t.v),this.MIN_GALLOP=7,this.listlength=e||t.sq$length()},Sk.builtin.timSort.prototype.lt=function(t,e){return Sk.misceval.richCompareBool(t,e,"Lt")},Sk.builtin.timSort.prototype.le=function(t,e){return!this.lt(e,t)},Sk.builtin.timSort.prototype.setitem=function(t,e){this.list.v[t]=e},Sk.builtin.timSort.prototype.binary_sort=function(t,e){var n;for(n=t.base+e;n>1);this.lt(e,t.getitem(r))?s=r:i=r+1}for(Sk.asserts.assert(i===s),r=n;r>i;r--)t.setitem(r,t.getitem(r-1));t.setitem(i,e)}},Sk.builtin.timSort.prototype.count_run=function(t){var e;if(1>=t.len)var n=t.len,i=!1;else if(n=2,this.lt(t.getitem(t.base+1),t.getitem(t.base)))for(i=!0,e=t.base+2;ee.len)){for(this.merge_init(),t=this.merge_compute_minrun(e.len);0s&&(l=s),a+=n,l+=n}else{for(s=n+1;ls&&(l=s),o=n-a,a=n-l,l=o}for(Sk.asserts.assert(-1<=a>1),i(e.getitem(e.base+n),t)?a=n+1:l=n;return Sk.asserts.assert(a==l),l},Sk.builtin.timSort.prototype.merge_init=function(){this.min_gallop=this.MIN_GALLOP,this.pending=[]},Sk.builtin.timSort.prototype.merge_lo=function(t,e){var n,i,s;Sk.asserts.assert(0=r)break}else{if(this.setitem(o,t.popleft()),o++,1==t.len)return;if(i=0,++n>=r)break}for(r+=1;;){for(this.min_gallop=r-=1=t.len)return;if(this.setitem(o,e.popleft()),o++,0===e.len)return;for(i=this.gallop(t.getitem(t.base),e,0,!1),s=e.base;s=r)break}else{if(o--,this.setitem(o,l),e.len--,1==e.len)return;if(n=0,++i>=r)break}}for(r+=1;;){this.min_gallop=r-=1t.base+u-1;s--)o--,this.setitem(o,t.getitem(s));if(t.len-=n,0===t.len)return;if(o--,this.setitem(o,e.popright()),1==e.len)return;for(a=t.getitem(t.base+t.len-1),u=this.gallop(a,e,e.len-1,!1),i=e.len-u,s=e.base+e.len-1;s>e.base+u-1;s--)o--,this.setitem(o,e.getitem(s));if(e.len-=i,1>=e.len)return;if(o--,this.setitem(o,t.popright()),0===t.len)return;if(nt.base-1;s--)o--,this.setitem(o,t.getitem(s));for(s=e.base+e.len-1;s>e.base-1;s--)o--,this.setitem(o,e.getitem(s))}},Sk.builtin.timSort.prototype.merge_at=function(t){0>t&&(t=this.pending.length+t);var e=this.pending[t],n=this.pending[t+1];Sk.asserts.assert(0>=1;return t+e},Sk.builtin.listSlice=function(t,e,n){this.list=t,this.base=e,this.len=n},Sk.builtin.listSlice.prototype.copyitems=function(){var t=this.base,e=this.base+this.len;return Sk.asserts.assert(0<=t<=e),new Sk.builtin.listSlice(new Sk.builtin.list(this.list.v.slice(t,e)),0,this.len)},Sk.builtin.listSlice.prototype.advance=function(t){this.base+=t,this.len-=t,Sk.asserts.assert(this.base<=this.list.sq$length())},Sk.builtin.listSlice.prototype.getitem=function(t){return this.list.v[t]},Sk.builtin.listSlice.prototype.setitem=function(t,e){this.list.v[t]=e},Sk.builtin.listSlice.prototype.popleft=function(){var t=this.list.v[this.base];return this.base++,this.len--,t},Sk.builtin.listSlice.prototype.popright=function(){return this.len--,this.list.v[this.base+this.len]},Sk.builtin.listSlice.prototype.reverse=function(){for(var t,e,n=this.list,i=this.base,s=i+this.len-1;i same as super(__class__, )\nsuper(type) -> unbound super object\nsuper(type, obj) -> bound super object; requires isinstance(obj, type)\nsuper(type, type2) -> bound super object; requires issubclass(type2, type)\nTypical use to call a cooperative superclass method:\nclass C(B):\n def meth(self, arg):\n super().meth(arg)\nThis works for class methods too:\nclass C(B):\n @classmethod\n def cmeth(cls, arg):\n super().cmeth(arg)\n",tp$new:Sk.generic.new,tp$init(t,e){if(Sk.abstr.checkNoKwargs("super",e),Sk.abstr.checkArgsLen("super",t,1,2),e=t[0],t=t[1],!Sk.builtin.checkClass(e))throw new Sk.builtin.TypeError("must be type, not "+Sk.abstr.typeName(e));this.obj=t,this.type=e,null!=this.obj&&(this.obj_type=this.$supercheck(e,this.obj))},$r(){return this.obj?new Sk.builtin.str(", <"+Sk.abstr.typeName(this.obj)+" object>>"):new Sk.builtin.str(", NULL>")},tp$getattr(t,e){let n=this.obj_type;if(null==n)return Sk.generic.getAttr.call(this,t,e);var i=n.prototype.tp$mro;const s=i.length;if(t===Sk.builtin.str.$class)return Sk.generic.getAttr.call(this,t,e);let r,o;for(r=0;r+1=s)return Sk.generic.getAttr.call(this,t,e);for(t=t.$mangled;r(Sk.abstr.checkNoKwargs("GenericAlias",e),Sk.abstr.checkArgsLen("GenericAlias",t,2,2),new Sk.builtin.GenericAlias(t[0],t[1])),tp$getattr(t,e){return Sk.builtin.checkString(t)&&!this.attr$exc.includes(t)?this.$origin.tp$getattr(t,e):Sk.generic.getAttr.call(this,t,e)},$r(){const t=this.ga$repr(this.$origin);let e="";return this.$args.v.forEach(((t,n)=>{e+=0{this.is$typevar(e)&&0>this.tuple$index(t,e)&&t.push(e)})),this.$params=new Sk.builtin.tuple(t)},tuple$index:(t,e)=>t.indexOf(e),is$typevar(t){if("TypeVar"!==t.tp$name)return!1;if(void 0===(t=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$module)))throw Sk.builtin.RuntimeError("found object withought a __module__");return"typing"===t.toString()},ga$repr(t){if(t===Sk.builtin.Ellipsis)return"...";if(Sk.abstr.lookupSpecial(t,this.str$orig)&&Sk.abstr.lookupSpecial(t,this.str$args))return Sk.misceval.objectRepr(t);const e=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$qualname);if(void 0===e)return Sk.misceval.objectRepr(t);const n=Sk.abstr.lookupSpecial(t,Sk.builtin.str.$module);return void 0===n||Sk.builtin.checkNone(n)?Sk.misceval.objectRepr(t):"builtins"===n.toString()?e.toString():n.toString()+"."+e.toString()},str$orig:new Sk.builtin.str("__origin__"),str$args:new Sk.builtin.str("__args__"),attr$exc:"__origin__ __args__ __parameters__ __mro_entries__ __reduce_ex__ __reduce__".split(" ").map((t=>new Sk.builtin.str(t)))}})},function(t,e){function n(t,e){let n;if(void 0===t||Sk.builtin.checkNone(t))t=void 0;else{if(!(t instanceof Sk.builtin.dict))throw new Sk.builtin.TypeError(e+" must be a dict or None, not "+Sk.abstr.typeName(t));n={},t.$items().forEach((t=>{var[e,i]=t;Sk.builtin.checkString(e)&&(n[e.$mangled]=i)}))}return n}function i(t,e){if(void 0!==t&&!Sk.builtin.checkNone(t))for(let n in e)t.mp$ass_subscript(new Sk.builtin.str(Sk.unfixReserved(n)),e[n])}Sk.builtins={round:null,len:null,min:null,max:null,sum:null,abs:null,fabs:null,ord:null,chr:null,hex:null,oct:null,bin:null,dir:null,repr:null,open:null,isinstance:null,hash:null,getattr:null,hasattr:null,id:null,sorted:null,any:null,all:null,enumerate:Sk.builtin.enumerate,filter:Sk.builtin.filter_,map:Sk.builtin.map_,range:Sk.builtin.range_,reversed:Sk.builtin.reversed,zip:Sk.builtin.zip_,BaseException:Sk.builtin.BaseException,AttributeError:Sk.builtin.AttributeError,ValueError:Sk.builtin.ValueError,Exception:Sk.builtin.Exception,ZeroDivisionError:Sk.builtin.ZeroDivisionError,AssertionError:Sk.builtin.AssertionError,ImportError:Sk.builtin.ImportError,ModuleNotFoundError:Sk.builtin.ModuleNotFoundError,IndentationError:Sk.builtin.IndentationError,IndexError:Sk.builtin.IndexError,LookupError:Sk.builtin.LookupError,KeyError:Sk.builtin.KeyError,TypeError:Sk.builtin.TypeError,UnicodeDecodeError:Sk.builtin.UnicodeDecodeError,UnicodeEncodeError:Sk.builtin.UnicodeEncodeError,NameError:Sk.builtin.NameError,UnboundLocalError:Sk.builtin.UnboundLocalError,IOError:Sk.builtin.IOError,NotImplementedError:Sk.builtin.NotImplementedError,SystemExit:Sk.builtin.SystemExit,OverflowError:Sk.builtin.OverflowError,OperationError:Sk.builtin.OperationError,NegativePowerError:Sk.builtin.NegativePowerError,RuntimeError:Sk.builtin.RuntimeError,RecursionError:Sk.builtin.RecursionError,StopIteration:Sk.builtin.StopIteration,SyntaxError:Sk.builtin.SyntaxError,SystemError:Sk.builtin.SystemError,KeyboardInterrupt:Sk.builtin.KeyboardInterrupt,float_$rw$:Sk.builtin.float_,int_$rw$:Sk.builtin.int_,bool:Sk.builtin.bool,complex:Sk.builtin.complex,dict:Sk.builtin.dict,file:Sk.builtin.file,frozenset:Sk.builtin.frozenset,function:Sk.builtin.func,generator:Sk.builtin.generator,list:Sk.builtin.list,long_$rw$:Sk.builtin.lng,method:Sk.builtin.method,object:Sk.builtin.object,slice:Sk.builtin.slice,str:Sk.builtin.str,set:Sk.builtin.set,tuple:Sk.builtin.tuple,type:Sk.builtin.type,input:null,raw_input:new Sk.builtin.func(Sk.builtin.raw_input),setattr:null,jseval:Sk.builtin.jseval,jsmillis:Sk.builtin.jsmillis,quit:new Sk.builtin.func(Sk.builtin.quit),exit:new Sk.builtin.func(Sk.builtin.quit),print:null,divmod:null,format:null,globals:null,issubclass:null,iter:null,execfile:Sk.builtin.execfile,help:Sk.builtin.help,memoryview:Sk.builtin.memoryview,reload:Sk.builtin.reload,super_$rw$:Sk.builtin.super_,unichr:new Sk.builtin.func(Sk.builtin.unichr),vars:Sk.builtin.vars,apply_$rw$:Sk.builtin.apply_,buffer:Sk.builtin.buffer,coerce:Sk.builtin.coerce,intern:Sk.builtin.intern,property:Sk.builtin.property,classmethod:Sk.builtin.classmethod,staticmethod:Sk.builtin.staticmethod,Ellipsis:Sk.builtin.Ellipsis},t=Sk.builtin.none.none$,e=new Sk.builtin.tuple;const s=new Sk.builtin.int_(0);Sk.abstr.setUpModuleMethods("builtins",Sk.builtins,{__import__:{$meth(t,e,i,s,r){if(!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("__import__() argument 1 must be str, not "+t.tp$name);if(t===Sk.builtin.str.$empty&&0===r.v)throw new Sk.builtin.ValueError("Empty module name");return e=n(e,"globals")||{},s=Sk.ffi.remapToJs(s),r=Sk.ffi.remapToJs(r),Sk.builtin.__import__(t,e,void 0,s,r)},$flags:{NamedArgs:["name","globals","locals","fromlist","level"],Defaults:[t,t,e,s]},$textsig:null,$doc:"__import__(name, globals=None, locals=None, fromlist=(), level=0) -> module\n\nImport a module. Because this function is meant for use by the Python\ninterpreter and not for general use, it is better to use\nimportlib.import_module() to programmatically import a module.\n\nThe globals argument is only used to determine the context;\nthey are not modified. The locals argument is unused. The fromlist\nshould be a list of names to emulate ``from name import ...'', or an\nempty list to emulate ``import name''.\nWhen importing a module from a package, note that __import__('A.B', ...)\nreturns package A when fromlist is empty, but its submodule B when\nfromlist is not empty. The level argument is used to determine whether to\nperform absolute or relative imports: 0 is absolute, while a positive number\nis the number of parent directories to search relative to the current module."},abs:{$meth:Sk.builtin.abs,$flags:{OneArg:!0},$textsig:"($module, x, /)",$doc:"Return the absolute value of the argument."},all:{$meth:Sk.builtin.all,$flags:{OneArg:!0},$textsig:"($module, iterable, /)",$doc:"Return True if bool(x) is True for all values x in the iterable.\n\nIf the iterable is empty, return True."},any:{$meth:Sk.builtin.any,$flags:{OneArg:!0},$textsig:"($module, iterable, /)",$doc:"Return True if bool(x) is True for any x in the iterable.\n\nIf the iterable is empty, return False."},ascii:{$meth:Sk.builtin.ascii,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return an ASCII-only representation of an object.\n\nAs repr(), return a string containing a printable representation of an\nobject, but escape the non-ASCII characters in the string returned by\nrepr() using \\\\x, \\\\u or \\\\U escapes. This generates a string similar\nto that returned by repr() in Python 2."},bin:{$meth:Sk.builtin.bin,$flags:{OneArg:!0},$textsig:"($module, number, /)",$doc:"Return the binary representation of an integer.\n\n >>> bin(2796202)\n '0b1010101010101010101010'"},callable:{$meth:Sk.builtin.callable,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return whether the object is callable (i.e., some kind of function).\n\nNote that classes are callable, as are instances of classes with a\n__call__() method."},chr:{$meth:Sk.builtin.chr,$flags:{OneArg:!0},$textsig:"($module, i, /)",$doc:"Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff."},compile:{$meth:Sk.builtin.compile,$flags:{MinArgs:3,MaxArgs:6},$textsig:"($module, /, source, filename, mode, flags=0,\n dont_inherit=False, optimize=-1)",$doc:"Compile source into a code object that can be executed by exec() or eval().\n\nThe source code may represent a Python module, statement or expression.\nThe filename will be used for run-time error messages.\nThe mode must be 'exec' to compile a module, 'single' to compile a\nsingle (interactive) statement, or 'eval' to compile an expression.\nThe flags argument, if present, controls which future statements influence\nthe compilation of the code.\nThe dont_inherit argument, if true, stops the compilation inheriting\nthe effects of any future statements in effect in the code calling\ncompile; if absent or false these statements do influence the compilation,\nin addition to any features explicitly specified."},delattr:{$meth:Sk.builtin.delattr,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, obj, name, /)",$doc:"Deletes the named attribute from the given object.\n\ndelattr(x, 'y') is equivalent to ``del x.y''"},dir:{$meth:Sk.builtin.dir,$flags:{MinArgs:0,MaxArgs:1},$textsig:null,$doc:"dir([object]) -> list of strings\n\nIf called without an argument, return the names in the current scope.\nElse, return an alphabetized list of names comprising (some of) the attributes\nof the given object, and of attributes reachable from it.\nIf the object supplies a method named __dir__, it will be used; otherwise\nthe default dir() logic is used and returns:\n for a module object: the module's attributes.\n for a class object: its attributes, and recursively the attributes\n of its bases.\n for any other object: its attributes, its class's attributes, and\n recursively the attributes of its class's base classes."},divmod:{$meth:Sk.builtin.divmod,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, x, y, /)",$doc:"Return the tuple (x//y, x%y). Invariant: div*y + mod == x."},eval_$rw$:{$name:"eval",$meth:function(t,e,s){const r=n(e,"globals"),o=n(s,"locals");return Sk.misceval.chain(Sk.builtin.eval(t,r,o),(t=>(i(e,r),i(s,o),t)))},$flags:{MinArgs:1,MaxArgs:3},$textsig:"($module, source, globals=None, locals=None, /)",$doc:"Evaluate the given source in the context of globals and locals.\n\nThe source may be a string representing a Python expression\nor a code object as returned by compile().\nThe globals must be a dictionary and locals can be any mapping,\ndefaulting to the current globals and locals.\nIf only globals is given, locals defaults to it."},exec:{$meth:function(t,e,s){const r=n(e,"globals"),o=n(s,"locals");return Sk.misceval.chain(Sk.builtin.exec(t,r,o),(t=>(i(e,r),i(s,o),Sk.builtin.none.none$)))},$flags:{MinArgs:1,MaxArgs:3},$textsig:"($module, source, globals=None, locals=None, /)",$doc:"Execute the given source in the context of globals and locals.\n\nThe source may be a string representing one or more Python statements\nor a code object as returned by compile().\nThe globals must be a dictionary and locals can be any mapping,\ndefaulting to the current globals and locals.\nIf only globals is given, locals defaults to it."},format:{$meth:Sk.builtin.format,$flags:{MinArgs:1,MaxArgs:2},$textsig:"($module, value, format_spec='', /)",$doc:"Return value.__format__(format_spec)\n\nformat_spec defaults to the empty string.\nSee the Format Specification Mini-Language section of help('FORMATTING') for\ndetails."},getattr:{$meth:Sk.builtin.getattr,$flags:{MinArgs:2,MaxArgs:3},$textsig:null,$doc:"getattr(object, name[, default]) -> value\n\nGet a named attribute from an object; getattr(x, 'y') is equivalent to x.y.\nWhen a default argument is given, it is returned when the attribute doesn't\nexist; without it, an exception is raised in that case."},globals:{$meth:Sk.builtin.globals,$flags:{NoArgs:!0},$textsig:"($module, /)",$doc:"Return the dictionary containing the current scope's global variables.\n\nNOTE: Updates to this dictionary *will* affect name lookups in the current\nglobal scope and vice-versa."},hasattr:{$meth:Sk.builtin.hasattr,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, obj, name, /)",$doc:"Return whether the object has an attribute with the given name.\n\nThis is done by calling getattr(obj, name) and catching AttributeError."},hash:{$meth:Sk.builtin.hash,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the hash value for the given object.\n\nTwo objects that compare equal must also have the same hash value, but the\nreverse is not necessarily true."},hex:{$meth:Sk.builtin.hex,$flags:{OneArg:!0},$textsig:"($module, number, /)",$doc:"Return the hexadecimal representation of an integer.\n\n >>> hex(12648430)\n '0xc0ffee'"},id:{$meth:Sk.builtin.id,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the identity of an object.\n\nThis is guaranteed to be unique among simultaneously existing objects.\n(CPython uses the object's memory address.)"},input:{$meth:Sk.builtin.input,$flags:{MinArgs:0,MaxArgs:1},$textsig:"($module, prompt=None, /)",$doc:"Read a string from standard input. The trailing newline is stripped.\n\nThe prompt string, if given, is printed to standard output without a\ntrailing newline before reading input.\n\nIf the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.\nOn *nix systems, readline is used if available."},isinstance:{$meth:Sk.builtin.isinstance,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, obj, class_or_tuple, /)",$doc:"Return whether an object is an instance of a class or of a subclass thereof.\n\nA tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to\ncheck against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)\nor ...`` etc."},issubclass:{$meth:Sk.builtin.issubclass,$flags:{MinArgs:2,MaxArgs:2},$textsig:"($module, cls, class_or_tuple, /)",$doc:"Return whether 'cls' is a derived from another class or is the same class.\n\nA tuple, as in ``issubclass(x, (A, B, ...))``, may be given as the target to\ncheck against. This is equivalent to ``issubclass(x, A) or issubclass(x, B)\nor ...`` etc."},iter:{$meth:Sk.builtin.iter,$flags:{MinArgs:1,MaxArgs:2},$textsig:"($module, iterable /)",$doc:"iter(iterable) -> iterator\niter(callable, sentinel) -> iterator\n\nGet an iterator from an object. In the first form, the argument must\nsupply its own iterator, or be a sequence.\nIn the second form, the callable is called until it returns the sentinel."},len:{$meth:Sk.builtin.len,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the number of items in a container."},locals:{$meth:Sk.builtin.locals,$flags:{NoArgs:!0},$textsig:"($module, /)",$doc:"Return a dictionary containing the current scope's local variables.\n\nNOTE: Whether or not updates to this dictionary will affect name lookups in\nthe local scope and vice-versa is *implementation dependent* and not\ncovered by any backwards compatibility guarantees."},max:{$meth:Sk.builtin.max,$flags:{FastCall:!0},$textsig:null,$doc:"max(iterable, *[, default=obj, key=func]) -> value\nmax(arg1, arg2, *args, *[, key=func]) -> value\n\nWith a single iterable argument, return its biggest item. The\ndefault keyword-only argument specifies an object to return if\nthe provided iterable is empty.\nWith two or more arguments, return the largest argument."},min:{$meth:Sk.builtin.min,$flags:{FastCall:!0},$textsig:null,$doc:"min(iterable, *[, default=obj, key=func]) -> value\nmin(arg1, arg2, *args, *[, key=func]) -> value\n\nWith a single iterable argument, return its smallest item. The\ndefault keyword-only argument specifies an object to return if\nthe provided iterable is empty.\nWith two or more arguments, return the smallest argument."},next:{$name:"next",$meth:Sk.builtin.next_,$flags:{MinArgs:1,MaxArgs:2},$textsig:null,$doc:"next(iterator[, default])\n\nReturn the next item from the iterator. If default is given and the iterator\nis exhausted, it is returned instead of raising StopIteration."},oct:{$meth:Sk.builtin.oct,$flags:{OneArg:!0},$textsig:"($module, number, /)",$doc:"Return the octal representation of an integer.\n\n >>> oct(342391)\n '0o1234567'"},open:{$meth:Sk.builtin.open,$flags:{MinArgs:1,MaxArgs:3},$textsig:null,$doc:"open(name[, mode[, buffering]]) -> file object\n\nOpen a file using the file() type, returns a file object. This is the\npreferred way to open a file. See file.__doc__ for further information."},ord:{$meth:Sk.builtin.ord,$flags:{OneArg:!0},$textsig:"($module, c, /)",$doc:"Return the Unicode code point for a one-character string."},pow:{$meth:Sk.builtin.pow,$flags:{MinArgs:2,MaxArgs:3},$textsig:"($module, x, y, z=None, /)",$doc:"Equivalent to x**y (with two arguments) or x**y % z (with three arguments)\n\nSome types, such as ints, are able to use a more efficient algorithm when\ninvoked using the three argument form."},print:{$meth:Sk.builtin.print,$flags:{FastCall:!0},$textsig:null,$doc:"print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n\nPrints the values to a stream, or to sys.stdout by default.\nOptional keyword arguments:\nfile: a file-like object (stream); defaults to the current sys.stdout.\nsep: string inserted between values, default a space.\nend: string appended after the last value, default a newline.\nflush: whether to forcibly flush the stream."},repr:{$meth:Sk.builtin.repr,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return the canonical string representation of the object.\n\nFor many object types, including most builtins, eval(repr(obj)) == obj."},round:{$meth:Sk.builtin.round,$flags:{NamedArgs:["number","ndigits"]},$textsig:"($module, /, number, ndigits=None)",$doc:"Round a number to a given precision in decimal digits.\n\nThe return value is an integer if ndigits is omitted or None. Otherwise\nthe return value has the same type as the number. ndigits may be negative."},setattr:{$meth:Sk.builtin.setattr,$flags:{MinArgs:3,MaxArgs:3},$textsig:"($module, obj, name, value, /)",$doc:"Sets the named attribute on the given object to the specified value.\n\nsetattr(x, 'y', v) is equivalent to ``x.y = v''"},sorted:{$meth:Sk.builtin.sorted,$flags:{NamedArgs:[null,"cmp","key","reverse"],Defaults:[Sk.builtin.none.none$,Sk.builtin.none.none$,Sk.builtin.bool.false$]},$textsig:"($module, iterable, /, *, key=None, reverse=False)",$doc:"Return a new list containing all items from the iterable in ascending order.\n\nA custom key function can be supplied to customize the sort order, and the\nreverse flag can be set to request the result in descending order."},sum:{$meth:Sk.builtin.sum,$flags:{NamedArgs:[null,"start"],Defaults:[new Sk.builtin.int_(0)]},$textsig:"($module, iterable, /, start=0)",$doc:"Return the sum of a 'start' value (default: 0) plus an iterable of numbers\n\nWhen the iterable is empty, return the start value.\nThis function is intended specifically for use with numeric values and may\nreject non-numeric types."},vars:{$meth:Sk.builtin.vars,$flags:{MinArgs:0,MaxArgs:1},$textsig:null,$doc:"vars([object]) -> dictionary\n\nWithout arguments, equivalent to locals().\nWith an argument, equivalent to object.__dict__."}}),Sk.setupObjects=function(t){t?(Sk.builtins.filter=Sk.builtin.filter_,Sk.builtins.map=Sk.builtin.map_,Sk.builtins.zip=Sk.builtin.zip_,Sk.builtins.range=Sk.builtin.range_,delete Sk.builtins.reduce,delete Sk.builtins.xrange,delete Sk.builtins.StandardError,delete Sk.builtins.unicode,delete Sk.builtins.basestring,delete Sk.builtins.long_$rw$,Sk.builtin.int_.prototype.$r=function(){return new Sk.builtin.str(this.v.toString())},delete Sk.builtin.int_.prototype.tp$str,delete Sk.builtin.bool.prototype.tp$str,delete Sk.builtins.raw_input,delete Sk.builtins.unichr,delete Sk.builtin.str.prototype.decode,Sk.builtins.bytes=Sk.builtin.bytes,Sk.builtins.ascii=new Sk.builtin.sk_method({$meth:Sk.builtin.ascii,$flags:{OneArg:!0},$textsig:"($module, obj, /)",$doc:"Return an ASCII-only representation of an object.\n\nAs repr(), return a string containing a printable representation of an\nobject, but escape the non-ASCII characters in the string returned by\nrepr() using \\\\x, \\\\u or \\\\U escapes. This generates a string similar\nto that returned by repr() in Python 2."},null,"builtins")):(Sk.builtins.range=new Sk.builtin.sk_method({$meth:Sk.builtin.range,$name:"range",$flags:{MinArgs:1,MaxArgs:3}},void 0,"builtins"),Sk.builtins.xrange=new Sk.builtin.sk_method({$meth:Sk.builtin.xrange,$name:"xrange",$flags:{MinArgs:1,MaxArgs:3}},null,"builtins"),Sk.builtins.reduce=new Sk.builtin.sk_method({$meth:Sk.builtin.reduce,$name:"reduce",$flags:{MinArgs:2,MaxArgs:3}},null,"builtins"),Sk.builtins.filter=new Sk.builtin.func(Sk.builtin.filter),Sk.builtins.map=new Sk.builtin.func(Sk.builtin.map),Sk.builtins.zip=new Sk.builtin.func(Sk.builtin.zip),Sk.builtins.StandardError=Sk.builtin.Exception,Sk.builtins.unicode=Sk.builtin.str,Sk.builtins.basestring=Sk.builtin.str,Sk.builtins.long_$rw$=Sk.builtin.lng,Sk.builtin.int_.prototype.$r=function(){const t=this.v;return"number"==typeof t?new Sk.builtin.str(t.toString()):new Sk.builtin.str(t.toString()+"L")},Sk.builtin.int_.prototype.tp$str=function(){return new Sk.builtin.str(this.v.toString())},Sk.builtin.bool.prototype.tp$str=function(){return this.$r()},Sk.builtins.raw_input=new Sk.builtin.func(Sk.builtin.raw_input),Sk.builtins.unichr=new Sk.builtin.func(Sk.builtin.unichr),Sk.builtin.str.prototype.decode=Sk.builtin.str.$py2decode,delete Sk.builtins.bytes,delete Sk.builtins.ascii)},Sk.exportSymbol("Sk.setupObjects",Sk.setupObjects),Sk.exportSymbol("Sk.builtins",Sk.builtins)},function(t,e){Sk.builtin.str.$empty=new Sk.builtin.str(""),Sk.builtin.str.$emptystr=Sk.builtin.str.$empty,Sk.builtin.str.$utf8=new Sk.builtin.str("utf-8"),Sk.builtin.str.$ascii=new Sk.builtin.str("ascii"),Sk.builtin.str.$default_factory=new Sk.builtin.str("default_factory"),Sk.builtin.str.$imag=new Sk.builtin.str("imag"),Sk.builtin.str.$real=new Sk.builtin.str("real"),Sk.builtin.str.$abs=new Sk.builtin.str("__abs__"),Sk.builtin.str.$bases=new Sk.builtin.str("__bases__"),Sk.builtin.str.$bytes=new Sk.builtin.str("__bytes__"),Sk.builtin.str.$call=new Sk.builtin.str("__call__"),Sk.builtin.str.$class=new Sk.builtin.str("__class__"),Sk.builtin.str.$class_getitem=new Sk.builtin.str("__class_getitem__"),Sk.builtin.str.$cmp=new Sk.builtin.str("__cmp__"),Sk.builtin.str.$complex=new Sk.builtin.str("__complex__"),Sk.builtin.str.$contains=new Sk.builtin.str("__contains__"),Sk.builtin.str.$copy=new Sk.builtin.str("__copy__"),Sk.builtin.str.$dict=new Sk.builtin.str("__dict__"),Sk.builtin.str.$dir=new Sk.builtin.str("__dir__"),Sk.builtin.str.$doc=new Sk.builtin.str("__doc__"),Sk.builtin.str.$enter=new Sk.builtin.str("__enter__"),Sk.builtin.str.$eq=new Sk.builtin.str("__eq__"),Sk.builtin.str.$exit=new Sk.builtin.str("__exit__"),Sk.builtin.str.$index=new Sk.builtin.str("__index__"),Sk.builtin.str.$init=new Sk.builtin.str("__init__"),Sk.builtin.str.$initsubclass=new Sk.builtin.str("__init_subclass__"),Sk.builtin.str.$int_=new Sk.builtin.str("__int__"),Sk.builtin.str.$iter=new Sk.builtin.str("__iter__"),Sk.builtin.str.$file=new Sk.builtin.str("__file__"),Sk.builtin.str.$float_=new Sk.builtin.str("__float__"),Sk.builtin.str.$format=new Sk.builtin.str("__format__"),Sk.builtin.str.$ge=new Sk.builtin.str("__ge__"),Sk.builtin.str.$getattr=new Sk.builtin.str("__getattr__"),Sk.builtin.str.$getattribute=new Sk.builtin.str("__getattribute__"),Sk.builtin.str.$getitem=new Sk.builtin.str("__getitem__"),Sk.builtin.str.$gt=new Sk.builtin.str("__gt__"),Sk.builtin.str.$keys=new Sk.builtin.str("keys"),Sk.builtin.str.$le=new Sk.builtin.str("__le__"),Sk.builtin.str.$len=new Sk.builtin.str("__len__"),Sk.builtin.str.$length_hint=new Sk.builtin.str("__length_hint__"),Sk.builtin.str.$loader=new Sk.builtin.str("__loader__"),Sk.builtin.str.$lt=new Sk.builtin.str("__lt__"),Sk.builtin.str.$module=new Sk.builtin.str("__module__"),Sk.builtin.str.$missing=new Sk.builtin.str("__missing__"),Sk.builtin.str.$name=new Sk.builtin.str("__name__"),Sk.builtin.str.$ne=new Sk.builtin.str("__ne__"),Sk.builtin.str.$new=new Sk.builtin.str("__new__"),Sk.builtin.str.$next=new Sk.builtin.str("__next__"),Sk.builtin.str.$path=new Sk.builtin.str("__path__"),Sk.builtin.str.$prepare=new Sk.builtin.str("__prepare__"),Sk.builtin.str.$qualname=new Sk.builtin.str("__qualname__"),Sk.builtin.str.$repr=new Sk.builtin.str("__repr__"),Sk.builtin.str.$reversed=new Sk.builtin.str("__reversed__"),Sk.builtin.str.$round=new Sk.builtin.str("__round__"),Sk.builtin.str.$setattr=new Sk.builtin.str("__setattr__"),Sk.builtin.str.$setitem=new Sk.builtin.str("__setitem__"),Sk.builtin.str.$slots=new Sk.builtin.str("__slots__"),Sk.builtin.str.$str=new Sk.builtin.str("__str__"),Sk.builtin.str.$setname=new Sk.builtin.str("__set_name__"),Sk.builtin.str.$trunc=new Sk.builtin.str("__trunc__"),Sk.builtin.str.$write=new Sk.builtin.str("write"),Sk.misceval.op2method_={Eq:Sk.builtin.str.$eq,NotEq:Sk.builtin.str.$ne,Gt:Sk.builtin.str.$gt,GtE:Sk.builtin.str.$ge,Lt:Sk.builtin.str.$lt,LtE:Sk.builtin.str.$le}},function(t,e,n){function i(t,e,n,i,s){this.type=t,this.string=e,this.start=n,this.end=i,this.line=s}function s(t){return"("+Array.prototype.slice.call(arguments).join("|")+")"}function r(t){return s.apply(null,arguments)+"?"}function o(t,e){for(var n=t.length;n--;)if(t[n]===e)return!0;return!1}function a(t){return t=t.normalize("NFKC"),E.test(t)}function l(){return" FR RF Br BR Fr r B R b bR f rb rB F Rf U rF u RB br fR fr rf Rb".split(" ")}function u(t){t?delete Sk.token.EXACT_TOKEN_TYPES["<>"]:Sk.token.EXACT_TOKEN_TYPES["<>"]=Sk.token.tokens.T_NOTEQUAL,I=Object.keys(Sk.token.EXACT_TOKEN_TYPES).sort(),A=s.apply(this,I.reverse().map((function(t){return t&&d.test(t)?t.replace(_,"\\$&"):t}))),O=s("\\r?\\n",A)}n.r(e),(t={Cc:"\\0-\\x1F\\x7F-\\x9F",Cf:"\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB",Co:"\\uE000-\\uF8FF",Cs:"\\uD800-\\uDFFF",Ll:"a-z\\xB5\\xDF-\\xF6\\xF8-\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0529\\u052B\\u052D\\u052F\\u0560-\\u0588\\u10D0-\\u10FA\\u10FD-\\u10FF\\u13F8-\\u13FD\\u1C80-\\u1C88\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA699\\uA69B\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793-\\uA795\\uA797\\uA799\\uA79B\\uA79D\\uA79F\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7AF\\uA7B5\\uA7B7\\uA7B9\\uA7BB\\uA7BD\\uA7BF\\uA7C3\\uA7C8\\uA7CA\\uA7F6\\uA7FA\\uAB30-\\uAB5A\\uAB60-\\uAB68\\uAB70-\\uABBF\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A",Lm:"\\u02B0-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u081A\\u0824\\u0828\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1AA7\\u1C78-\\u1C7D\\u1D2C-\\u1D6A\\u1D78\\u1D9B-\\u1DBF\\u2071\\u207F\\u2090-\\u209C\\u2C7C\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031-\\u3035\\u303B\\u309D\\u309E\\u30FC-\\u30FE\\uA015\\uA4F8-\\uA4FD\\uA60C\\uA67F\\uA69C\\uA69D\\uA717-\\uA71F\\uA770\\uA788\\uA7F8\\uA7F9\\uA9CF\\uA9E6\\uAA70\\uAADD\\uAAF3\\uAAF4\\uAB5C-\\uAB5F\\uAB69\\uFF70\\uFF9E\\uFF9F",Lo:"\\xAA\\xBA\\u01BB\\u01C0-\\u01C3\\u0294\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u0800-\\u0815\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0972-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E45\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1100-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17DC\\u1820-\\u1842\\u1844-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C77\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u2135-\\u2138\\u2D30-\\u2D67\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3006\\u303C\\u3041-\\u3096\\u309F\\u30A1-\\u30FA\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA014\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA500-\\uA60B\\uA610-\\uA61F\\uA62A\\uA62B\\uA66E\\uA6A0-\\uA6E5\\uA78F\\uA7F7\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9E0-\\uA9E4\\uA9E7-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA6F\\uAA71-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB\\uAADC\\uAAE0-\\uAAEA\\uAAF2\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF66-\\uFF6F\\uFF71-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC",Lt:"\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88-\\u1F8F\\u1F98-\\u1F9F\\u1FA8-\\u1FAF\\u1FBC\\u1FCC\\u1FFC",Lu:"A-Z\\xC0-\\xD6\\xD8-\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AE\\uA7B0-\\uA7B4\\uA7B6\\uA7B8\\uA7BA\\uA7BC\\uA7BE\\uA7C2\\uA7C4-\\uA7C7\\uA7C9\\uA7F5\\uFF21-\\uFF3A",M:"\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1AC0\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F",Mc:"\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u094F\\u0982\\u0983\\u09BE-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062-\\u1064\\u1067-\\u106D\\u1083\\u1084\\u1087-\\u108C\\u108F\\u109A-\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1A19\\u1A1A\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF7\\u302E\\u302F\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BE-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAA7B\\uAA7D\\uAAEB\\uAAEE\\uAAEF\\uAAF5\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC",Me:"\\u0488\\u0489\\u1ABE\\u20DD-\\u20E0\\u20E2-\\u20E4\\uA670-\\uA672",Mn:"\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABD\\u1ABF\\u1AC0\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F",Nd:"0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19",Nl:"\\u16EE-\\u16F0\\u2160-\\u2182\\u2185-\\u2188\\u3007\\u3021-\\u3029\\u3038-\\u303A\\uA6E6-\\uA6EF",No:"\\xB2\\xB3\\xB9\\xBC-\\xBE\\u09F4-\\u09F9\\u0B72-\\u0B77\\u0BF0-\\u0BF2\\u0C78-\\u0C7E\\u0D58-\\u0D5E\\u0D70-\\u0D78\\u0F2A-\\u0F33\\u1369-\\u137C\\u17F0-\\u17F9\\u19DA\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u215F\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA830-\\uA835",Pc:"_\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F",Pd:"\\-\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E17\\u2E1A\\u2E3A\\u2E3B\\u2E40\\u301C\\u3030\\u30A0\\uFE31\\uFE32\\uFE58\\uFE63\\uFF0D",Pe:"\\)\\]\\}\\u0F3B\\u0F3D\\u169C\\u2046\\u207E\\u208E\\u2309\\u230B\\u232A\\u2769\\u276B\\u276D\\u276F\\u2771\\u2773\\u2775\\u27C6\\u27E7\\u27E9\\u27EB\\u27ED\\u27EF\\u2984\\u2986\\u2988\\u298A\\u298C\\u298E\\u2990\\u2992\\u2994\\u2996\\u2998\\u29D9\\u29DB\\u29FD\\u2E23\\u2E25\\u2E27\\u2E29\\u3009\\u300B\\u300D\\u300F\\u3011\\u3015\\u3017\\u3019\\u301B\\u301E\\u301F\\uFD3E\\uFE18\\uFE36\\uFE38\\uFE3A\\uFE3C\\uFE3E\\uFE40\\uFE42\\uFE44\\uFE48\\uFE5A\\uFE5C\\uFE5E\\uFF09\\uFF3D\\uFF5D\\uFF60\\uFF63",Pf:"\\xBB\\u2019\\u201D\\u203A\\u2E03\\u2E05\\u2E0A\\u2E0D\\u2E1D\\u2E21",Pi:"\\xAB\\u2018\\u201B\\u201C\\u201F\\u2039\\u2E02\\u2E04\\u2E09\\u2E0C\\u2E1C\\u2E20",Po:"!-#%-'\\*,\\.\\/:;\\?@\\xA1\\xA7\\xB6\\xB7\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u166E\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u1805\\u1807-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2016\\u2017\\u2020-\\u2027\\u2030-\\u2038\\u203B-\\u203E\\u2041-\\u2043\\u2047-\\u2051\\u2053\\u2055-\\u205E\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00\\u2E01\\u2E06-\\u2E08\\u2E0B\\u2E0E-\\u2E16\\u2E18\\u2E19\\u2E1B\\u2E1E\\u2E1F\\u2E2A-\\u2E2E\\u2E30-\\u2E39\\u2E3C-\\u2E3F\\u2E41\\u2E43-\\u2E4F\\u2E52\\u3001-\\u3003\\u303D\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFE10-\\uFE16\\uFE19\\uFE30\\uFE45\\uFE46\\uFE49-\\uFE4C\\uFE50-\\uFE52\\uFE54-\\uFE57\\uFE5F-\\uFE61\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF07\\uFF0A\\uFF0C\\uFF0E\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3C\\uFF61\\uFF64\\uFF65",Ps:"\\(\\[\\{\\u0F3A\\u0F3C\\u169B\\u201A\\u201E\\u2045\\u207D\\u208D\\u2308\\u230A\\u2329\\u2768\\u276A\\u276C\\u276E\\u2770\\u2772\\u2774\\u27C5\\u27E6\\u27E8\\u27EA\\u27EC\\u27EE\\u2983\\u2985\\u2987\\u2989\\u298B\\u298D\\u298F\\u2991\\u2993\\u2995\\u2997\\u29D8\\u29DA\\u29FC\\u2E22\\u2E24\\u2E26\\u2E28\\u2E42\\u3008\\u300A\\u300C\\u300E\\u3010\\u3014\\u3016\\u3018\\u301A\\u301D\\uFD3F\\uFE17\\uFE35\\uFE37\\uFE39\\uFE3B\\uFE3D\\uFE3F\\uFE41\\uFE43\\uFE47\\uFE59\\uFE5B\\uFE5D\\uFF08\\uFF3B\\uFF5B\\uFF5F\\uFF62",Sc:"\\$\\xA2-\\xA5\\u058F\\u060B\\u07FE\\u07FF\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20BF\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6",Sk:"\\^`\\xA8\\xAF\\xB4\\xB8\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u309B\\u309C\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uAB5B\\uAB6A\\uAB6B\\uFBB2-\\uFBC1\\uFF3E\\uFF40\\uFFE3",Sm:"\\+<->\\|~\\xAC\\xB1\\xD7\\xF7\\u03F6\\u0606-\\u0608\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u2118\\u2140-\\u2144\\u214B\\u2190-\\u2194\\u219A\\u219B\\u21A0\\u21A3\\u21A6\\u21AE\\u21CE\\u21CF\\u21D2\\u21D4\\u21F4-\\u22FF\\u2320\\u2321\\u237C\\u239B-\\u23B3\\u23DC-\\u23E1\\u25B7\\u25C1\\u25F8-\\u25FF\\u266F\\u27C0-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u27FF\\u2900-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2AFF\\u2B30-\\u2B44\\u2B47-\\u2B4C\\uFB29\\uFE62\\uFE64-\\uFE66\\uFF0B\\uFF1C-\\uFF1E\\uFF5C\\uFF5E\\uFFE2\\uFFE9-\\uFFEC",So:"\\xA6\\xA9\\xAE\\xB0\\u0482\\u058D\\u058E\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u09FA\\u0B70\\u0BF3-\\u0BF8\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116\\u2117\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u214A\\u214C\\u214D\\u214F\\u218A\\u218B\\u2195-\\u2199\\u219C-\\u219F\\u21A1\\u21A2\\u21A4\\u21A5\\u21A7-\\u21AD\\u21AF-\\u21CD\\u21D0\\u21D1\\u21D3\\u21D5-\\u21F3\\u2300-\\u2307\\u230C-\\u231F\\u2322-\\u2328\\u232B-\\u237B\\u237D-\\u239A\\u23B4-\\u23DB\\u23E2-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u25B6\\u25B8-\\u25C0\\u25C2-\\u25F7\\u2600-\\u266E\\u2670-\\u2767\\u2794-\\u27BF\\u2800-\\u28FF\\u2B00-\\u2B2F\\u2B45\\u2B46\\u2B4D-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA828-\\uA82B\\uA836\\uA837\\uA839\\uAA77-\\uAA79\\uFDFD\\uFFE4\\uFFE8\\uFFED\\uFFEE\\uFFFC\\uFFFD",Zl:"\\u2028",Zp:"\\u2029",Zs:" \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000"}).C=t.Cc+t.Cf+t.Cs+t.Co,t.L=t.Lu+t.Ll+t.Lt+t.Lm+t.Mn+t.Lo,t.LC=t.Lu+t.Ll+t.Lt,t.M=t.Mn+t.Mc+t.Me,t.N=t.Nd+t.Nl+t.No,t.P=t.Pc+t.Pd+t.Ps+t.Pe+t.Pi+t.Pf+t.Po,t.S=t.Sm+t.Sc+t.Sk+t.So,t.Z=t.Zs+t.Zl+t.Zp,t.w="_"+t.L+t.N,t.b="(?:["+t.w+"](?:[^"+t.w+"]|$)|(?:^|[^"+t.w+"])["+t.w+"])",t.bOut="(?=[^"+t.w+"]|$)",t.bIn="(?:^|[^"+t.w+"])",t.bInCapture="(?:^|([^"+t.w+"]))",t.B="(?:["+t.w+"]["+t.w+"]|[^"+t.w+"][^"+t.w+"])",t.d=t.N;var c=Sk.token.tokens;const p=Sk.builtin.SyntaxError,h=Sk.builtin.SyntaxError;i.prototype.exact_type=function(){return this.type==c.T_OP&&this.string in Sk.token.EXACT_TOKEN_TYPES?Sk.token.EXACT_TOKEN_TYPES[this.string]:this.type};var _=/[\\^$.*+?()[\]{}|]/g,d=RegExp(_.source);const{Lu:f,Ll:m,Lt:g,Lm:b,Lo:S,Nl:k,Mn:T,Mc:y,Nd:v,Pc:$}=t,w="["+(t=f+m+g+b+S+k+"_\\u1885-\\u1886\\u2118\\u212E\\u309B-\\u309C")+"]+["+(t+T+y+v+$)+"\\u00B7\\u0387\\u1369-\\u1371\\u19DA]*",E=new RegExp("^"+w+"$");Sk.token.isIdentifier=a,function(t){s.apply(null,arguments)}("\\\\\\r?\\n[ \\f\\t]*"),r("#[^\\r\\n]*"),t=s("[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?","\\.[0-9](?:_?[0-9])*")+r("[eE][-+]?[0-9](?:_?[0-9])*");var I,A,O,M=s(t,"[0-9](?:_?[0-9])*[eE][-+]?[0-9](?:_?[0-9])*"),C=s("[0-9](?:_?[0-9])*[jJ]",M+"[jJ]");t=s.apply(null,l()),e=s(t+"'''",t+'"""'),s(t+"'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*'",t+'"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*"'),u(!0),Sk.token.setupTokens=u;var R=s(t+"'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*"+s("'","\\\\\\r?\\n"),t+'"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*'+s('"',"\\\\\\r?\\n")),x=s("\\\\\\r?\\n|$","#[^\\r\\n]*",e),N={};t=l();for(let e of t)N[e+"'"]="^[^'\\\\]*(?:\\\\.[^'\\\\]*)*'",N[e+'"']='^[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',N[e+"'''"]="^[^'\\\\]*(?:(?:\\\\.|'(?!''))[^'\\\\]*)*'''",N[e+'"""']='^[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*"""';let L=[],D=[];for(let e of t)L.push(e+'"'),L.push(e+"'"),D.push(e+'"""'),D.push(e+"'''");Sk._tokenize=function(t,e,n,r){var l=Sk.__future__.python3?"":"(?:L?)";l=s("0[xX](?:_?[0-9a-fA-F])+"+l,"0[bB](?:_?[01])+"+l,Sk.__future__.silent_octal_literal?"0([oO]?)(?:_?[0-7])+"+l:"0([oO])(?:_?[0-7])+"+l,"(?:0(?:_?0)*|[1-9](?:_?[0-9])*)"+l),l=s(C,M,l),l="[ \\f\\t]*"+s(x,l,O,R,w),l=new RegExp(l);var u,_,d,f=0,m=0,g=0,b="",S=0,k=null,T=[0],y=void 0,v=void 0;void 0!==n&&("utf-8-sig"==n&&(n="utf-8"),r(new i(c.T_ENCODING,n,[0,0],[0,0],"")));for(var $=n="";;){try{n=$,$=e()}catch(t){$=""}f+=1;var E=0,I=$.length;if(b){if(!$)throw new p("EOF in multi-line string",t,v[0],v[1]);y.lastIndex=0;var A=y.exec($);if(!A){S&&"\\\n"!==$.substring($.length-2)&&"\\\r\n"!==$.substring($.length-3)?(r(new i(c.T_ERRORTOKEN,b+$,v,[f,$.length],k)),b="",k=null):(b+=$,k+=$);continue}E=_=A[0].length,r(new i(c.T_STRING,b+$.substring(0,_),v,[f,_],k+$)),b="",S=0,k=null}else if(0!=m||g){if(!$)throw new p("EOF in multi-line statement",t,f,0);g=0}else{if(!$)break;for(u=0;ET[T.length-1]&&(T.push(u),r(new i(c.T_INDENT,$.substring(E),[f,0],[f,E],$)));u{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{"use strict";var t={};n.r(t),n.d(t,{controls_type:()=>nt,controls_typeLists:()=>it,lists_zip:()=>st,lists_zip_container:()=>rt,lists_zip_item:()=>ot,unpack_iterable_object:()=>at,variables_change:()=>tt,variables_get:()=>Q,variables_global:()=>et,variables_set:()=>Z});var e={};n.r(e),n.d(e,{base_setup:()=>ct,controls_delay:()=>pt,controls_end_program:()=>ht,controls_except:()=>wt,controls_finally:()=>Et,controls_flow_statements:()=>bt,controls_for:()=>St,controls_forEach:()=>ft,controls_for_range:()=>kt,controls_if:()=>_t,controls_if_else:()=>vt,controls_if_elseif:()=>yt,controls_if_if:()=>Tt,controls_lambda:()=>At,controls_main:()=>ut,controls_pass:()=>Ot,controls_range:()=>dt,controls_repeat_ext:()=>It,controls_thread:()=>Mt,controls_try:()=>$t,controls_try_finally:()=>gt,controls_whileUntil:()=>mt,datetime_fromtimestamp:()=>Dt,do_while:()=>Ct,garbage_collection:()=>Rt,gene_unique_identifier:()=>Ft,get_mem_alloc:()=>xt,get_mem_free:()=>Nt,get_unique_identifier:()=>Lt});var i={};n.r(i),n.d(i,{base_map:()=>se,generate_cartesian_product:()=>oe,math_arithmetic:()=>Yt,math_bit:()=>Gt,math_constant:()=>Vt,math_constant_mp:()=>Ut,math_constrain:()=>Kt,math_dec:()=>Ht,math_degree_to_radian:()=>le,math_indexer_number:()=>Zt,math_map:()=>Qt,math_max_min:()=>zt,math_number:()=>Bt,math_number_base_conversion:()=>Wt,math_radian_to_degree:()=>ae,math_random:()=>Jt,math_random_seed:()=>te,math_round:()=>ee,math_selfcalcu:()=>jt,math_to_int:()=>qt,math_trig:()=>Xt,text_to_number:()=>ne,text_to_number_skulpt:()=>ie,turn_to_int:()=>re});var s={};n.r(s),n.d(s,{ascii_to_char:()=>de,char_to_ascii:()=>fe,number_to_text:()=>me,os_system:()=>Ue,text:()=>ce,text_capital:()=>we,text_center:()=>Ee,text_char:()=>he,text_char_at:()=>Se,text_char_at2:()=>be,text_char_at3:()=>Fe,text_compareTo:()=>De,text_compare_to:()=>$e,text_create_with_container:()=>xe,text_create_with_item:()=>Ne,text_encode:()=>Be,text_equals_starts_ends:()=>ve,text_eval:()=>Ve,text_find:()=>Ie,text_format:()=>Re,text_format_noreturn:()=>Pe,text_join:()=>_e,text_join_seq:()=>Ae,text_length:()=>ge,text_random_char:()=>ke,text_replace:()=>Oe,text_split:()=>Me,text_strip:()=>Ce,text_substring:()=>ye,text_substring2:()=>Te,text_substring3:()=>Le,text_textarea:()=>pe});var r={};n.r(r),n.d(r,{ENUMERATE:()=>$n,content_in_lists:()=>En,enumerate:()=>wn,list_many_input:()=>pn,list_tolist:()=>fn,list_tolist2:()=>vn,list_trig:()=>ln,lists_2d_get_col_row_data:()=>He,lists_2d_get_data_with_col_row:()=>Xe,lists_append_extend:()=>Qe,lists_change_to:()=>cn,lists_change_to_general:()=>_n,lists_clear:()=>sn,lists_create_with:()=>qe,lists_create_with2:()=>mn,lists_create_with_container:()=>We,lists_create_with_item:()=>Je,lists_create_with_noreturn:()=>hn,lists_create_with_text:()=>ze,lists_create_with_text2:()=>gn,lists_del_general:()=>dn,lists_find:()=>an,lists_getIndex3:()=>bn,lists_getSublist3:()=>Sn,lists_get_index:()=>je,lists_get_random_item:()=>Ze,lists_get_random_sublist:()=>tn,lists_get_sublist:()=>Ge,lists_insert_value:()=>en,lists_insert_value2:()=>Tn,lists_pop:()=>on,lists_remove_at:()=>rn,lists_remove_at2:()=>yn,lists_reverse:()=>nn,lists_setIndex3:()=>kn,lists_set_index:()=>Ke,lists_sort:()=>un});var o={};n.r(o),n.d(o,{dicts_add_change_del:()=>Yn,dicts_add_or_change:()=>Nn,dicts_clear:()=>Fn,dicts_create_with:()=>An,dicts_create_with_container:()=>On,dicts_create_with_item:()=>Mn,dicts_create_with_noreturn:()=>Xn,dicts_deldict:()=>Un,dicts_delete:()=>Ln,dicts_get:()=>Rn,dicts_get_default:()=>xn,dicts_items:()=>Pn,dicts_keys:()=>Cn,dicts_length:()=>Vn,dicts_pop:()=>jn,dicts_setdefault:()=>Gn,dicts_to_json:()=>qn,dicts_to_json2:()=>Jn,dicts_to_to:()=>Wn,dicts_todict:()=>Hn,dicts_update:()=>Dn,dicts_values:()=>Bn,json_to_dicts:()=>zn});var a={};n.r(a),n.d(a,{logic_boolean:()=>ni,logic_compare:()=>Qn,logic_compare_continous:()=>Zn,logic_is:()=>oi,logic_is_in:()=>ri,logic_negate:()=>ei,logic_null:()=>ii,logic_operation:()=>ti,logic_tobool:()=>ai,logic_true_or_false:()=>si});var l={};n.r(l),n.d(l,{sdcard_mount:()=>Mi,sdcard_use_spi_init:()=>Oi,storage_can_write_ornot:()=>mi,storage_change_dir:()=>Ii,storage_close_file:()=>bi,storage_delete_file:()=>ki,storage_file_seek:()=>vi,storage_file_tell:()=>yi,storage_file_write:()=>hi,storage_fileopen:()=>ui,storage_fileopen_new:()=>ci,storage_fileopen_new_encoding:()=>pi,storage_get_a_line:()=>fi,storage_get_contents:()=>di,storage_get_contents_without_para:()=>_i,storage_get_current_dir:()=>$i,storage_get_file_size:()=>Ti,storage_get_filename:()=>gi,storage_is_file:()=>Ai,storage_list_all_files:()=>Si,storage_make_dir:()=>wi,storage_open_file_with_os:()=>li,storage_rename:()=>Ei});var u={};n.r(u),n.d(u,{procedures_callnoreturn:()=>Li,procedures_callreturn:()=>Di,procedures_defnoreturn:()=>Ci,procedures_defreturn:()=>Ri,procedures_ifreturn:()=>Fi,procedures_mutatorarg:()=>Ni,procedures_mutatorcontainer:()=>xi,procedures_return:()=>Pi});var c={};n.r(c),n.d(c,{tuple_change_to:()=>Ji,tuple_create_with:()=>Vi,tuple_create_with_container:()=>Ui,tuple_create_with_item:()=>Yi,tuple_create_with_noreturn:()=>ts,tuple_create_with_text2:()=>ji,tuple_create_with_text_return:()=>Gi,tuple_del:()=>qi,tuple_find:()=>Ki,tuple_getIndex:()=>Xi,tuple_getSublist:()=>Zi,tuple_get_random_item:()=>ns,tuple_get_sublist:()=>es,tuple_input:()=>ss,tuple_join:()=>zi,tuple_length:()=>Hi,tuple_max:()=>Wi,tuple_totuple:()=>is,tuple_trig:()=>Qi});var p={};n.r(p),n.d(p,{set_add_discard:()=>ds,set_clear:()=>ps,set_create_with:()=>os,set_create_with_container:()=>as,set_create_with_item:()=>ls,set_create_with_text_return:()=>gs,set_length:()=>us,set_operate:()=>hs,set_operate_update:()=>_s,set_pop:()=>cs,set_sub:()=>fs,set_toset:()=>bs,set_update:()=>ms});var h={};n.r(h),n.d(h,{html_content:()=>vs,html_content_more:()=>$s,html_document:()=>ks,html_form:()=>Es,html_head_body:()=>ys,html_style:()=>ws,html_style_color:()=>As,html_style_content:()=>Is,html_text:()=>Os,html_title:()=>Ts});var _={};n.r(_),n.d(_,{attribute_access:()=>js,function_call:()=>Vs,function_call_container:()=>Us,function_call_item:()=>Ys,raw_block:()=>Rs,raw_empty:()=>Ns,raw_expression:()=>xs,raw_table:()=>Cs,text_comment:()=>Ls,text_print_multiple:()=>Fs,text_print_multiple_container:()=>Ps,text_print_multiple_item:()=>Bs,type_check:()=>Ds});var d={};n.r(d),n.d(d,{algorithm_add_path:()=>Js,algorithm_add_school:()=>Hs,algorithm_all_books:()=>hr,algorithm_all_books_sequence:()=>_r,algorithm_book_scale:()=>wr,algorithm_check_feet:()=>Dr,algorithm_chick_calculate:()=>Lr,algorithm_color_seclet:()=>to,algorithm_current_school:()=>nr,algorithm_del_path:()=>Ks,algorithm_delete_book:()=>Tr,algorithm_delete_books:()=>yr,algorithm_delete_books2:()=>vr,algorithm_divide_books:()=>Sr,algorithm_find_path:()=>qs,algorithm_first_book:()=>dr,algorithm_fz_calc:()=>Vr,algorithm_fz_calc_first_min:()=>Ur,algorithm_fz_compare:()=>Yr,algorithm_fz_move:()=>Gr,algorithm_fz_set_min:()=>jr,algorithm_get_book_num:()=>Or,algorithm_get_current_location:()=>Qr,algorithm_get_half_books:()=>kr,algorithm_hxdb_add:()=>Wr,algorithm_hxdb_init_soldier:()=>Hr,algorithm_hxdb_last_line:()=>zr,algorithm_hxdb_result:()=>Jr,algorithm_hxdb_stand_in_line:()=>qr,algorithm_init_fzsf:()=>Br,algorithm_init_hxdb:()=>Xr,algorithm_init_jttl:()=>Rr,algorithm_move_recent:()=>or,algorithm_new_path:()=>zs,algorithm_next_book:()=>gr,algorithm_no_left:()=>Zs,algorithm_no_path:()=>ir,algorithm_no_ring2:()=>fr,algorithm_not_home:()=>ar,algorithm_not_school:()=>lr,algorithm_number_add:()=>Ir,algorithm_number_zero:()=>Er,algorithm_prepare:()=>Xs,algorithm_prepare2:()=>er,algorithm_prepare_2_1:()=>sr,algorithm_prepare_2_2:()=>rr,algorithm_print_book2:()=>$r,algorithm_print_divide:()=>Cr,algorithm_print_jttl_answer:()=>Fr,algorithm_print_number:()=>Ar,algorithm_print_path:()=>tr,algorithm_print_path2:()=>ur,algorithm_print_sequence:()=>Mr,algorithm_rabbit_add:()=>Pr,algorithm_rabbit_number_in_range:()=>Nr,algorithm_rabbit_zero:()=>xr,algorithm_return_path:()=>Qs,algorithm_set_path:()=>Ws,algorithm_two_left:()=>br,algorithm_void_path:()=>Zr,algorithm_yes_ring2:()=>mr,hanoi_init:()=>cr,hanoi_init_offline:()=>Kr,hanoi_move:()=>pr});var f={};n.r(f),n.d(f,{factory_block:()=>po,factory_block_return:()=>ho,factory_block_return_with_textarea:()=>fo,factory_block_with_textarea:()=>_o,factory_callMethod_noreturn:()=>uo,factory_callMethod_return:()=>co,factory_create_with_container:()=>ro,factory_create_with_item:()=>oo,factory_declare:()=>lo,factory_from_import:()=>no,factory_function_noreturn:()=>so,factory_function_return:()=>ao,factory_import:()=>io});var m={};n.r(m),n.d(m,{array_create:()=>Ro,array_toarray:()=>Ho,dataframe_create:()=>So,dataframe_create_from_index:()=>To,dataframe_create_from_one_index:()=>ko,dataframe_get:()=>jo,numpy_trig:()=>Vo,pandas_readcsv:()=>Yo,pl_axes:()=>Ao,pl_bar:()=>Do,pl_hist:()=>Po,pl_label:()=>Co,pl_legend:()=>Oo,pl_pie:()=>Fo,pl_plot:()=>Eo,pl_plot_bar:()=>xo,pl_plot_easy:()=>wo,pl_plot_scatter:()=>No,pl_plot_xy:()=>Lo,pl_savefig:()=>Go,pl_show:()=>Io,pl_subplot:()=>Uo,pl_text:()=>Xo,pl_ticks:()=>Bo,pl_title:()=>Mo,plot_axes:()=>Jo,plot_bar:()=>ia,plot_hist:()=>ra,plot_label:()=>Zo,plot_legend:()=>Ko,plot_pie:()=>sa,plot_plot:()=>zo,plot_plot_bar:()=>ta,plot_plot_easy:()=>qo,plot_plot_scatter:()=>ea,plot_plot_xy:()=>na,plot_savefig:()=>la,plot_show:()=>Wo,plot_subplot:()=>aa,plot_text:()=>ua,plot_ticks:()=>oa,plot_title:()=>Qo,series_create:()=>go,series_create_from_index:()=>bo,series_create_from_text:()=>yo,series_get_num:()=>$o,series_index_value:()=>vo});var g={};n.r(g),n.d(g,{inout_input:()=>pa,inout_print:()=>ha,inout_print_container:()=>ga,inout_print_end:()=>da,inout_print_inline:()=>_a,inout_print_item:()=>ba,inout_print_many:()=>ma,inout_type_input:()=>fa});var b={};n.r(b),n.d(b,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Na,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>xa,IOT_EMQX_PING:()=>Ca,IOT_FORMATTING:()=>Oa,IOT_FORMAT_STRING:()=>Ma,IOT_MIXIO_NTP:()=>Ra,IOT_MIXIO_PUBLISH:()=>Ta,IOT_MIXIO_SUBSCRIBE:()=>ya,IOT_MIXIO_UNSUBSCRIBE:()=>va,iot_mixio_check:()=>Ea,iot_mixio_connect:()=>ka,iot_mixio_connect_only:()=>wa,iot_mixio_disconnect:()=>$a,iot_mixio_format_msg:()=>Aa,iot_mixio_format_topic:()=>Ia,iot_mixly_key:()=>La,iot_mixly_key_py:()=>Da});var S={};n.r(S),n.d(S,{Panic_with_status_code:()=>Ua,base_delay:()=>Pa,controls_millis:()=>Ba,controls_mstimer2:()=>ja,controls_mstimer2_start:()=>Ga,controls_mstimer2_stop:()=>Xa,reset:()=>Ya,time_localtime:()=>Va,time_sleep:()=>Ha});var k={};n.r(k),n.d(k,{turtle_bgcolor:()=>_l,turtle_bgcolor_hex:()=>yl,turtle_bgcolor_hex_new:()=>gl,turtle_circle:()=>cl,turtle_circle_advanced:()=>pl,turtle_clear:()=>sl,turtle_clone:()=>ml,turtle_color:()=>kl,turtle_color_hex:()=>Tl,turtle_color_seclet:()=>Rl,turtle_create:()=>za,turtle_done:()=>Wa,turtle_exitonclick:()=>Ja,turtle_fill:()=>ol,turtle_fillcolor:()=>fl,turtle_fillcolor_hex:()=>$l,turtle_fillcolor_hex_new:()=>Sl,turtle_getscreen:()=>xl,turtle_goto:()=>el,turtle_listen:()=>Fl,turtle_move:()=>Ka,turtle_numinput:()=>Il,turtle_onclick:()=>Ll,turtle_onkey:()=>Nl,turtle_ontimer:()=>Dl,turtle_pencolor:()=>dl,turtle_pencolor_hex:()=>vl,turtle_pencolor_hex_new:()=>bl,turtle_penup:()=>rl,turtle_pos_shape:()=>il,turtle_rotate:()=>Qa,turtle_screen_delay:()=>tl,turtle_screen_savefig:()=>Pl,turtle_setheading:()=>Za,turtle_setxy:()=>nl,turtle_shape:()=>wl,turtle_shapesize:()=>El,turtle_size:()=>ll,turtle_size_speed:()=>al,turtle_speed:()=>ul,turtle_textinput:()=>Al,turtle_visible:()=>hl,turtle_write:()=>Ol,turtle_write_format:()=>Ml,turtle_write_format_skulpt:()=>Cl});var T={};n.r(T),n.d(T,{controls_type:()=>jl,controls_typeLists:()=>Gl,lists_zip:()=>Xl,unpack_iterable_object:()=>Hl,variables_change:()=>Ul,variables_get:()=>Bl,variables_global:()=>Yl,variables_set:()=>Vl});var y={};n.r(y),n.d(y,{Panic_with_status_code:()=>nu,base_setup:()=>zl,controls_delay:()=>eu,controls_flow_statements:()=>tu,controls_for:()=>Kl,controls_forEach:()=>au,controls_for_range:()=>Ql,controls_if:()=>Wl,controls_interrupts:()=>ru,controls_lambda:()=>uu,controls_main:()=>ql,controls_millis:()=>iu,controls_nointerrupts:()=>ou,controls_pass:()=>pu,controls_range:()=>lu,controls_repeat:()=>Su,controls_repeat_ext:()=>du,controls_thread:()=>hu,controls_try_finally:()=>Jl,controls_whileUntil:()=>Zl,datetime_fromtimestamp:()=>ku,do_while:()=>_u,garbage_collection:()=>fu,gene_unique_identifier:()=>Tu,get_mem_alloc:()=>mu,get_mem_free:()=>gu,get_unique_identifier:()=>bu,reset:()=>su,time_sleep:()=>cu});var v={};n.r(v),n.d(v,{base_map:()=>Yu,generate_cartesian_product:()=>Gu,math_arithmetic:()=>Eu,math_bit:()=>wu,math_constant:()=>vu,math_constant_mp:()=>$u,math_constrain:()=>Lu,math_dec:()=>Mu,math_degree_to_radian:()=>Hu,math_indexer_number:()=>Pu,math_map:()=>Nu,math_max_min:()=>Ru,math_number:()=>yu,math_number_base_conversion:()=>Du,math_radian_to_degree:()=>Xu,math_random:()=>xu,math_random_seed:()=>Fu,math_round:()=>Bu,math_selfcalcu:()=>Iu,math_single:()=>Au,math_to_int:()=>Cu,math_trig:()=>Ou,text_to_number:()=>Vu,text_to_number_skulpt:()=>Uu,turn_to_int:()=>ju});var w={};n.r(w),n.d(w,{ascii_to_char:()=>Ku,char_to_ascii:()=>Qu,number_to_text:()=>Zu,os_system:()=>yc,text:()=>qu,text_capital:()=>lc,text_center:()=>uc,text_char:()=>Wu,text_char_at:()=>nc,text_char_at2:()=>ec,text_char_at3:()=>Sc,text_compareTo:()=>bc,text_compare_to:()=>rc,text_encode:()=>kc,text_equals_starts_ends:()=>sc,text_eval:()=>Tc,text_find:()=>cc,text_format:()=>fc,text_format_noreturn:()=>mc,text_join:()=>Ju,text_join_seq:()=>pc,text_length:()=>tc,text_random_char:()=>ic,text_replace:()=>hc,text_split:()=>_c,text_strip:()=>dc,text_substring:()=>ac,text_substring2:()=>oc,text_substring3:()=>gc,text_textarea:()=>zu});var E={};n.r(E),n.d(E,{content_in_lists:()=>np,enumerate:()=>ep,list_many_input:()=>Yc,list_tolist:()=>Zc,list_tolist2:()=>tp,list_trig:()=>Bc,lists_2d_get_col_row_data:()=>wc,lists_2d_get_data_with_col_row:()=>$c,lists_append_extend:()=>Mc,lists_change_to:()=>Uc,lists_change_to_general:()=>Gc,lists_clear:()=>Lc,lists_create_with:()=>Ec,lists_create_with2:()=>Hc,lists_create_with_noreturn:()=>jc,lists_create_with_text:()=>Ic,lists_create_with_text2:()=>qc,lists_del_general:()=>Xc,lists_find:()=>Dc,lists_getIndex3:()=>zc,lists_getSublist3:()=>Wc,lists_get_index:()=>Ac,lists_get_random_item:()=>Cc,lists_get_random_sublist:()=>Rc,lists_get_sublist:()=>vc,lists_insert_value:()=>xc,lists_insert_value2:()=>Kc,lists_pop:()=>Pc,lists_remove_at:()=>Fc,lists_remove_at2:()=>Qc,lists_reverse:()=>Nc,lists_setIndex3:()=>Jc,lists_set_index:()=>Oc,lists_sort:()=>Vc});var I={};n.r(I),n.d(I,{dicts_add_change_del:()=>fp,dicts_add_or_change:()=>ap,dicts_clear:()=>cp,dicts_create_with:()=>ip,dicts_create_with_noreturn:()=>bp,dicts_deldict:()=>dp,dicts_delete:()=>lp,dicts_get:()=>rp,dicts_get_default:()=>op,dicts_items:()=>pp,dicts_keys:()=>sp,dicts_length:()=>_p,dicts_pop:()=>mp,dicts_setdefault:()=>gp,dicts_to_json:()=>kp,dicts_to_json2:()=>vp,dicts_to_to:()=>yp,dicts_todict:()=>Sp,dicts_update:()=>up,dicts_values:()=>hp,json_to_dicts:()=>Tp});var A={};n.r(A),n.d(A,{logic_boolean:()=>Ap,logic_compare:()=>$p,logic_compare_continous:()=>wp,logic_is:()=>Rp,logic_is_in:()=>Cp,logic_negate:()=>Ip,logic_null:()=>Op,logic_operation:()=>Ep,logic_tobool:()=>xp,logic_true_or_false:()=>Mp});var O={};n.r(O),n.d(O,{sdcard_mount:()=>nh,sdcard_use_spi_init:()=>eh,storage_can_write_ornot:()=>Yp,storage_change_dir:()=>Jp,storage_close_file:()=>Gp,storage_delete_file:()=>Hp,storage_file_seek:()=>Wp,storage_file_tell:()=>zp,storage_file_write:()=>Pp,storage_fileopen:()=>Lp,storage_fileopen_new:()=>Dp,storage_fileopen_new_encoding:()=>Fp,storage_get_a_line:()=>Up,storage_get_contents:()=>Vp,storage_get_contents_without_para:()=>Bp,storage_get_current_dir:()=>Kp,storage_get_file_size:()=>qp,storage_get_filename:()=>jp,storage_is_file:()=>th,storage_list_all_files:()=>Xp,storage_make_dir:()=>Qp,storage_open_file_with_os:()=>Np,storage_rename:()=>Zp});var M={};n.r(M),n.d(M,{procedures_callnoreturn:()=>oh,procedures_callreturn:()=>rh,procedures_defnoreturn:()=>sh,procedures_defreturn:()=>ih,procedures_ifreturn:()=>ah,procedures_return:()=>lh});var C={};n.r(C),n.d(C,{tuple_change_to:()=>gh,tuple_create_with:()=>uh,tuple_create_with_noreturn:()=>Th,tuple_create_with_text2:()=>ch,tuple_create_with_text_return:()=>ph,tuple_del:()=>dh,tuple_find:()=>bh,tuple_getIndex:()=>hh,tuple_getSublist:()=>kh,tuple_get_random_item:()=>vh,tuple_get_sublist:()=>yh,tuple_input:()=>wh,tuple_join:()=>fh,tuple_length:()=>_h,tuple_max:()=>mh,tuple_totuple:()=>$h,tuple_trig:()=>Sh});var R={};n.r(R),n.d(R,{set_add_discard:()=>Rh,set_clear:()=>Oh,set_create_with:()=>Eh,set_create_with_text_return:()=>Lh,set_length:()=>Ih,set_operate:()=>Mh,set_operate_update:()=>Ch,set_pop:()=>Ah,set_sub:()=>xh,set_toset:()=>Dh,set_update:()=>Nh});var x={};n.r(x),n.d(x,{html_content:()=>Vh,html_content_more:()=>Uh,html_document:()=>Fh,html_form:()=>jh,html_head_body:()=>Bh,html_style:()=>Yh,html_style_content:()=>Gh,html_text:()=>Xh,html_title:()=>Ph});var N={};n.r(N),n.d(N,{attribute_access:()=>Qh,function_call:()=>Kh,raw_block:()=>Hh,raw_empty:()=>zh,raw_expression:()=>qh,raw_table:()=>Wh,type_check:()=>Jh});var L={};n.r(L),n.d(L,{algorithm_add_path:()=>s_,algorithm_add_school:()=>t_,algorithm_all_books:()=>T_,algorithm_all_books_sequence:()=>k_,algorithm_book_scale:()=>C_,algorithm_check_feet:()=>B_,algorithm_chick_calculate:()=>P_,algorithm_color_seclet:()=>nd,algorithm_current_school:()=>c_,algorithm_del_path:()=>r_,algorithm_delete_book:()=>O_,algorithm_divide_books:()=>I_,algorithm_find_path:()=>e_,algorithm_first_book:()=>y_,algorithm_fz_calc:()=>j_,algorithm_fz_compare:()=>G_,algorithm_fz_move:()=>H_,algorithm_fz_set_min:()=>X_,algorithm_get_current_location:()=>td,algorithm_get_half_books:()=>A_,algorithm_hxdb_add:()=>K_,algorithm_hxdb_init_soldier:()=>z_,algorithm_hxdb_last_line:()=>J_,algorithm_hxdb_result:()=>Q_,algorithm_hxdb_stand_in_line:()=>W_,algorithm_init_fzsf:()=>Y_,algorithm_init_hxdb:()=>q_,algorithm_init_jttl:()=>L_,algorithm_move_recent:()=>d_,algorithm_new_path:()=>n_,algorithm_next_book:()=>w_,algorithm_no_left:()=>a_,algorithm_no_path:()=>p_,algorithm_no_ring2:()=>v_,algorithm_not_home:()=>f_,algorithm_not_school:()=>m_,algorithm_number_add:()=>x_,algorithm_number_zero:()=>R_,algorithm_prepare:()=>Zh,algorithm_prepare2:()=>u_,algorithm_prepare_2_1:()=>h_,algorithm_prepare_2_2:()=>__,algorithm_print_book2:()=>M_,algorithm_print_jttl_answer:()=>V_,algorithm_print_number:()=>N_,algorithm_print_path:()=>l_,algorithm_print_path2:()=>g_,algorithm_rabbit_add:()=>U_,algorithm_rabbit_number_in_range:()=>F_,algorithm_rabbit_zero:()=>D_,algorithm_return_path:()=>o_,algorithm_set_path:()=>i_,algorithm_two_left:()=>E_,algorithm_void_path:()=>ed,algorithm_yes_ring2:()=>$_,hanoi_init:()=>b_,hanoi_init_offline:()=>Z_,hanoi_move:()=>S_});var D={};n.r(D),n.d(D,{factory_block:()=>cd,factory_block_return:()=>pd,factory_block_return_with_textarea:()=>_d,factory_block_with_textarea:()=>hd,factory_callMethod_noreturn:()=>ld,factory_callMethod_return:()=>ud,factory_declare:()=>ad,factory_from_import:()=>id,factory_function_noreturn:()=>rd,factory_function_return:()=>od,factory_import:()=>sd});var F={};n.r(F),n.d(F,{array_create:()=>Od,array_toarray:()=>jd,dataframe_create:()=>md,dataframe_create_from_index:()=>gd,dataframe_create_from_one_index:()=>bd,dataframe_get:()=>Vd,numpy_trig:()=>Fd,pandas_readcsv:()=>Bd,pl_axes:()=>vd,pl_bar:()=>xd,pl_hist:()=>Ld,pl_label:()=>Ad,pl_legend:()=>Ed,pl_pie:()=>Nd,pl_plot:()=>wd,pl_plot_bar:()=>Md,pl_plot_easy:()=>$d,pl_plot_scatter:()=>Cd,pl_plot_xy:()=>Rd,pl_savefig:()=>Ud,pl_show:()=>yd,pl_subplot:()=>Pd,pl_text:()=>Yd,pl_ticks:()=>Dd,pl_title:()=>Id,plot_axes:()=>Xd,plot_bar:()=>tf,plot_hist:()=>nf,plot_label:()=>Jd,plot_legend:()=>zd,plot_pie:()=>ef,plot_plot:()=>qd,plot_plot_bar:()=>Kd,plot_plot_easy:()=>Hd,plot_plot_scatter:()=>Qd,plot_plot_xy:()=>Zd,plot_savefig:()=>of,plot_show:()=>Gd,plot_subplot:()=>rf,plot_text:()=>af,plot_ticks:()=>sf,plot_title:()=>Wd,series_create:()=>dd,series_create_from_index:()=>fd,series_create_from_text:()=>Sd,series_get_num:()=>Td,series_index_value:()=>kd});var P={};n.r(P),n.d(P,{inout_input:()=>lf,inout_print:()=>uf,inout_print_end:()=>pf,inout_print_inline:()=>cf,inout_print_many:()=>_f,inout_type_input:()=>hf});var B={};n.r(B),n.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>wf,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>If,IOT_EMQX_PING:()=>Af,IOT_FORMATTING:()=>vf,IOT_FORMAT_STRING:()=>$f,IOT_MIXIO_PUBLISH:()=>ff,IOT_MIXIO_SUBSCRIBE:()=>mf,IOT_MIXIO_UNSUBSCRIBE:()=>gf,iot_mixio_check:()=>kf,iot_mixio_connect:()=>df,iot_mixio_connect_only:()=>Sf,iot_mixio_disconnect:()=>bf,iot_mixio_format_msg:()=>yf,iot_mixio_format_topic:()=>Tf,iot_mixly_key:()=>Ef,iot_mixly_key_py:()=>Of});var V={};n.r(V),n.d(V,{controls_end_program:()=>Cf,controls_millis:()=>Mf,time_localtime:()=>Rf});var U={};n.r(U),n.d(U,{turtle_bgcolor:()=>Qf,turtle_bgcolor_hex:()=>nm,turtle_bgcolor_hex_new:()=>rm,turtle_circle:()=>zf,turtle_circle_advanced:()=>Jf,turtle_clear:()=>Yf,turtle_clone:()=>em,turtle_color:()=>um,turtle_color_hex:()=>lm,turtle_color_seclet:()=>gm,turtle_create:()=>xf,turtle_done:()=>Nf,turtle_exitonclick:()=>Lf,turtle_fill:()=>Gf,turtle_fillcolor:()=>tm,turtle_fillcolor_hex:()=>sm,turtle_fillcolor_hex_new:()=>am,turtle_getscreen:()=>bm,turtle_goto:()=>Vf,turtle_listen:()=>ym,turtle_move:()=>Df,turtle_numinput:()=>_m,turtle_onclick:()=>km,turtle_onkey:()=>Sm,turtle_ontimer:()=>Tm,turtle_pencolor:()=>Zf,turtle_pencolor_hex:()=>im,turtle_pencolor_hex_new:()=>om,turtle_penup:()=>jf,turtle_pos_shape:()=>Uf,turtle_rotate:()=>Ff,turtle_screen_delay:()=>Bf,turtle_screen_savefig:()=>vm,turtle_setheading:()=>Pf,turtle_setxy:()=>Wf,turtle_shape:()=>cm,turtle_shapesize:()=>pm,turtle_size:()=>Hf,turtle_size_speed:()=>Xf,turtle_speed:()=>qf,turtle_textinput:()=>hm,turtle_visible:()=>Kf,turtle_write:()=>dm,turtle_write_format:()=>fm,turtle_write_format_skulpt:()=>mm});const Y=Blockly,j=Mixly,G={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var n=Object.create(null),i=0;i1&&(o+=i)):n=o}else n="i";return n}},X=G,H={};H.NAME_TYPE=Y.PROCEDURE_CATEGORY_NAME,H.allProcedures=function(t){for(var e=t.getAllBlocks(!1),n=[],i=[],s=0;s0?e.join("\n")+n.join("\n")+i.join("\n")+o.join("\n")+a.join("")+t+"while True:\n"+l.join("")+u.join("\n"):e.join("\n")+n.join("\n")+i.join("\n")+o.join("\n")+a.join("")+t+u.join("\n")},J.scrubNakedValue=function(t){return t+"\n"},J.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},J.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},J.scrub_=function(t,e,n){var i="";if(!t.outputConnection||!t.outputConnection.targetConnection){(r=t.getCommentText())&&(r=Y.utils.string.wrap(r,J.COMMENT_WRAP-3),i+=J.prefixLines(r+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",i&&(a="-"+a)),a};const K=330,Q={init:function(){this.setColour(K),this.appendDummyInput().appendField(new Y.FieldTextInput(""),"VAR"),this.setOutput(!0),this.setTooltip(Y.Msg.VARIABLES_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){W.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},Z={init:function(){this.setColour(K),this.appendValueInput("VALUE").appendField(new Y.FieldTextInput(""),"VAR").appendField(Y.Msg.MIXLY_VALUE2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.VARIABLES_SET_TOOLTIP)},getVars:function(){var t=this.getFieldValue("VAR");return null==t?[]:t.split(",")},renameVar:function(t,e){W.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},tt={init:function(){this.setColour(K);var t=[[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.LANG_MATH_FLOAT,"float"],[Y.Msg.LANG_MATH_BOOLEAN,"bool"],[Y.Msg.LANG_MATH_STRING,"str"],[Y.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[Y.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[Y.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[Y.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[Y.Msg.LANG_MATH_BYTE,"bytes"]];this.appendValueInput("MYVALUE").appendField(new Y.FieldDropdown(t),"OP"),this.setOutput(!0)}},et={init:function(){this.setColour(K),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_PYTHON_GLOBAL).setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Y.Msg.TEXT_PRINT_TOOLTIP)}},nt={init:function(){this.setColour(K),this.appendValueInput("DATA").appendField(Y.Msg.MICROBIT_PYTHON_TYPE),this.setOutput(!0),this.setTooltip(Y.Msg.MICROBIT_PYTHON_TYPE)}},it={init:function(){this.setColour(K),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new Y.FieldDropdown([[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.MIXLY_MICROBIT_TYPE_FLOAT,"float"],[Y.Msg.MIXLY_MICROBIT_TYPE_STRING,"str"],[Y.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[Y.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[Y.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[Y.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[Y.Msg.LANG_MATH_BYTE,"bytes"],[Y.Msg.LOGIC_NULL,"type(None)"]]),"type"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type");return Y.Msg.MICROBIT_controls_TypeLists+{int:Y.Msg.LANG_MATH_INT,float:Y.Msg.MIXLY_MICROBIT_TYPE_FLOAT,str:Y.Msg.MIXLY_MICROBIT_TYPE_STRING,list:Y.Msg.MIXLY_MICROBIT_TYPE_LIST,tuple:Y.Msg.MIXLY_MICROBIT_TYPE_TUPLE,dict:Y.Msg.MIXLY_MICROBIT_TYPE_DICT,set:Y.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,image:Y.Msg.MIXLY_MICROBIT_IMAGE,bytes:Y.Msg.LANG_MATH_BYTE,NoneType:Y.Msg.LOGIC_NULL}[e]}))}},st={init:function(){this.setColour(K),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setMutator(new Y.icons.MutatorIcon(["lists_zip_item"],this)),this.setTooltip(Y.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_zip_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Y.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Y.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.CONTROLS_IF_MSG_ELSE);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_if_elseif");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var r=t.newBlock("controls_if_else");r.initSvg(),n.connect(r.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],r=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,r=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,r)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_if_elseif":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),r=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(r.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Y.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Y.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},dt={init:function(){this.setColour(lt),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.PYTHON_RANGE).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ft={init:function(){this.setColour(lt),this.appendValueInput("LIST").setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Y.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Y.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},mt={init:function(){this.setColour(lt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Y.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Y.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Y.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Y.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Y.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},gt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Y.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Y.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,n=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.MIXLY_PYTHON_FINALLY);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_except");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var r=t.newBlock("controls_finally");r.initSvg(),n.connect(r.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],r=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,r=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,r)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_except":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),r=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(r.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},bt={init:function(){this.setColour(lt);var t=new Y.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Y.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Y.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},St={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Y.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Y.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},kt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Y.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Y.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};mt.OPERATORS=[[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],bt.OPERATORS=[[Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Tt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Y.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},yt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},vt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Y.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(lt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},wt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Y.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Et={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Y.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},It={init:function(){this.jsonInit({message0:Y.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:lt,tooltip:Y.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Y.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},At={init:function(){this.setColour(lt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_STAT),this.setOutput(!0)}},Ot={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Mt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Y.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Ct={init:function(){this.appendDummyInput().appendField(Y.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Y.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Y.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Y.FieldDropdown([[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Rt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Nt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Lt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET+Y.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.PROCEDURES_DEFRETURN_RETURN+Y.Msg.MIXLY_GET_UNIQUE_IDEN)}},Dt={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Y.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ft={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Pt=230;Y.FieldTextInput.math_number_validator=function(t){return String(t)},Y.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Bt={init:function(){this.setColour(Pt),this.appendDummyInput().appendField(new Y.FieldTextInput("0",Y.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MATH_NUMBER_TOOLTIP)}},Vt={init:function(){this.setColour(Pt);this.appendDummyInput("").appendField(Y.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Y.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ut={init:function(){this.setColour(Pt);this.appendDummyInput("").appendField(Y.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Y.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Yt={init:function(){this.setColour(Pt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Y.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Y.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Y.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},jt={init:function(){this.setColour(Pt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Y.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Y.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Y.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Gt={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Y.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Xt={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Y.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Y.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Y.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Y.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Y.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Y.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Y.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Y.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ht={init:function(){var t=[[Y.Msg.MATH_BIN,"bin"],[Y.Msg.MATH_OCT,"oct"],[Y.Msg.MATH_HEX,"hex"]];this.setColour(Pt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Y.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Y.Msg.MATH_DEC_TOOLTIP_BIN,oct:Y.Msg.MATH_DEC_TOOLTIP_OCT,hex:Y.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},qt={init:function(){var t=[[Y.Msg.LANG_MATH_TO_ROUND,"round"],[Y.Msg.LANG_MATH_TO_CEIL,"ceil"],[Y.Msg.LANG_MATH_TO_FLOOR,"floor"],[Y.Msg.MATH_ABS,"fabs"],[Y.Msg.MATH_SQRT,"sqrt"]];this.setColour(Pt),this.appendValueInput("A").setCheck(Number).appendField(new Y.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Y.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Y.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Y.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Y.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Y.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Y.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},zt={init:function(){var t=[[Y.Msg.MIXLY_MAX,"max"],[Y.Msg.MIXLY_MIN,"min"]];this.setColour(Pt),this.appendValueInput("A").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(new Y.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Y.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Y.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Y.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Wt={init:function(){var t=[[Y.Msg.MATH_TWO,"two"],[Y.Msg.MATH_EIGHT,"eight"],[Y.Msg.MATH_TEN,"ten"],[Y.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Pt),this.appendDummyInput("").appendField(Y.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Y.FieldDropdown(t),"OP").appendField(Y.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Y.Msg.MATH_ZHW).appendField(new Y.FieldDropdown(t),"OP2").appendField(Y.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),n={two:Y.Msg.MATH_Before_two,eight:Y.Msg.MATH_Before_eight,ten:Y.Msg.MATH_Before_ten,sixteen:Y.Msg.MATH_Before_sixteen},i=e.getFieldValue("OP2"),s={two:Y.Msg.MATH_Behind_two,eight:Y.Msg.MATH_Behind_eight,ten:Y.Msg.MATH_Behind_ten,sixteen:Y.Msg.MATH_Behind_sixteen};return n[t]+s[i]}))}},Jt={init:function(){var t=[[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Pt),this.setOutput(!0,Number),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Y.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),n={int:Y.Msg.LANG_MATH_INT,float:Y.Msg.LANG_MATH_FLOAT_RANDOM};return Y.Msg.MATH_RANDOM_INT_TOOLTIP+n[t]}))}},Kt={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Y.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Y.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Y.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Y.Msg.MATH_CONSTRAIN_TOOLTIP)}},Qt={init:function(){this.setColour(Pt),this.appendValueInput("NUM",Number).appendField(Y.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Y.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Y.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Zt={init:function(){this.setColour(Pt),this.appendDummyInput().appendField(new Y.FieldTextInput("0",Y.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Y.Msg.MATH_NUMBER_TOOLTIP)}},te={init:function(){this.setColour(Pt),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ee={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Y.Msg.MATH_ROUND).appendField(Y.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Y.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Y.Msg.MATH_ROUND_NEW_TOOLTIP)}},ne={init:function(){var t=[[Y.Msg.MIXLY_TO_INT,"int"],[Y.Msg.MIXLY_TO_FLOAT,"float"],[Y.Msg.MIXLY_TO_BITES,"b"],[Y.Msg.LANG_MATH_BYTE+Y.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Pt),this.appendValueInput("VAR").appendField(new Y.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Y.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Y.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Y.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ie={init:function(){var t=[[Y.Msg.MIXLY_TO_INT,"int"],[Y.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Pt),this.appendValueInput("VAR").appendField(new Y.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Y.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Y.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},se=Qt,re={init:function(){this.setColour(Pt),this.appendValueInput("VAR").appendField(Y.Msg.LANG_MATH_BYTE+Y.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},oe={init:function(){this.setColour(Pt),this.itemCount_=1,this.setMutator(new Y.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Y.Msg.MIXLY_PRODUCT+Y.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Y.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Y.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Y.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const ce={init:function(){this.setColour(ae),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Y.FieldTextInput("",Y.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Y.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Y.FieldImage(e,7,12,'"')}},pe={init:function(){this.setColour(ae),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Y.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},he={init:function(){this.setColour(ae),this.appendValueInput("VAR").setCheck(Number).appendField(Y.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},_e={init:function(){this.setColour(ae),this.appendValueInput("VAR").setCheck(String).appendField(Y.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},de={init:function(){this.setColour(ae),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},fe={init:function(){this.setColour(ae),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},me={init:function(){this.WHERE_OPTIONS=[[Y.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Y.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Y.Msg.TEXT_GET_INDEX_RANDOM+1+Y.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Y.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Y.Msg.LISTS_GET_INDEX_GET,"MODE"),Y.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Y.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=t.getFieldValue("WHERE"),i="";switch(e+" "+n){case"GET FROM_START":case"GET FROM_END":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(i+=" "+Y.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Y.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),n={FROM_START:Y.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Y.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Y.Msg.TEXT_GET_INDEX_RANDOM};return Y.Msg.PROCEDURES_DEFRETURN_RETURN+Y.Msg.MIXLY_MICROBIT_TYPE_STRING+n[t]+"n"+Y.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Y.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Y.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Y.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Y.FieldDropdown(this.WHERE_OPTIONS,(function(e){var n="FROM_START"==e||"FROM_END"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Y.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ge={init:function(){this.setHelpUrl(Y.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Y.Msg.LISTS_GET_INDEX_GET+" "+Y.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Y.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Y.Msg.PROCEDURES_DEFRETURN_RETURN+Y.Msg.MIXLY_MICROBIT_TYPE_STRING+Y.Msg.LISTS_GET_INDEX_FROM_START+"n"+Y.Msg.TEXT_CHARAT2)}},be={init:function(){this.setHelpUrl(Y.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ae),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Y.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Y.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Se={init:function(){this.WHERE_OPTIONS_1=[[Y.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Y.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Y.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Y.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Y.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Y.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Y.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ae),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Y.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Y.INPUT_VALUE;t.setAttribute("at1",e);var n=this.getInput("AT2").type==Y.INPUT_VALUE;return t.setAttribute("at2",n),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),n="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,n)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Y.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Y.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var n=new Y.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(n){var i="FROM_START"==n||"FROM_END"==n;if(i!=e){var s=this.sourceBlock_;return s.updateAt_(t,i),s.setFieldValue(n,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(n,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ke={init:function(){this.setHelpUrl(Y.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Y.Msg.LISTS_GET_INDEX_GET+" "+Y.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Y.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Y.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Y.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Te={init:function(){var t=[[Y.Msg.MIXLY_EQUALS,"==="],[Y.Msg.MIXLY_STARTSWITH,"startswith"],[Y.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ae),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Y.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ye={init:function(){this.setColour(ae),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Y.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_COMPARETO_HELP)}},ve={init:function(){var t=[[Y.Msg.TEXT_UPPER,"upper"],[Y.Msg.TEXT_TITLE,"title"],[Y.Msg.TEXT_CAPITALIZE,"capitalize"],[Y.Msg.TEXT_SWAPCASE,"swapcase"],[Y.Msg.TEXT_LOWER,"lower"]];this.setColour(ae),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Y.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Y.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Y.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Y.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Y.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Y.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},$e={init:function(){var t=[[Y.Msg.TEXT_LJUST,"ljust"],[Y.Msg.TEXT_CENTER,"center"],[Y.Msg.TEXT_RJUST,"rjust"]];this.setColour(ae),this.appendValueInput("VAR").appendField(new Y.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Y.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Y.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},we={init:function(){this.setColour(ae),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Y.Msg.MIXLY_MID+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Y.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ee={init:function(){this.setColour(ae),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Ie={init:function(){this.setColour(ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Y.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Y.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Ae={init:function(){this.setColour(ae),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Y.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Y.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Oe={init:function(){var t=[[Y.Msg.TEXT_TRIM_BOTH,"strip"],[Y.Msg.TEXT_TRIM_LEFT,"lstrip"],[Y.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ae),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Y.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Y.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Y.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Y.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Y.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Y.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Me={init:function(){this.setColour(ae),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Y.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Y.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},In={init:function(){this.setColour(wn),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Y.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},An={init:function(){this.setColour(wn),this.appendDummyInput().appendField(Y.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},On={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_KEYS),this.setTooltip(Y.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Mn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Y.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Y.Msg.DICTS_GET_TOOLTIP)}},Cn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Y.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Y.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Y.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Rn={init:function(){this.setColour(wn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Y.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},xn={init:function(){this.setColour(wn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Y.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_DELETE_TOOLTIP)}},Nn={init:function(){this.setColour(wn),this.appendValueInput("DICT2").setCheck("Dict").appendField(Y.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Y.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MID),this.setTooltip(Y.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ln={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_CLEAR),this.setTooltip(Y.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Dn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_ITEMS),this.setTooltip(Y.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Fn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_VALUES),this.setTooltip(Y.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Pn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_LENGTH),this.setTooltip(Y.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Bn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_DELDICT),this.setTooltip(Y.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vn={init:function(){this.MODE=[[Y.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Y.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Y.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Y.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Y.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Y.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Y.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Y.FieldDropdown(this.MODE,(function(e){var n="INSERT"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Un={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Y.Msg.DICTS_ADD_VALUE),this.setTooltip(Y.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Yn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Y.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_SETDEFAULT_TOOLTIP)}},jn={init:function(){this.setColour(wn),this.appendDummyInput("").appendField(new Y.FieldLabel(Y.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Y.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Y.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gn={init:function(){this.setColour(wn),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Xn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_TO_JSON),this.setTooltip(Y.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Hn={init:function(){this.setColour(wn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Y.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},qn={init:function(){this.setColour(wn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},zn={init:function(){this.setColour(wn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_TO_JSON),this.setTooltip(Y.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Wn=210,Jn={init:function(){var t=Y.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Wn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Y.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Y.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Y.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Y.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Y.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Y.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Kn={init:function(){var t=Y.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Y.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Wn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Y.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Qn={init:function(){var t=[[Y.Msg.LOGIC_OPERATION_AND,"AND"],[Y.Msg.LOGIC_OPERATION_OR,"OR"],[Y.Msg.LOGIC_OPERATION_NOR,"NOR"],[Y.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Wn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Y.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Y.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Y.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Y.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Y.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Zn={init:function(){this.setColour(Wn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Y.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Y.Msg.LOGIC_NEGATE_TOOLTIP)}},ti={init:function(){var t=[[Y.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Y.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Wn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Y.FieldDropdown(t),"BOOL"),this.setTooltip(Y.Msg.LOGIC_BOOLEAN_TOOLTIP)}},ei={init:function(){this.setColour(Wn),this.setOutput(!0),this.appendDummyInput().appendField(Y.Msg.LOGIC_NULL),this.setTooltip(Y.Msg.LOGIC_NULL_TOOLTIP)}},ni={init:function(){this.setColour(Wn),this.appendValueInput("A"),this.appendValueInput("B").appendField(Y.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Y.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},ii={init:function(){var t=[[Y.Msg.TEXT_APPEND_TO,"in"],[Y.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Wn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Y.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Y.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Y.Msg.IN)}},si={init:function(){var t=[[Y.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Y.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Wn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},ri={init:function(){this.setColour(Wn),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},oi={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Y.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ai={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_USE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,r=Y.Msg.MIXLY_BELONG;return n+{r:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+r+i+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},li={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_USE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,r=Y.Msg.MIXLY_BELONG,o=Y.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+r+i+s+o}))}},ui={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Y.Msg.MIXPY_TEXT_ENCODE).appendField(new Y.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_USE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,r=Y.Msg.MIXLY_BELONG,o=Y.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+r+i+s+o}))}},ci={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Y.Msg.MIXLY_MICROBIT_TYPE_STRING+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},pi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},hi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+i}))}},_i={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Y.Msg.MICROBIT_PYTHON_TYPE)}},di={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.HTML_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},fi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},mi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},gi={init:function(){this.setColour(0),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const bi={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Si={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},ki={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Ti={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+i}))}},yi={init:function(){this.setColour(0),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},vi={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Y.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Y.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Y.Msg.MIXLY_ESP32_SET+{mkdir:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$i={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Y.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},wi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Ei={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.HTML_FILE,"isfile"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Y.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Ii={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Y.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_SETUP+Y.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Y.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ai={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Y.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Oi={init:function(){var t=Y.Procedures.findLegalName("",this),e=new Y.FieldTextInput(t,Y.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Y.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Y.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Y.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Y.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Y.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Y.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Y.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Y.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Y.Events.enable()}},mutationToDom:function(t){var e=Y.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var n=0;n"),this.appendValueInput("style").appendField(Y.Msg.MIXLY_AIP_ATTR).setAlign(Y.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(gs),this.appendDummyInput().appendField(Y.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(gs),this.appendDummyInput().appendField(Y.Msg.HTML_FORM_CONTENT).appendField(new Y.FieldDropdown([[Y.Msg.HTML_TEXT,"text"],[Y.Msg.HTML_EMAIL,"email"],[Y.Msg.HTML_NUMBER,"number"],[Y.Msg.HTML_PASSWORD,"password"],[Y.Msg.HTML_CHECKBOX,"checkbox"],[Y.Msg.HTML_RADIOBUTTON,"radiobutton"],[Y.Msg.HTML_BUTTON,"button"],[Y.Msg.HTML_COLOUR,"colour"],[Y.Msg.HTML_DATE,"date"],[Y.Msg.HTML_LOCALTIME,"local time"],[Y.Msg.HTML_FILE,"file"],[Y.Msg.HTML_HIDDEN,"hidden"],[Y.Msg.HTML_IMAGE,"image"],[Y.Msg.HTML_MONTH,"month"],[Y.Msg.HTML_RANGE,"range"],[Y.Msg.HTML_RESET,"reset"],[Y.Msg.HTML_SEARCH,"search"],[Y.Msg.HTML_SUBMIT,"submit"],[Y.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Y.Msg.HTML_TIME,"time"],[Y.Msg.HTML_URL,"url"],[Y.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Y.Msg.HTML_NAME).appendField(new Y.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Y.Msg.HTML_VALUE).appendField(new Y.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Y.Msg.MIXLY_AIP_ATTR).setAlign(Y.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(gs),this.appendDummyInput().appendField(new Y.FieldTextInput("property"),"KEY").appendField(":").appendField(new Y.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Es={init:function(){this.setColour(gs),this.appendDummyInput().appendField(new Y.FieldTextInput("property"),"KEY").appendField(":").appendField(new Y.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Is={init:function(){this.setColour(gs),this.appendDummyInput().appendField(Y.Msg.HTML_TEXT).appendField(new Y.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},As=160,Os={init:function(){this.setColour(As),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Y.FieldTable(""),"TEXT")}},Ms={init:function(){this.setColour(As),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Y.FieldMultilineInput(""),"TEXT")}},Cs={init:function(){this.setColour(As),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Y.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Rs={init:function(){this.setColour(As),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},xs={init:function(){this.setColour(As),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Y.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Ns={init:function(){this.setColour(As),this.appendValueInput("VALUE").appendField(Y.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},Ls={init:function(){this.setColour(As),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Y.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Y.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Y.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wo={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Eo={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Io={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ao={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Oo={init:function(){this.setColour(_o);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SET_LABEL).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(Y.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mo={init:function(){this.setColour(_o),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_SPLITBYDOU).appendField(Y.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Co={init:function(){this.setColour(_o);var t=[[Y.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[Y.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_DISPLAY_DRAW).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:Y.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},Ro={init:function(){this.setColour(_o);var t=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],e=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_SCATTER).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(Y.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},xo={init:function(){this.setColour(_o);var t=[[Y.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[Y.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[Y.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],n=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_XY).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},No={init:function(){this.setColour(_o);var t=[[Y.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[Y.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_BAR).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(Y.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new Y.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Lo={init:function(){this.setColour(_o);var t=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[Y.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PIE).appendField(Y.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(Y.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new Y.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new Y.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Do={init:function(){this.setColour(_o),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_HIST).appendField(Y.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(Y.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fo={init:function(){this.setColour(_o);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_SETTING).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_TICKS).appendField(Y.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},Po={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[Y.Msg.LANG_MATH_TO_ROUND,"round"],[Y.Msg.LANG_MATH_TO_CEIL,"ceil"],[Y.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(_o),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(Y.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new Y.FieldDropdown(t),"OP"),this.setTooltip(Y.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},Bo={init:function(){this.setColour(_o),this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT).appendField(Y.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Vo={init:function(){this.setColour(_o),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[Y.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(Y.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Uo={init:function(){this.setColour(_o),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(Y.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new Y.FieldDropdown([[Y.Msg.DATAFRAME_COLUMN,"column"],[Y.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(Y.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},Yo={init:function(){this.setColour(_o),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},jo={init:function(){this.setColour(_o);var t=[[Y.Msg.TEXT_TRIM_LEFT,"right"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[Y.Msg.mixpy_PL_TEXT_TOP,"bottom"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.MIXLY_SETTING).appendField(Y.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_HOR).appendField(new Y.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_VER).appendField(new Y.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(Y.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PL_TEXT_TOOLTIP)}},Go={init:function(){this.setColour(_o),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},Xo={init:function(){this.setColour(_o),this.appendValueInput("SER").setCheck("Series").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ho={init:function(){this.setColour(_o);var t=[[Y.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[Y.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[Y.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],n=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("SER").setCheck("Series").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qo={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zo={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wo={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jo={init:function(){this.setColour(_o),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ko={init:function(){this.setColour(_o);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SET_LABEL).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(Y.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qo={init:function(){this.setColour(_o);var t=[[Y.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[Y.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_DISPLAY_DRAW).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:Y.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},Zo={init:function(){this.setColour(_o);var t=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_SCATTER).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(Y.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(t),"DOT"),this.appendDummyInput().appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},ta={init:function(){this.setColour(_o);var t=[[Y.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[Y.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[Y.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],n=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_XY).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},ea={init:function(){this.setColour(_o);var t=[[Y.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[Y.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_BAR).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(Y.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new Y.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},na={init:function(){this.setColour(_o);var t=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[Y.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PIE).appendField(Y.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(Y.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new Y.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new Y.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},ia={init:function(){this.setColour(_o),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_HIST).appendField(Y.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(Y.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sa={init:function(){this.setColour(_o);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_SETTING).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_TICKS).appendField(Y.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},ra={init:function(){this.setColour(_o),this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT).appendField(Y.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},oa={init:function(){this.setColour(_o),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},aa={init:function(){this.setColour(_o);var t=[[Y.Msg.TEXT_TRIM_LEFT,"right"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[Y.Msg.mixpy_PL_TEXT_TOP,"bottom"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.MIXLY_SETTING).appendField(Y.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_HOR).appendField(new Y.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_VER).appendField(new Y.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(Y.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PL_TEXT_TOOLTIP)}},la=20,ua={init:function(){this.setColour(la),this.appendValueInput("VAR").appendField(Y.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(Y.Msg.INOUT_input_TOOLTIP)}},ca={init:function(){this.setColour(la),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Y.Msg.BLOCKPY_PRINT_TOOLTIP)}},pa={init:function(){this.setColour(la),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Y.Msg.TEXT_PRINT_TOOLTIP)}},ha={init:function(){this.setColour(la),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(Y.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},_a={init:function(){var t=[[Y.Msg.LANG_MATH_STRING,"str"],[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(la),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("VAR").appendField(Y.Msg.PROCEDURES_MUTATORCONTAINER_TITLE).setCheck(String),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{str:Y.Msg.MIXLY_MIXPY_INOUT_STR_INPUT_TOOLTIP,int:Y.Msg.MIXLY_MIXPY_INOUT_INT_INPUT_TOOLTIP,float:Y.Msg.MIXLY_MIXPY_INOUT_FLOAT_INPUT_TOOLTIP}[t]}))}},da={init:function(){this.setColour(la),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Y.icons.MutatorIcon(["inout_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("inout_print_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,n){return"("+t+" <= "+e+") and "+l()+"("+t+", "+e+", "+n+") or "+u()+"("+t+", "+e+", "+n+")"},Y.isNumber(i)&&Y.isNumber(s)&&Y.isNumber(r))i=parseFloat(i),s=parseFloat(s),r=Math.abs(parseFloat(r)),0==i%1&&0==s%1&&0==r%1?(i<=s?(s++,t=0==i&&1==r?s:i+", "+s,1!=r&&(t+=", "+r)):t=i+", "+--s+", -"+r,t="range("+t+")"):(t=i",GTE:">="};const yp=function(t,e){var n=this.getFieldValue("OP"),i="&&"==n?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",i)||"False",r=e.valueToCode(this,"B",i)||"False";if("AND"==n)var o=s+" and "+r;else if("OR"==n)o=s+" or "+r;else if("NOR"==n)o="not("+s+"^"+r+")";else o=s+"^"+r;return[o,i]},vp=function(t,e){var n=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",n)||"False"),n]},$p=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},wp=function(t,e){return["None",e.ORDER_ATOMIC]},Ep=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+n+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Ip=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Ap=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Op=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Mp=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Cp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Rp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},xp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Np=function(t,e){var n=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+n+")\n"},Lp=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"()",e.ORDER_ATOMIC]},Dp=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Fp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Pp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Bp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Vp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Up=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Yp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},jp=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Gp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Xp=function(t,e){var n=this.getFieldValue("MODE"),i=0;return i="start"==n?0:"current"==n?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+i+")\n"},Hp=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},qp=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},zp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Wp=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Jp=function(t,e){e.definitions_.import_os="import os";var n=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",e.ORDER_ATOMIC]},Kp=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Qp=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Zp=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("NAME"),Y.Procedures.NAME_TYPE),i=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(i=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var r=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Nh=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+n+"\n"},Lh=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var s="<"+i+'>\n\t\n'+n+"\n";else s="<"+i+">\n"+n+"\n";return s},Dh=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+n+"\n"},Fh=function(t,e){var n=e.statementToCode(this,"DO"),i=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+i+" >\n"+n+"\n"},Ph=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Bh=function(t,e){return'"},Vh=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Uh=function(){return this.getFieldValue("TEXT")+"\n"},Yh=function(t){return t.getFieldValue("TEXT")+"\n"},jh=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Gh=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Xh=function(){return""},Hh=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},qh=function(t,e){for(var n=t.getFieldValue("NAME"),i=t.hasReturn_,s=new Array(t.itemCount_),r=0;r6:\n print("路线错乱!程序有误!")\n exit()\n'},p_=function(t,e){return["name[now] != '小科家'",e.ORDER_ATOMIC]},h_=function(t,e){return["name[now] != '学校'",e.ORDER_ATOMIC]},__=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},d_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var i="print('层数过高!不得高于6层!')\nexit()\n";else i="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return i},f_=function(t,e){var n=e.valueToCode(this,"FROM_NUM",e.ORDER_ATOMIC)||"0",i=e.valueToCode(this,"TO_NUM",e.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${i}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${i}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${i}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${i}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${i}*200+200, 400-len(_Hanoi[${i}])*27, 0.2)\n _Hanoi[${i}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},m_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},g_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},b_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},S_=function(t,e){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",e.ORDER_ATOMIC]},k_=function(t,e){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",e.ORDER_ATOMIC]},T_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},y_=function(t,e){return["len(list)>=2",e.ORDER_ATOMIC]},v_=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},$_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},w_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},E_=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},I_=function(t,e){var n=this.getFieldValue("NUM");return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},A_=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},O_=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},M_=function(t,e){e.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},C_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},R_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},x_=function(t,e){return["_rabbit < _head",e.ORDER_ATOMIC]},N_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},L_=function(t,e){return["_rabbit*4 + _chick*2 == _foot",e.ORDER_ATOMIC]},D_=function(t,e){e.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},F_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},P_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},B_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const i=[0,[1,3],[2,4],[5,7],[6]];var s="";return s+=`_S${n}.show()\ntime.sleep(1)\n`,s+=4!=n?`_Slen[${n}] = _Llen[${i[n][0]}] + _Llen[${i[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},V_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,e.ORDER_ATOMIC]},U_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),i="";return i+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},Y_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},j_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},G_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},X_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},H_=function(t,e){return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,e.ORDER_ATOMIC]},q_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},z_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},W_=function(t,e){e.definitions_.import_turtle="import turtle",e.definitions_.import_time="import time",e.definitions_.import_math="import math";var n=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),i=this.getFieldValue("NUM");return e.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",e.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",e.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if athis.#t.on("display",t)[0],Tm.configure({output:t=>{this.#t.run("output",{content:t})},read:this.readFile.bind(this),inputfun:this.skInput.bind(this),inputfunTakesPrompt:!0,execLimit:Number.POSITIVE_INFINITY,fileread:this.fileread.bind(this),filewrite:this.filewrite.bind(this),__future__:Tm.python3}),Tm.builtins.value=new Tm.builtin.func((function(){return Tm.ffi.remapToPy(void 0===vm?5:vm)})),Tm.builtins.set_value=new Tm.builtin.func((function(t){vm=t.v})),Tm.builtinFiles.files["./mixpy.py"]='import math\r\n\r\ndef math_map(v, al, ah, bl, bh):\r\n return bl + (bh - bl) * (v - al) / (ah - al)\r\n\r\ndef math_mean(myList):\r\n localList = [e for e in myList if type(e) == int or type(e) == float]\r\n if not localList: return\r\n return float(sum(localList)) / len(localList)\r\n\r\ndef math_median(myList):\r\n localList = sorted([e for e in myList if type(e) == int or type(e) == float])\r\n if not localList: return\r\n if len(localList) % 2 == 0:\r\n return (localList[len(localList) // 2 - 1] + localList[len(localList) // 2]) / 2.0\r\n else:\r\n return localList[(len(localList) - 1) // 2]\r\n\r\ndef math_modes(some_list):\r\n modes = []\r\n # Using a lists of [item, count] to keep count rather than dict\r\n # to avoid "unhashable" errors when the counted item is itself a list or dict.\r\n counts = []\r\n maxCount = 1\r\n for item in some_list:\r\n found = False\r\n for count in counts:\r\n if count[0] == item:\r\n count[1] += 1\r\n maxCount = max(maxCount, count[1])\r\n found = True\r\n if not found:\r\n counts.append([item, 1])\r\n for counted_item, item_count in counts:\r\n if item_count == maxCount:\r\n modes.append(counted_item)\r\n return modes\r\n\r\ndef math_standard_deviation(numbers):\r\n n = len(numbers)\r\n if n == 0: return\r\n mean = float(sum(numbers)) / n\r\n variance = sum((x - mean) ** 2 for x in numbers) / n\r\n return math.sqrt(variance)\r\n\r\ndef lists_sort(my_list, type, reverse):\r\n def try_float(s):\r\n try:\r\n return float(s)\r\n except:\r\n return 0\r\n key_funcs = {\r\n "NUMERIC": try_float,\r\n "TEXT": str,\r\n "IGNORE_CASE": lambda s: str(s).lower()\r\n }\r\n key_func = key_funcs[type]\r\n list_cpy = list(my_list)\r\n return sorted(list_cpy, key=key_func, reverse=reverse)'}readFile(t){if(void 0!==ym[t])return Tm.misceval.promiseToSuspension(fetch(ym[t]).then((t=>t.text())));if(void 0===Tm.builtinFiles||void 0===Tm.builtinFiles.files[t])throw"File not found: '"+t+"'";return Tm.builtinFiles.files[t]}fileread(t,e){return this.mixpyProject.exist(t)?this.mixpyProject.getFileContent(t):-1!==e.indexOf("w")?(this.mixpyProject.add(t,"",1),""):null}filewrite(t,e){var n=t.name;this.mixpyProject.modify(n,e),this.mixpyProject.select(n)}skInput(t){return new Promise(((e,n)=>{this.#t.run("input",{content:{prompt:t},resolve:e,reject:n})}))}reset(){Tm.execLimit=Number.POSITIVE_INFINITY,Tm.TurtleGraphics.reset&&Tm.TurtleGraphics.reset()}kill(){window.SPRITE.kill(),Tm.execLimit=0,this.executionEnd_()}step(t,e,n,i){if(".py"==i){var s=this.executionBuffer.step,r=this.parseGlobals(t);this.executionBuffer.trace.push({step:s,filename:i,line:e,column:n,properties:r.properties,modules:r.modules}),this.executionBuffer.step=s+1,this.executionBuffer.last_step=s+1,this.executionBuffer.line_number=e}}analyzeVariables(){if(""==this.main.model.programs.__main__().trim())return{}}analyze(){return this.main.model.execution.status("analyzing"),""!=this.main.model.programs.__main__().trim()||(this.main.components.feedback.emptyProgram("You haven't written any code yet!"),!1)}run(t){this.reset(),-1===t.indexOf("import sprite")&&-1===t.indexOf("from sprite import")||window.SPRITE.runit(Tm.TurtleGraphics.target),this.programStatus.running=!0,Tm.misceval.asyncToPromise((()=>Tm.importMainWithBody("",!1,t,!0))).then((()=>{window.SPRITE.running=!1,this.programStatus.running=!1,this.#t.run("finished")})).catch((t=>{j.Debug.error(t),window.SPRITE.running=!1,this.programStatus.running=!1,this.#t.run("error",t);var e=function(t){return"string"==typeof t?t:void 0!==t.tp$str?t.tp$str().v:t.name+": "+t.message}(t);this.#t.run("finished"),-1===e.indexOf("TimeLimitError")&&this.executionEnd_()}))}setupEnvironment(t,e,n,i,s){var r=this.main.model;this._backup_execution=Tm.afterSingleExecution,Tm.afterSingleExecution=void 0,Tm.builtins.get_output=new Tm.builtin.func((function(){return Tm.builtin.pyCheckArgs("get_output",arguments,0,0),Tm.ffi.remapToPy(r.execution.output())})),Tm.builtins.reset_output=new Tm.builtin.func((function(){Tm.builtin.pyCheckArgs("reset_output",arguments,0,0),r.execution.output.removeAll()})),Tm.builtins.log=new Tm.builtin.func((function(t){Tm.builtin.pyCheckArgs("log",arguments,1,1),console.log(t)})),Tm.builtins._trace=e,Tm.builtins._final_values=s,Tm.builtins.code=Tm.ffi.remapToPy(t),Tm.builtins.set_success=this.instructor_module.set_success,Tm.builtins.set_feedback=this.instructor_module.set_feedback,Tm.builtins.set_finished=this.instructor_module.set_finished,Tm.builtins.count_components=this.instructor_module.count_components,Tm.builtins.no_nonlist_nums=this.instructor_module.no_nonlist_nums,Tm.builtins.only_printing_properties=this.instructor_module.only_printing_properties,Tm.builtins.calls_function=this.instructor_module.calls_function,Tm.builtins.get_property=this.instructor_module.get_property,Tm.builtins.get_value_by_name=this.instructor_module.get_value_by_name,Tm.builtins.get_value_by_type=this.instructor_module.get_value_by_type,Tm.builtins.parse_json=this.instructor_module.parse_json,Tm.skip_drawing=!0,r.settings.mute_printer(!0)}disposeEnvironment(){Tm.afterSingleExecution=this._backup_execution,Tm.builtins.get_output=void 0,Tm.builtins.reset_output=void 0,Tm.builtins.log=void 0,Tm.builtins._trace=void 0,Tm.builtins.trace=void 0,Tm.builtins.code=void 0,Tm.builtins.set_success=void 0,Tm.builtins.set_feedback=void 0,Tm.builtins.set_finished=void 0,Tm.builtins.count_components=void 0,Tm.builtins.calls_function=void 0,Tm.builtins.get_property=void 0,Tm.builtins.get_value_by_name=void 0,Tm.builtins.get_value_by_type=void 0,Tm.builtins.no_nonlist_nums=void 0,Tm.builtins.only_printing_properties=void 0,Tm.builtins.parse_json=void 0,Tm.skip_drawing=!1,vm=void 0,this.main.model.settings.mute_printer(!1)}parseGlobals(t){var e=Array(),n=Array();for(var i in t){var s=t[i];if("__name__"!==i&&"__doc__"!==i){i=i.replace("_$rw$","").replace("_$rn$","");var r=this.parseValue(i,s);null!==r?e.push(r):s.constructor==Tm.builtin.module&&n.push(s.$d.__name__.v)}}return{properties:e,modules:n}}parseValue(t,e){if(null==e)return{name:t,type:"Unknown",value:"Undefined"};switch(e.constructor){case Tm.builtin.func:return{name:t,type:"Function",value:void 0!==e.func_code.co_varnames?" Arguments: "+e.func_code.co_varnames.join(", "):" No arguments"};case Tm.builtin.module:return null;case Tm.builtin.str:return{name:t,type:"String",value:e.$r().v};case Tm.builtin.none:return{name:t,type:"None",value:"None"};case Tm.builtin.bool:return{name:t,type:"Boolean",value:e.$r().v};case Tm.builtin.nmber:return{name:t,type:"int"==e.skType?"Integer":"Float",value:e.$r().v};case Tm.builtin.int_:return{name:t,type:"Integer",value:e.$r().v};case Tm.builtin.float_:return{name:t,type:"Float",value:e.$r().v};case Tm.builtin.tuple:return{name:t,type:"Tuple",value:e.$r().v};case Tm.builtin.list:return e.v.length<=20?{name:t,type:"List",value:e.$r().v,exact_value:e}:{name:t,type:"List",value:"[... "+e.v.length+" elements ...]",exact_value:e};case Tm.builtin.dict:return{name:t,type:"Dictionary",value:e.$r().v};case Number:return{name:t,type:e%1==0?"Integer":"Float",value:e};case String:return{name:t,type:"String",value:e};case Boolean:return{name:t,type:"Boolean",value:e?"True":"False"};default:return{name:t,type:null==e.tp$name?e:e.tp$name,value:null==e.$r?e:e.$r().v}}}}const wm=$;var Em=n.n(wm);class Im extends j.PageBase{static{j.HTMLTemplate.add("html/statusbar/statusbar-image.html",new j.HTMLTemplate('\r\n
\r\n
\r\n
')),this.init=function(){j.StatusBarsManager.typesRegistry.register(["images"],Im);const t=j.Workspace.getMain().getStatusBarsManager();t.add("images","images","图像"),t.changeTo("output")}}constructor(){super();const t=Em()(j.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(t)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(t){const e=this.getContent(),n=function(t){t.style.width="auto",t.style.height="auto",t.style.maxWidth="100%",t.style.maxHeight="100%"};this.clean();let i=t.content,s=null,r=null;switch(t.display_type){case"p5":i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",new MutationObserver((function(t){t.forEach((t=>t.addedNodes.forEach((t=>{const e=t;null!=e.tagName&&["canvas","video"].includes(e.tagName.toLowerCase())&&n(e)}))))})).observe(i,{childList:!0}),i.querySelectorAll("canvas,video").forEach(n),e.append(i);break;case"matplotlib":s=i.querySelector("canvas"),s&&(i=s),i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"ocaml-canvas":i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"turtle":i.setAttribute("width","100%"),i.setAttribute("height","100%"),e.append(i.outerHTML);break;case"sympy":e.append(t.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let t=document.createElement("script");t.type="text/javascript",t.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(t)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in t.content){let i=t.content[n];"image/png"===n&&(i=''),e.append(i);break}break;case"tutor":if(e.append(Em()(t.content.replace("overflow-y%3A%20hidden%3B",""))),r=this.getContent()[0].getElementsByTagName("iframe")[0],null==r)return;r.style.maxHeight=r.style.minHeight="100%",new IntersectionObserver(((t,e)=>{const n=t[0];n&&!n.isIntersecting||(r.contentWindow?.postMessage({type:"redraw"},"*"),e.disconnect())})).observe(r);break;default:console.error(`Not supported node type '${t.display_type}' in eval.display result processing.`)}}}const Am=Im;class Om{static{this.pythonShell=null,this.init=async function(){Am.init(),this.pythonShell=new Om},this.run=function(){const t=j.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(t)},this.stop=function(){return this.pythonShell.stop()}}#e=null;#n=null;#i=null;#s={row:0,column:0};#r="";#o=null;#a=null;#l=!1;#u=!1;#c=null;#p=()=>this.#h();#_=[{name:"REPL-Enter",bindKey:"Enter",exec:t=>{if(t.getSession().selection.getCursor().row===this.#s.row){const t=this.#e.getEndPos();let e=this.#e.getValueRange(this.#s,t);return e=e.replace(this.#r,""),this.#o?.(e),this.#o=null,this.#a=null,this.#e.addValue("\n"),this.#d(),!0}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:t=>{const e=t.getSession().selection.getCursor();return e.row{this.#u=!1,this.#e.addValue(`\n==${j.Msg.Lang["shell.finish"]}==`)})),t.bind("output",(t=>{this.#e.addValue(t.content)})),t.bind("error",(t=>{this.#u=!1,this.#e.addValue(`\n${t.toString()}\n`)})),t.bind("input",(t=>{const e=String(t?.content?.prompt);this.#e.addValue(`>>> ${e}`),this.#r=e,this.#o=t.resolve,this.#a=t.reject,this.#m()})),t.bind("display",(t=>{this.#i.changeTo("images"),this.#n.display(t)}))}#h(){const t=this.#e.getEditor(),e=t.getSession().selection.getCursor();t.setReadOnly(e.rowsetTimeout(e,t)))}}const Mm=Om,Cm={init:function(){Mm.init();const t=j.app.getNav();t.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:Y.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{Mm.run().catch(j.Debug.error)},scopeType:j.Nav.Scope.LEFT,weight:4}),t.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:Y.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{Mm.stop().catch(j.Debug.error)},scopeType:j.Nav.Scope.LEFT,weight:5})}};Cm.init(),Object.assign(Y.Variables,X),Object.assign(Y.Procedures,q),Y.Python=J,Y.generator=J,j.Profile.default={},Object.assign(Y.Blocks,t,e,i,s,r,o,a,l,u,c,p,h,_,d,f,m,g,b,S,k),Object.assign(Y.Python.forBlock,T,y,v,w,E,I,A,O,M,C,R,x,N,L,D,F,P,B,V,U)})()})(); \ No newline at end of file +class z{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var n=t.split(","),i=0;i0?e.join("\n")+n.join("\n")+i.join("\n")+o.join("\n")+a.join("")+t+"while True:\n"+l.join("")+u.join("\n"):e.join("\n")+n.join("\n")+i.join("\n")+o.join("\n")+a.join("")+t+u.join("\n")},J.scrubNakedValue=function(t){return t+"\n"},J.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},J.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},J.scrub_=function(t,e,n){var i="";if(!t.outputConnection||!t.outputConnection.targetConnection){(r=t.getCommentText())&&(r=Y.utils.string.wrap(r,J.COMMENT_WRAP-3),i+=J.prefixLines(r+"\n","# "));for(var s=0;s0?"int("+a+" + "+s+")":s<0?"int("+a+" - "+-s+")":"int("+a+")",i&&(a="-"+a)),a};const K=330,Q={init:function(){this.setColour(K),this.appendDummyInput().appendField(new Y.FieldTextInput(""),"VAR"),this.setOutput(!0),this.setTooltip(Y.Msg.VARIABLES_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){W.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},Z={init:function(){this.setColour(K),this.appendValueInput("VALUE").appendField(new Y.FieldTextInput(""),"VAR").appendField(Y.Msg.MIXLY_VALUE2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.VARIABLES_SET_TOOLTIP)},getVars:function(){var t=this.getFieldValue("VAR");return null==t?[]:t.split(",")},renameVar:function(t,e){W.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},tt={init:function(){this.setColour(K);var t=[[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.LANG_MATH_FLOAT,"float"],[Y.Msg.LANG_MATH_BOOLEAN,"bool"],[Y.Msg.LANG_MATH_STRING,"str"],[Y.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[Y.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[Y.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[Y.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[Y.Msg.LANG_MATH_BYTE,"bytes"]];this.appendValueInput("MYVALUE").appendField(new Y.FieldDropdown(t),"OP"),this.setOutput(!0)}},et={init:function(){this.setColour(K),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_PYTHON_GLOBAL).setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Y.Msg.TEXT_PRINT_TOOLTIP)}},nt={init:function(){this.setColour(K),this.appendValueInput("DATA").appendField(Y.Msg.MICROBIT_PYTHON_TYPE),this.setOutput(!0),this.setTooltip(Y.Msg.MICROBIT_PYTHON_TYPE)}},it={init:function(){this.setColour(K),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new Y.FieldDropdown([[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.MIXLY_MICROBIT_TYPE_FLOAT,"float"],[Y.Msg.MIXLY_MICROBIT_TYPE_STRING,"str"],[Y.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[Y.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[Y.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[Y.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[Y.Msg.LANG_MATH_BYTE,"bytes"],[Y.Msg.LOGIC_NULL,"type(None)"]]),"type"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type");return Y.Msg.MICROBIT_controls_TypeLists+{int:Y.Msg.LANG_MATH_INT,float:Y.Msg.MIXLY_MICROBIT_TYPE_FLOAT,str:Y.Msg.MIXLY_MICROBIT_TYPE_STRING,list:Y.Msg.MIXLY_MICROBIT_TYPE_LIST,tuple:Y.Msg.MIXLY_MICROBIT_TYPE_TUPLE,dict:Y.Msg.MIXLY_MICROBIT_TYPE_DICT,set:Y.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,image:Y.Msg.MIXLY_MICROBIT_IMAGE,bytes:Y.Msg.LANG_MATH_BYTE,NoneType:Y.Msg.LOGIC_NULL}[e]}))}},st={init:function(){this.setColour(K),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setMutator(new Y.icons.MutatorIcon(["lists_zip_item"],this)),this.setTooltip(Y.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_zip_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Y.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Y.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.CONTROLS_IF_MSG_ELSE);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_if_elseif");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var r=t.newBlock("controls_if_else");r.initSvg(),n.connect(r.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],r=null;n;){switch(n.type){case"controls_if_elseif":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_if_else":this.elseCount_++,r=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,r)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_if_elseif":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),r=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(r.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Y.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Y.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},dt={init:function(){this.setColour(lt),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.PYTHON_RANGE).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ft={init:function(){this.setColour(lt),this.appendValueInput("LIST").setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Y.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Y.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},mt={init:function(){this.setColour(lt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Y.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Y.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Y.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Y.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Y.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},gt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Y.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Y.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,n=[],i=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?n[s]=e.getInputTargetBlock("IF"+s).previousConnection:n[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?i[s]=e.getInputTargetBlock("DO"+s).previousConnection:i[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.MIXLY_PYTHON_FINALLY);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"IF"+s);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var n=e.getInput("STACK").connection,i=1;i<=this.elseifCount_;i++){var s=t.newBlock("controls_except");s.initSvg(),n.connect(s.previousConnection),n=s.nextConnection}if(this.elseCount_){var r=t.newBlock("controls_finally");r.initSvg(),n.connect(r.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var n=t.getInputTargetBlock("STACK"),i=[null],s=[null],r=null;n;){switch(n.type){case"controls_except":this.elseifCount_++,i.push(n.valueConnection_),s.push(n.statementConnection_);break;case"controls_finally":this.elseCount_++,r=n.statementConnection_;break;default:throw Error("Unknown block type: "+n.type)}n=n.nextConnection&&n.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(i,s,r)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=1;e;){switch(e.type){case"controls_except":var i=this.getInput("IF"+n),s=this.getInput("DO"+n);e.valueConnection_=i&&i.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,n++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],n=null;this.getInput("ELSE")&&(n=this.getInput("ELSE").connection.targetConnection);for(var i=1;this.getInput("IF"+i);){var s=this.getInput("IF"+i),r=this.getInput("DO"+i);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(r.connection.targetConnection),i++}this.updateShape_(),this.reconnectChildBlocks_(t,e,n)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Y.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,n){for(var i=1;i<=this.elseifCount_;i++)t[i]&&t[i].reconnect(this,"IF"+i),e[i]&&e[i].reconnect(this,"DO"+i);n&&n.reconnect(this,"ELSE")}},bt={init:function(){this.setColour(lt);var t=new Y.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Y.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Y.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},St={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Y.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Y.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},kt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Y.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Y.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};mt.OPERATORS=[[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],bt.OPERATORS=[[Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Y.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Tt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Y.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},yt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},vt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Y.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(lt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},wt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Y.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Et={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Y.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},It={init:function(){this.jsonInit({message0:Y.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:lt,tooltip:Y.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Y.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},At={init:function(){this.setColour(lt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Y.Msg.MIXLY_STAT),this.setOutput(!0)}},Ot={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Mt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Y.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},Ct={init:function(){this.appendDummyInput().appendField(Y.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Y.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Y.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Y.FieldDropdown([[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Y.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(lt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Rt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Nt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Lt={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET+Y.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.PROCEDURES_DEFRETURN_RETURN+Y.Msg.MIXLY_GET_UNIQUE_IDEN)}},Dt={init:function(){this.setColour(lt),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Y.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ft={init:function(){this.setColour(lt),this.appendDummyInput().appendField(Y.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Pt=230;Y.FieldTextInput.math_number_validator=function(t){return String(t)},Y.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Bt={init:function(){this.setColour(Pt),this.appendDummyInput().appendField(new Y.FieldTextInput("0",Y.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MATH_NUMBER_TOOLTIP)}},Vt={init:function(){this.setColour(Pt);this.appendDummyInput("").appendField(Y.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Y.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ut={init:function(){this.setColour(Pt);this.appendDummyInput("").appendField(Y.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Y.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Y.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Yt={init:function(){this.setColour(Pt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Y.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Y.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Y.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},jt={init:function(){this.setColour(Pt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Y.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Y.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Y.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Y.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Y.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Gt={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Y.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Xt={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Y.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Y.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Y.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Y.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Y.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Y.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Y.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Y.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ht={init:function(){var t=[[Y.Msg.MATH_BIN,"bin"],[Y.Msg.MATH_OCT,"oct"],[Y.Msg.MATH_HEX,"hex"]];this.setColour(Pt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Y.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Y.Msg.MATH_DEC_TOOLTIP_BIN,oct:Y.Msg.MATH_DEC_TOOLTIP_OCT,hex:Y.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},qt={init:function(){var t=[[Y.Msg.LANG_MATH_TO_ROUND,"round"],[Y.Msg.LANG_MATH_TO_CEIL,"ceil"],[Y.Msg.LANG_MATH_TO_FLOOR,"floor"],[Y.Msg.MATH_ABS,"fabs"],[Y.Msg.MATH_SQRT,"sqrt"]];this.setColour(Pt),this.appendValueInput("A").setCheck(Number).appendField(new Y.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Y.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Y.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Y.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Y.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Y.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Y.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},zt={init:function(){var t=[[Y.Msg.MIXLY_MAX,"max"],[Y.Msg.MIXLY_MIN,"min"]];this.setColour(Pt),this.appendValueInput("A").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(new Y.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Y.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Y.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Y.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Wt={init:function(){var t=[[Y.Msg.MATH_TWO,"two"],[Y.Msg.MATH_EIGHT,"eight"],[Y.Msg.MATH_TEN,"ten"],[Y.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Pt),this.appendDummyInput("").appendField(Y.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Y.FieldDropdown(t),"OP").appendField(Y.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Y.Msg.MATH_ZHW).appendField(new Y.FieldDropdown(t),"OP2").appendField(Y.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),n={two:Y.Msg.MATH_Before_two,eight:Y.Msg.MATH_Before_eight,ten:Y.Msg.MATH_Before_ten,sixteen:Y.Msg.MATH_Before_sixteen},i=e.getFieldValue("OP2"),s={two:Y.Msg.MATH_Behind_two,eight:Y.Msg.MATH_Behind_eight,ten:Y.Msg.MATH_Behind_ten,sixteen:Y.Msg.MATH_Behind_sixteen};return n[t]+s[i]}))}},Jt={init:function(){var t=[[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Pt),this.setOutput(!0,Number),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Y.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Y.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),n={int:Y.Msg.LANG_MATH_INT,float:Y.Msg.LANG_MATH_FLOAT_RANDOM};return Y.Msg.MATH_RANDOM_INT_TOOLTIP+n[t]}))}},Kt={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Y.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Y.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Y.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Y.Msg.MATH_CONSTRAIN_TOOLTIP)}},Qt={init:function(){this.setColour(Pt),this.appendValueInput("NUM",Number).appendField(Y.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Y.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Y.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Zt={init:function(){this.setColour(Pt),this.appendDummyInput().appendField(new Y.FieldTextInput("0",Y.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Y.Msg.MATH_NUMBER_TOOLTIP)}},te={init:function(){this.setColour(Pt),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ee={init:function(){this.setColour(Pt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Y.Msg.MATH_ROUND).appendField(Y.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Y.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Y.Msg.MATH_ROUND_NEW_TOOLTIP)}},ne={init:function(){var t=[[Y.Msg.MIXLY_TO_INT,"int"],[Y.Msg.MIXLY_TO_FLOAT,"float"],[Y.Msg.MIXLY_TO_BITES,"b"],[Y.Msg.LANG_MATH_BYTE+Y.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Pt),this.appendValueInput("VAR").appendField(new Y.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Y.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Y.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Y.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ie={init:function(){var t=[[Y.Msg.MIXLY_TO_INT,"int"],[Y.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Pt),this.appendValueInput("VAR").appendField(new Y.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Y.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Y.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},se=Qt,re={init:function(){this.setColour(Pt),this.appendValueInput("VAR").appendField(Y.Msg.LANG_MATH_BYTE+Y.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},oe={init:function(){this.setColour(Pt),this.itemCount_=1,this.setMutator(new Y.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Y.Msg.MIXLY_PRODUCT+Y.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Y.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Y.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Y.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const he={init:function(){this.setColour(ue),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Y.FieldTextInput("",Y.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Y.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Y.FieldImage(e,7,12,'"')}},_e={init:function(){this.setColour(ue),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Y.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},de={init:function(){this.setColour(ue),this.appendValueInput("VAR").setCheck(Number).appendField(Y.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},fe={init:function(){this.setColour(ue),this.appendValueInput("VAR").setCheck(String).appendField(Y.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},me={init:function(){this.setColour(ue),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ge={init:function(){this.setColour(ue),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},be={init:function(){this.WHERE_OPTIONS=[[Y.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Y.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Y.Msg.TEXT_GET_INDEX_RANDOM+1+Y.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Y.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ue),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Y.Msg.LISTS_GET_INDEX_GET,"MODE"),Y.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Y.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=t.getFieldValue("WHERE"),i="";switch(e+" "+n){case"GET FROM_START":case"GET FROM_END":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":i=Y.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=n&&"FROM_END"!=n||(i+=" "+Y.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Y.Msg.ONE_BASED_INDEXING?"#1":"#0")),i}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),n={FROM_START:Y.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Y.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Y.Msg.TEXT_GET_INDEX_RANDOM};return Y.Msg.PROCEDURES_DEFRETURN_RETURN+Y.Msg.MIXLY_MICROBIT_TYPE_STRING+n[t]+"n"+Y.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Y.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Y.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Y.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Y.FieldDropdown(this.WHERE_OPTIONS,(function(e){var n="FROM_START"==e||"FROM_END"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Y.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Se={init:function(){this.setHelpUrl(Y.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ue),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Y.Msg.LISTS_GET_INDEX_GET+" "+Y.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Y.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Y.Msg.PROCEDURES_DEFRETURN_RETURN+Y.Msg.MIXLY_MICROBIT_TYPE_STRING+Y.Msg.LISTS_GET_INDEX_FROM_START+"n"+Y.Msg.TEXT_CHARAT2)}},ke={init:function(){this.setHelpUrl(Y.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ue),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Y.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Y.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Te={init:function(){this.WHERE_OPTIONS_1=[[Y.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Y.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Y.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Y.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Y.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Y.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Y.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ue),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Y.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Y.INPUT_VALUE;t.setAttribute("at1",e);var n=this.getInput("AT2").type==Y.INPUT_VALUE;return t.setAttribute("at2",n),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),n="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,n)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Y.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Y.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var n=new Y.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(n){var i="FROM_START"==n||"FROM_END"==n;if(i!=e){var s=this.sourceBlock_;return s.updateAt_(t,i),s.setFieldValue(n,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(n,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},ye={init:function(){this.setHelpUrl(Y.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ue),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Y.Msg.LISTS_GET_INDEX_GET+" "+Y.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Y.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Y.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Y.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},ve={init:function(){var t=[[Y.Msg.MIXLY_EQUALS,"==="],[Y.Msg.MIXLY_STARTSWITH,"startswith"],[Y.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ue),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Y.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},$e={init:function(){this.setColour(ue),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Y.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_COMPARETO_HELP)}},we={init:function(){var t=[[Y.Msg.TEXT_UPPER,"upper"],[Y.Msg.TEXT_TITLE,"title"],[Y.Msg.TEXT_CAPITALIZE,"capitalize"],[Y.Msg.TEXT_SWAPCASE,"swapcase"],[Y.Msg.TEXT_LOWER,"lower"]];this.setColour(ue),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Y.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Y.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Y.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Y.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Y.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Y.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ee={init:function(){var t=[[Y.Msg.TEXT_LJUST,"ljust"],[Y.Msg.TEXT_CENTER,"center"],[Y.Msg.TEXT_RJUST,"rjust"]];this.setColour(ue),this.appendValueInput("VAR").appendField(new Y.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Y.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Y.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ie={init:function(){this.setColour(ue),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Y.Msg.MIXLY_MID+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Y.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ae={init:function(){this.setColour(ue),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Oe={init:function(){this.setColour(ue),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Y.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Y.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Me={init:function(){this.setColour(ue),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Y.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Y.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ce={init:function(){var t=[[Y.Msg.TEXT_TRIM_BOTH,"strip"],[Y.Msg.TEXT_TRIM_LEFT,"lstrip"],[Y.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ue),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Y.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Y.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Y.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Y.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Y.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Y.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Re={init:function(){this.setColour(ue),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Y.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Y.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},On={init:function(){this.setColour(In),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Y.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Mn={init:function(){this.setColour(In),this.appendDummyInput().appendField(Y.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Cn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_KEYS),this.setTooltip(Y.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Rn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Y.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Y.Msg.DICTS_GET_TOOLTIP)}},xn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Y.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Y.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Y.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Nn={init:function(){this.setColour(In),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Y.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Ln={init:function(){this.setColour(In),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Y.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_DELETE_TOOLTIP)}},Dn={init:function(){this.setColour(In),this.appendValueInput("DICT2").setCheck("Dict").appendField(Y.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Y.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MID),this.setTooltip(Y.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_CLEAR),this.setTooltip(Y.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_ITEMS),this.setTooltip(Y.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Bn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_VALUES),this.setTooltip(Y.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Vn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_LENGTH),this.setTooltip(Y.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Un={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.DICT_DELDICT),this.setTooltip(Y.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Yn={init:function(){this.MODE=[[Y.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Y.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Y.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Y.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Y.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Y.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Y.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Y.FieldDropdown(this.MODE,(function(e){var n="INSERT"==e;if(n!=t){var i=this.sourceBlock_;return i.updateAt_(n),i.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},jn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Y.Msg.DICTS_ADD_VALUE),this.setTooltip(Y.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Gn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Y.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Xn={init:function(){this.setColour(In),this.appendDummyInput("").appendField(new Y.FieldLabel(Y.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Y.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Y.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;ie?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Hn={init:function(){this.setColour(In),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},qn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_TO_JSON),this.setTooltip(Y.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},zn={init:function(){this.setColour(In),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Y.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Wn={init:function(){this.setColour(In),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Jn={init:function(){this.setColour(In),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_TO_JSON),this.setTooltip(Y.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Kn=210,Qn={init:function(){var t=Y.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Kn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Y.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Y.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Y.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Y.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Y.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Y.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Zn={init:function(){var t=Y.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Y.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Kn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Y.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},ti={init:function(){var t=[[Y.Msg.LOGIC_OPERATION_AND,"AND"],[Y.Msg.LOGIC_OPERATION_OR,"OR"],[Y.Msg.LOGIC_OPERATION_NOR,"NOR"],[Y.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Kn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Y.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Y.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Y.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Y.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Y.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},ei={init:function(){this.setColour(Kn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Y.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Y.Msg.LOGIC_NEGATE_TOOLTIP)}},ni={init:function(){var t=[[Y.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Y.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Kn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Y.FieldDropdown(t),"BOOL"),this.setTooltip(Y.Msg.LOGIC_BOOLEAN_TOOLTIP)}},ii={init:function(){this.setColour(Kn),this.setOutput(!0),this.appendDummyInput().appendField(Y.Msg.LOGIC_NULL),this.setTooltip(Y.Msg.LOGIC_NULL_TOOLTIP)}},si={init:function(){this.setColour(Kn),this.appendValueInput("A"),this.appendValueInput("B").appendField(Y.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Y.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},ri={init:function(){var t=[[Y.Msg.TEXT_APPEND_TO,"in"],[Y.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Kn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Y.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Y.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Y.Msg.IN)}},oi={init:function(){var t=[[Y.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Y.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Kn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Y.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},ai={init:function(){this.setColour(Kn),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},li={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Y.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ui={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_USE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,r=Y.Msg.MIXLY_BELONG;return n+{r:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+r+i+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ci={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_USE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,r=Y.Msg.MIXLY_BELONG,o=Y.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+r+i+s+o}))}},pi={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Y.Msg.MIXPY_TEXT_ENCODE).appendField(new Y.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_USE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,r=Y.Msg.MIXLY_BELONG,o=Y.Msg.PY_STORAGE_FILE_OBJECT;return n+{r:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+r+i+s+o}))}},hi={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Y.Msg.MIXLY_MICROBIT_TYPE_STRING+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},_i={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},di={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return n+{read:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+i}))}},fi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Y.Msg.MICROBIT_PYTHON_TYPE)}},mi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.HTML_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},gi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},bi={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Si={init:function(){this.setColour(0),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const ki={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Ti={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},yi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},vi={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),n=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,i=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return n+" "+{start:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+i}))}},$i={init:function(){this.setColour(0),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},wi={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Y.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Y.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Y.Msg.MIXLY_ESP32_SET+{mkdir:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Ei={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Y.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Ii={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Ai={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.HTML_FILE,"isfile"],[Y.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Y.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Y.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Y.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Oi={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Y.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Y.Msg.MIXLY_SETUP+Y.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Y.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Mi={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Y.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Ci={init:function(){var t=Y.Procedures.findLegalName("",this),e=new Y.FieldTextInput(t,Y.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Y.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Y.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Y.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Y.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Y.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Y.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Y.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Y.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Y.Events.enable()}},mutationToDom:function(t){var e=Y.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var n=0;n"),this.appendValueInput("style").appendField(Y.Msg.MIXLY_AIP_ATTR).setAlign(Y.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(Ss),this.appendDummyInput().appendField(Y.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Es={init:function(){this.setColour(Ss),this.appendDummyInput().appendField(Y.Msg.HTML_FORM_CONTENT).appendField(new Y.FieldDropdown([[Y.Msg.HTML_TEXT,"text"],[Y.Msg.HTML_EMAIL,"email"],[Y.Msg.HTML_NUMBER,"number"],[Y.Msg.HTML_PASSWORD,"password"],[Y.Msg.HTML_CHECKBOX,"checkbox"],[Y.Msg.HTML_RADIOBUTTON,"radiobutton"],[Y.Msg.HTML_BUTTON,"button"],[Y.Msg.HTML_COLOUR,"colour"],[Y.Msg.HTML_DATE,"date"],[Y.Msg.HTML_LOCALTIME,"local time"],[Y.Msg.HTML_FILE,"file"],[Y.Msg.HTML_HIDDEN,"hidden"],[Y.Msg.HTML_IMAGE,"image"],[Y.Msg.HTML_MONTH,"month"],[Y.Msg.HTML_RANGE,"range"],[Y.Msg.HTML_RESET,"reset"],[Y.Msg.HTML_SEARCH,"search"],[Y.Msg.HTML_SUBMIT,"submit"],[Y.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Y.Msg.HTML_TIME,"time"],[Y.Msg.HTML_URL,"url"],[Y.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Y.Msg.HTML_NAME).appendField(new Y.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Y.Msg.HTML_VALUE).appendField(new Y.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Y.Msg.MIXLY_AIP_ATTR).setAlign(Y.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Is={init:function(){this.setColour(Ss),this.appendDummyInput().appendField(new Y.FieldTextInput("property"),"KEY").appendField(":").appendField(new Y.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},As={init:function(){this.setColour(Ss),this.appendDummyInput().appendField(new Y.FieldTextInput("property"),"KEY").appendField(":").appendField(new Y.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Os={init:function(){this.setColour(Ss),this.appendDummyInput().appendField(Y.Msg.HTML_TEXT).appendField(new Y.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ms=160,Cs={init:function(){this.setColour(Ms),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Y.FieldTable(""),"TEXT")}},Rs={init:function(){this.setColour(Ms),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Y.FieldMultilineInput(""),"TEXT")}},xs={init:function(){this.setColour(Ms),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Y.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ns={init:function(){this.setColour(Ms),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Ls={init:function(){this.setColour(Ms),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Y.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Ds={init:function(){this.setColour(Ms),this.appendValueInput("VALUE").appendField(Y.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},Fs={init:function(){this.setColour(Ms),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Y.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Y.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Y.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Io={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ao={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Oo={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mo={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Co={init:function(){this.setColour(mo);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SET_LABEL).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(Y.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ro={init:function(){this.setColour(mo),this.appendValueInput("FROM").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_SPLITBYDOU).appendField(Y.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Y.inputs.Align.RIGHT).appendField(Y.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},xo={init:function(){this.setColour(mo);var t=[[Y.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[Y.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_DISPLAY_DRAW).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:Y.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},No={init:function(){this.setColour(mo);var t=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],e=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_SCATTER).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(Y.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},Lo={init:function(){this.setColour(mo);var t=[[Y.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[Y.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[Y.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],n=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[Y.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_XY).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Do={init:function(){this.setColour(mo);var t=[[Y.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[Y.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_BAR).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(Y.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new Y.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Fo={init:function(){this.setColour(mo);var t=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[Y.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PIE).appendField(Y.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(Y.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new Y.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new Y.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Po={init:function(){this.setColour(mo),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_HIST).appendField(Y.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(Y.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bo={init:function(){this.setColour(mo);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_SETTING).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_TICKS).appendField(Y.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},Vo={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[Y.Msg.LANG_MATH_TO_ROUND,"round"],[Y.Msg.LANG_MATH_TO_CEIL,"ceil"],[Y.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(mo),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(Y.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new Y.FieldDropdown(t),"OP"),this.setTooltip(Y.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},Uo={init:function(){this.setColour(mo),this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT).appendField(Y.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Yo={init:function(){this.setColour(mo),this.appendValueInput("FILENAME").appendField(Y.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new Y.FieldDropdown([[Y.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[Y.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(Y.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Y.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Y.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},jo={init:function(){this.setColour(mo),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Y.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(Y.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new Y.FieldDropdown([[Y.Msg.DATAFRAME_COLUMN,"column"],[Y.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(Y.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},Go={init:function(){this.setColour(mo),this.appendValueInput("FILE").setCheck(String).appendField(Y.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},Xo={init:function(){this.setColour(mo);var t=[[Y.Msg.TEXT_TRIM_LEFT,"right"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[Y.Msg.mixpy_PL_TEXT_TOP,"bottom"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.MIXLY_SETTING).appendField(Y.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_HOR).appendField(new Y.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_VER).appendField(new Y.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(Y.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PL_TEXT_TOOLTIP)}},Ho={init:function(){this.setColour(mo),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(Y.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},qo={init:function(){this.setColour(mo),this.appendValueInput("SER").setCheck("Series").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zo={init:function(){this.setColour(mo);var t=[[Y.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[Y.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[Y.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],n=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("SER").setCheck("Series").appendField(Y.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wo={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jo={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ko={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qo={init:function(){this.setColour(mo),this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zo={init:function(){this.setColour(mo);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.blockpy_PYLAB_SET_LABEL).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(Y.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ta={init:function(){this.setColour(mo);var t=[[Y.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[Y.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_DISPLAY_DRAW).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:Y.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},ea={init:function(){this.setColour(mo);var t=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_SCATTER).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(Y.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(t),"DOT"),this.appendDummyInput().appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},na={init:function(){this.setColour(mo);var t=[[Y.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[Y.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[Y.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[Y.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[Y.Msg.COLOUR_RGB_BLUE,"b"],[Y.Msg.COLOUR_RGB_GREEN,"g"],[Y.Msg.COLOUR_RGB_RED,"r"],[Y.Msg.COLOUR_CYAN,"c"],[Y.Msg.COLOUR_MAGENTA,"m"],[Y.Msg.COLOUR_YELLOW,"y"],[Y.Msg.COLOUR_BLACK,"k"],[Y.Msg.COLOUR_WHITE,"w"]],n=[[Y.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[Y.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[Y.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PLOT_XY).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new Y.FieldDropdown(n),"DOT"),this.appendDummyInput("").appendField(Y.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new Y.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},ia={init:function(){this.setColour(mo);var t=[[Y.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[Y.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_BAR).appendField(Y.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(Y.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new Y.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(Y.Msg.HTML_COLOUR).appendField(new Y.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},sa={init:function(){this.setColour(mo);var t=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[Y.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[Y.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[Y.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_PIE).appendField(Y.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(Y.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new Y.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new Y.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},ra={init:function(){this.setColour(mo),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_HIST).appendField(Y.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(Y.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oa={init:function(){this.setColour(mo);var t=[[Y.Msg.PYLAB_LABEL_X,"x"],[Y.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(Y.Msg.MIXLY_SETTING).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(Y.Msg.mixpy_PYLAB_TICKS).appendField(Y.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(Y.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},aa={init:function(){this.setColour(mo),this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT).appendField(Y.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},la={init:function(){this.setColour(mo),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Y.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},ua={init:function(){this.setColour(mo);var t=[[Y.Msg.TEXT_TRIM_LEFT,"right"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[Y.Msg.mixpy_PL_TEXT_TOP,"bottom"],[Y.Msg.mixpy_PL_TEXT_CENTER,"center"],[Y.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(Y.Msg.MIXLY_SETTING).appendField(Y.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(Y.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_HOR).appendField(new Y.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(Y.Msg.mixpy_PL_TEXT_VER).appendField(new Y.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(Y.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.mixpy_PL_TEXT_TOOLTIP)}},ca=20,pa={init:function(){this.setColour(ca),this.appendValueInput("VAR").appendField(Y.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(Y.Msg.INOUT_input_TOOLTIP)}},ha={init:function(){this.setColour(ca),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Y.Msg.BLOCKPY_PRINT_TOOLTIP)}},_a={init:function(){this.setColour(ca),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Y.Msg.TEXT_PRINT_TOOLTIP)}},da={init:function(){this.setColour(ca),this.appendValueInput("VAR").appendField(Y.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(Y.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Y.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},fa={init:function(){var t=[[Y.Msg.LANG_MATH_STRING,"str"],[Y.Msg.LANG_MATH_INT,"int"],[Y.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ca),this.appendDummyInput("").appendField(Y.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Y.FieldDropdown(t),"DIR"),this.appendValueInput("VAR").appendField(Y.Msg.PROCEDURES_MUTATORCONTAINER_TITLE).setCheck(String),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{str:Y.Msg.MIXLY_MIXPY_INOUT_STR_INPUT_TOOLTIP,int:Y.Msg.MIXLY_MIXPY_INOUT_INT_INPUT_TOOLTIP,float:Y.Msg.MIXLY_MIXPY_INOUT_FLOAT_INPUT_TOOLTIP}[t]}))}},ma={init:function(){this.setColour(ca),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Y.icons.MutatorIcon(["inout_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Y.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("inout_print_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,n){return"("+t+" <= "+e+") and "+l()+"("+t+", "+e+", "+n+") or "+u()+"("+t+", "+e+", "+n+")"},Y.isNumber(i)&&Y.isNumber(s)&&Y.isNumber(r))i=parseFloat(i),s=parseFloat(s),r=Math.abs(parseFloat(r)),0==i%1&&0==s%1&&0==r%1?(i<=s?(s++,t=0==i&&1==r?s:i+", "+s,1!=r&&(t+=", "+r)):t=i+", "+--s+", -"+r,t="range("+t+")"):(t=i",GTE:">="};const Ep=function(t,e){var n=this.getFieldValue("OP"),i="&&"==n?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",i)||"False",r=e.valueToCode(this,"B",i)||"False";if("AND"==n)var o=s+" and "+r;else if("OR"==n)o=s+" or "+r;else if("NOR"==n)o="not("+s+"^"+r+")";else o=s+"^"+r;return[o,i]},Ip=function(t,e){var n=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",n)||"False"),n]},Ap=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Op=function(t,e){return["None",e.ORDER_ATOMIC]},Mp=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+n+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Cp=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},Rp=function(t,e){var n=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",i=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[n+" "+this.getFieldValue("BOOL")+" "+i,e.ORDER_ATOMIC]},xp=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Np=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Lp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Dp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Fp=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Pp=function(t,e){var n=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+n+")\n"},Bp=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"()",e.ORDER_ATOMIC]},Vp=function(t,e){var n=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+n+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Up=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Yp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},jp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Gp=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Xp=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Hp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},qp=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zp=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Wp=function(t,e){var n=this.getFieldValue("MODE"),i=0;return i="start"==n?0:"current"==n?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+i+")\n"},Jp=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Kp=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Qp=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Zp=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},th=function(t,e){e.definitions_.import_os="import os";var n=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+n+")",e.ORDER_ATOMIC]},eh=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},nh=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ih=function(t,e){var n=e.variableDB_.getName(this.getFieldValue("NAME"),Y.Procedures.NAME_TYPE),i=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(i=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+i);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var r=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Ph=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"\n"+n+"\n"},Bh=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");if("head"==i)var s="<"+i+'>\n\t\n'+n+"\n";else s="<"+i+">\n"+n+"\n";return s},Vh=function(t,e){var n=e.statementToCode(this,"DO"),i=this.getFieldValue("LEVEL");return"<"+i+">\n"+n+"\n"},Uh=function(t,e){var n=e.statementToCode(this,"DO"),i=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+i+" >\n"+n+"\n"},Yh=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},jh=function(t,e){return'"},Gh=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Xh=function(){return this.getFieldValue("TEXT")+"\n"},Hh=function(t){return t.getFieldValue("TEXT")+"\n"},qh=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},zh=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Wh=function(){return""},Jh=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Kh=function(t,e){for(var n=t.getFieldValue("NAME"),i=t.hasReturn_,s=new Array(t.itemCount_),r=0;r6:\n print("路线错乱!程序有误!")\n exit()\n'},f_=function(t,e){return["name[now] != '小科家'",e.ORDER_ATOMIC]},m_=function(t,e){return["name[now] != '学校'",e.ORDER_ATOMIC]},g_=function(){return'res = ""\nfor i in path:\n res = res + name[i] + "→"\nprint(res[:-1])\n'},b_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");if(n>=7)var i="print('层数过高!不得高于6层!')\nexit()\n";else i="sprite.clearAllSprites()\n_Hanoicolor = ['blue', 'red', 'yellow', 'green', 'purple', 'black']\n_Hanoi = [[], [], []]\nA = 0\nB = 1\nC = 2\n_n = "+n+"\n_HanoiColumn = [\n sprite.Sprite('HanoiColumn', 200, 320),\n sprite.Sprite('HanoiColumn', 400, 320),\n sprite.Sprite('HanoiColumn', 600, 320)\n]\n_HanoiColumnNumber = [\n sprite.Text('A', 190, 120),\n sprite.Text('B', 390, 120),\n sprite.Text('C', 590, 120)\n]\n_HanoiBlock = []\nfor i in range(0, _n, 1):\n _HanoiBlock.append(sprite.Sprite(_Hanoicolor[i], 200, 400-(_n-i-1)*27))\n _HanoiBlock[i].setScale(25, 30*i+30)\n _Hanoi[0].insert(0, _HanoiBlock[i])\n_steptext = sprite.Text('步数:0', 30, 30)\n_steps = {'steps' : 0}\ntime.sleep(1)\n";return i},S_=function(t,e){var n=e.valueToCode(this,"FROM_NUM",e.ORDER_ATOMIC)||"0",i=e.valueToCode(this,"TO_NUM",e.ORDER_ATOMIC)||"0";return`if len(_Hanoi[${n}])>0 :\n _HanoiBlockMoved = _Hanoi[${n}].pop()\n if len(_Hanoi[${i}]) > 0 :\n _HanoiBlockSuppressed = _Hanoi[${i}].pop()\n if _HanoiBlock.index(_HanoiBlockMoved) > _HanoiBlock.index(_HanoiBlockSuppressed):\n print('非法移动!程序有误!')\n exit()\n else:\n _Hanoi[${i}].append(_HanoiBlockSuppressed)\n _HanoiBlockMoved.slideTo(${n}*200+200, 180, 0.2)\n _HanoiBlockMoved.slideTo(${i}*200+200, 180, 0.5)\n _HanoiBlockMoved.slideTo(${i}*200+200, 400-len(_Hanoi[${i}])*27, 0.2)\n _Hanoi[${i}].append(_HanoiBlockMoved)\n _steps['steps'] += 1\n _steptext.changeText('步数:'+str(_steps['steps']))\nelse :\n print('非法移动!程序有误!')\n exit()\n`},k_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=1\n n=5\n ring[5]=1\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=2\n n=len(ring)-1\nring[n]=1\ntime.sleep(1)\n"},T_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if 'mode' not in globals() or mode == 0:\n sprite.clearAllSprites()\n ring=[0,0,0,0,0,0,0,0,0,0]\n mode=2\n n=5\n name=['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\n Books = []\n for i in range(1, 11, 1):\n Books.append(sprite.Sprite('books/book'+str(i), (130*i-650) if i>5 else 130*i, 320 if i>5 else 120))\nelse:\n mode=1\n n=len(ring)-1\nring[n]=n\nlist=ring\ntemp=Books\ntime.sleep(1)\n"},y_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"res=0\nflag=ring[res]\nBooks[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n"},v_=function(t,e){return["(('mode' not in globals())or(mode==1 and flag==0)or(mode==2 and not any(value > 0 for value in qian))or(mode==0))",e.ORDER_ATOMIC]},$_=function(t,e){return["(('mode' in globals())and((mode==1 and flag!=0)or(mode==2 and any(value > 0 for value in qian))))",e.ORDER_ATOMIC]},w_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="res+=1\nflag=ring[res]\n";return n="Books[res].filterGray()\ntime.sleep(0.3)\n"+(n+="Books[res].filterBrighter()\ntime.sleep(0.1)\nBooks[res].filterOrigin()\n")},E_=function(t,e){return["len(list)>=2",e.ORDER_ATOMIC]},I_=function(){return"mid = int(len(list)/2)\nqian = list[0:mid]\nhou = list[mid:]\nqiantemp = temp[0:mid]\nhoutemp = temp[mid:]\n"},A_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"quchu = qian\nlist = hou\nquchutemp = qiantemp\ntemp = houtemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterGray()\ntime.sleep(0.5)\n"},O_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"list = quchu\ntemp = quchutemp\nfor i in qiantemp:\n i.filterBrighter()\ntime.sleep(0.5)\nfor i in qiantemp:\n i.filterOrigin()\nfor i in houtemp:\n\ti.filterBrighter()\ntime.sleep(0.5)\nfor i in houtemp:\n i.filterGray()\ntime.sleep(0.5)\n"},M_=function(){return"if 'list' in globals():\n res = list[0]\nBooks[res].filterBrighter()\nprint('未消磁的书籍是第'+str(res+1)+'本《'+name[res%10]+'》。')\nif res!=n:\n print('答案错误!请检查程序!')\nmode=0\n"},C_=function(t,e){var n=this.getFieldValue("NUM");return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",`sprite.clearAllSprites()\nring = []\nname = ['小王子','海底两万里','荷花镇的早市','孔子的故事','夏洛的网','草房子','月下看猫头鹰','会唱歌的咖啡磨','父与子','城南旧事']\nBooks = []\nfor i in range(${n}):\n ring.append(0)\nfor i in range(1, ${n}+1, 1):\n Books.append(sprite.Sprite('books/book'+str(i%10 if i%10!=0 else 10), ${{5:"130*i, 120",10:"(130*i-650) if i>5 else 130*i, 320 if i>5 else 120",20:"(65*i-650)+30 if i>10 else 65*i+30, 320 if i>10 else 120",50:"(26*i-650)+50 if i>25 else 26*i+50, 320 if i>25 else 120"}[n]}))\ntime.sleep(1)\nmode=3\n`},R_=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt=0\ncntText = sprite.Text('计数器:0', 30, 200)\n"},x_=function(t,e){e.definitions_.import_sprite="import sprite";return"cnt+=1\ncntText.changeText('计数器:'+str(cnt))\n"},N_=function(t,e){e.definitions_.import_sprite="import sprite";return"print('计数器大小:'+str(cnt))\n"},L_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\n_head = 10\n_foot = 32\n_footText = sprite.Text('脚的数量:', 20, 10)\n_sprite = []\n"},D_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit = 0\ntime.sleep(1)\n"},F_=function(t,e){return["_rabbit < _head",e.ORDER_ATOMIC]},P_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_chick = _head - _rabbit\nfor i in range(0, _chick, 1):\n _sprite.append(sprite.Sprite('jttl/chick', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\n\ntime.sleep(0.5)\n_footText.changeText('脚的数量:'+str(_rabbit*4 + _chick*2))\ntime.sleep(1)\n"},B_=function(t,e){return["_rabbit*4 + _chick*2 == _foot",e.ORDER_ATOMIC]},V_=function(t,e){e.definitions_.import_sprite="import sprite";return"print('鸡的数量:'+str(_chick)+'只;\\n兔的数量:'+str(_rabbit)+'只。')\n"},U_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_rabbit += 1\nsprite.clearAllSprites()\n_sprite = []\n_footText = sprite.Text('脚的数量:', 20, 10)\nfor i in range(0, _rabbit, 1):\n _sprite.append(sprite.Sprite('jttl/rabbit', len(_sprite)*130+130 if len(_sprite)<5 else len(_sprite)*130+130-650, 120 if len(_sprite)<5 else 320))\ntime.sleep(0.5)\n"},Y_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/fzsf/map_ck_xxjsjs')\n_S1 = sprite.Sprite('/fzsf/S1',400,225,'S1')\n_S2 = sprite.Sprite('/fzsf/S2',400,225,'S2')\n_S3 = sprite.Sprite('/fzsf/S3',400,225,'S3')\n_S4 = sprite.Sprite('/fzsf/S4',400,225,'S4')\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_text_1 = sprite.Text('S1:',0,0,'text')\n_text_2 = sprite.Text('S2:',0,30,'text2')\n_text_3 = sprite.Text('S3:',0,60,'text3')\n_text_4 = sprite.Text('S4:',0,90,'text4')\n_position = [[60, 270], [240, 50], [260, 380], [440, 190], [730, 60], [700, 400]]\n_Llen = [0, 170, 230, 100, 150, 10, 30, 50]\n_Slen = [0, 0, 0, 0, 0]\n_tag = [0, [0, 1, 3], [0, 2, 3], [3, 4, 5], [3, 5]]\nbear = sprite.Sprite('mixbear',60,270,'bear')\nbear.enlargeTo(80)\n_pos = 0\ntime.sleep(1)\n"},j_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME");const i=[0,[1,3],[2,4],[5,7],[6]];var s="";return s+=`_S${n}.show()\ntime.sleep(1)\n`,s+=4!=n?`_Slen[${n}] = _Llen[${i[n][0]}] + _Llen[${i[n][1]}]\n_text_${n}.changeText('S${n}:'+str(_Slen[${n}])+'m')\ntime.sleep(1)\n_S${n}.hide()\ntime.sleep(1)\n`:"_Slen[4] = _Llen[6]\n_text_4.changeText('S4:'+str(_Slen[4])+'m')\ntime.sleep(1)\n_S4.hide()\ntime.sleep(1)\n"},G_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return[n+=`_Slen[${this.getFieldValue("PATHNAME")}] < _Slen[${this.getFieldValue("PATHNAME2")}]`,e.ORDER_ATOMIC]},X_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("PATHNAME"),i="";return i+=`\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\n_Smin = ${n}\n_S${n}.show()\ntime.sleep(0.5)\n_S${n}.hide()\ntime.sleep(0.5)\n_S${n}.show()\ntime.sleep(1)\n`},H_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"if(_pos == _tag[_Smin][0]):\n for i in range(1, len(_tag[_Smin]), 1):\n bear.slideTo(_position[_tag[_Smin][i]][0], _position[_tag[_Smin][i]][1], 1)\n _pos = _tag[_Smin][len(_tag[_Smin])-1]\nelse:\n print('移动错误!程序有误!')\n exit()\n_S1.hide()\n_S2.hide()\n_S3.hide()\n_S4.hide()\nif(_pos == 5):\n print('成功抵达信息科技教室!')\n"},q_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"sprite.clearAllSprites()\nsprite.createBackground('/hxdb/hxdbbg')\n_soldier = []\n_num = sprite.Text('目前士兵数量:0',0,0,'num')\n_last = sprite.Text('剩余:0',500,0,'last')\n_line = 3\n"},z_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n="";return n+=`for i in range(0, ${this.getFieldValue("NUM")}, 1):\n _soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\n_num.changeText('目前士兵数量:'+str(len(_soldier)))\n`},W_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";var n=this.getFieldValue("NUM");return`for i in range(0, len(_soldier), 1):\n _soldier[i].slideTo(30 + (i%${n})*50 + (i//(4*${n}))*(${n}+1)*50 +(i%3-2), 80+(i//${n})*100-(i//(4*${n}))*4*100+(i%2), 0.05)\n_line = ${n}\n_last.changeText('剩余:'+str(len(_soldier)%_line))\ntime.sleep(2)\n`},J_=function(t,e){return e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite",[`len(_soldier)%_line == ${this.getFieldValue("NUM")}`,e.ORDER_ATOMIC]},K_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"_num.changeText('目前士兵数量:'+str(len(_soldier)+1))\n_last.changeText('剩余:')\ntime.sleep(0.5)\n_soldier.append(sprite.Sprite('/hxdb/soldier', 30 + (len(_soldier)%_line)*50 + (len(_soldier)//(4*_line))*(_line+1)*50 +(len(_soldier)%3-2), 80+(len(_soldier)//_line)*100-(len(_soldier)//(4*_line))*4*100+(len(_soldier)%2)))\ntime.sleep(1)\n"},Q_=function(t,e){e.definitions_.import_time="import time",e.definitions_.import_sprite="import sprite";return"print('符合要求的士兵数量为:'+str(len(_soldier)))\n"},Z_=function(t,e){e.definitions_.import_turtle="import turtle",e.definitions_.import_time="import time",e.definitions_.import_math="import math";var n=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),i=this.getFieldValue("NUM");return e.setups_.init_Hanoi="\ndef init_Hanoi():\n pen = turtle.Turtle()\n pen.hideturtle()\n pen.speed(0)\n for i in range(0, 3, 1):\n pen.penup()\n pen.setheading(0)\n pen.goto(150 * i - 200,-100)\n pen.pendown()\n pen.pensize(5)\n pen.forward(100)\n pen.goto(150 * i - 150,-100)\n pen.setheading(90)\n pen.forward(200)",e.setups_.begin="\ndef begin(): \n s = turtle.Turtle()\n s.hideturtle()\n s.penup()\n s.speed(0)\n s.goto(0,-150)\n s.write('3')\n time.sleep(1)\n s.clear()\n s.write('2')\n time.sleep(1)\n s.clear()\n s.write('1')\n time.sleep(1)\n s.clear()\n s.write('Start!')\n time.sleep(1)\n s.clear()\n",e.setups_.move="\ndef move(x, y):\n try:\n t = tower[x].pop(-1)\n a = tower_num[x].pop(-1)\n if tower_num[y]!=[]:\n b = tower_num[y][-1]\n if athis.#t.on("display",t)[0],wm.configure({output:t=>{this.#t.run("output",{content:t})},read:this.readFile.bind(this),inputfun:this.skInput.bind(this),inputfunTakesPrompt:!0,execLimit:Number.POSITIVE_INFINITY,fileread:this.fileread.bind(this),filewrite:this.filewrite.bind(this),__future__:wm.python3}),wm.builtins.value=new wm.builtin.func((function(){return wm.ffi.remapToPy(void 0===Im?5:Im)})),wm.builtins.set_value=new wm.builtin.func((function(t){Im=t.v})),wm.builtinFiles.files["./mixpy.py"]='import math\r\n\r\ndef math_map(v, al, ah, bl, bh):\r\n return bl + (bh - bl) * (v - al) / (ah - al)\r\n\r\ndef math_mean(myList):\r\n localList = [e for e in myList if type(e) == int or type(e) == float]\r\n if not localList: return\r\n return float(sum(localList)) / len(localList)\r\n\r\ndef math_median(myList):\r\n localList = sorted([e for e in myList if type(e) == int or type(e) == float])\r\n if not localList: return\r\n if len(localList) % 2 == 0:\r\n return (localList[len(localList) // 2 - 1] + localList[len(localList) // 2]) / 2.0\r\n else:\r\n return localList[(len(localList) - 1) // 2]\r\n\r\ndef math_modes(some_list):\r\n modes = []\r\n # Using a lists of [item, count] to keep count rather than dict\r\n # to avoid "unhashable" errors when the counted item is itself a list or dict.\r\n counts = []\r\n maxCount = 1\r\n for item in some_list:\r\n found = False\r\n for count in counts:\r\n if count[0] == item:\r\n count[1] += 1\r\n maxCount = max(maxCount, count[1])\r\n found = True\r\n if not found:\r\n counts.append([item, 1])\r\n for counted_item, item_count in counts:\r\n if item_count == maxCount:\r\n modes.append(counted_item)\r\n return modes\r\n\r\ndef math_standard_deviation(numbers):\r\n n = len(numbers)\r\n if n == 0: return\r\n mean = float(sum(numbers)) / n\r\n variance = sum((x - mean) ** 2 for x in numbers) / n\r\n return math.sqrt(variance)\r\n\r\ndef lists_sort(my_list, type, reverse):\r\n def try_float(s):\r\n try:\r\n return float(s)\r\n except:\r\n return 0\r\n key_funcs = {\r\n "NUMERIC": try_float,\r\n "TEXT": str,\r\n "IGNORE_CASE": lambda s: str(s).lower()\r\n }\r\n key_func = key_funcs[type]\r\n list_cpy = list(my_list)\r\n return sorted(list_cpy, key=key_func, reverse=reverse)'}readFile(t){if(void 0!==Em[t])return wm.misceval.promiseToSuspension(fetch(Em[t]).then((t=>t.text())));if(void 0===wm.builtinFiles||void 0===wm.builtinFiles.files[t])throw"File not found: '"+t+"'";return wm.builtinFiles.files[t]}fileread(t,e){return this.mixpyProject.exist(t)?this.mixpyProject.getFileContent(t):-1!==e.indexOf("w")?(this.mixpyProject.add(t,"",1),""):null}filewrite(t,e){var n=t.name;this.mixpyProject.modify(n,e),this.mixpyProject.select(n)}skInput(t){return new Promise(((e,n)=>{this.#t.run("input",{content:{prompt:t},resolve:e,reject:n})}))}reset(){wm.execLimit=Number.POSITIVE_INFINITY,wm.TurtleGraphics.reset&&wm.TurtleGraphics.reset()}kill(){window.SPRITE.kill(),wm.execLimit=0,this.executionEnd_()}step(t,e,n,i){if(".py"==i){var s=this.executionBuffer.step,r=this.parseGlobals(t);this.executionBuffer.trace.push({step:s,filename:i,line:e,column:n,properties:r.properties,modules:r.modules}),this.executionBuffer.step=s+1,this.executionBuffer.last_step=s+1,this.executionBuffer.line_number=e}}analyzeVariables(){if(""==this.main.model.programs.__main__().trim())return{}}analyze(){return this.main.model.execution.status("analyzing"),""!=this.main.model.programs.__main__().trim()||(this.main.components.feedback.emptyProgram("You haven't written any code yet!"),!1)}run(t){this.reset(),-1===t.indexOf("import sprite")&&-1===t.indexOf("from sprite import")||window.SPRITE.runit(wm.TurtleGraphics.target),this.programStatus.running=!0,wm.misceval.asyncToPromise((()=>wm.importMainWithBody("",!1,t,!0))).then((()=>{window.SPRITE.running=!1,this.programStatus.running=!1,this.#t.run("finished")})).catch((t=>{j.Debug.error(t),window.SPRITE.running=!1,this.programStatus.running=!1,this.#t.run("error",t);var e=function(t){return"string"==typeof t?t:void 0!==t.tp$str?t.tp$str().v:t.name+": "+t.message}(t);this.#t.run("finished"),-1===e.indexOf("TimeLimitError")&&this.executionEnd_()}))}setupEnvironment(t,e,n,i,s){var r=this.main.model;this._backup_execution=wm.afterSingleExecution,wm.afterSingleExecution=void 0,wm.builtins.get_output=new wm.builtin.func((function(){return wm.builtin.pyCheckArgs("get_output",arguments,0,0),wm.ffi.remapToPy(r.execution.output())})),wm.builtins.reset_output=new wm.builtin.func((function(){wm.builtin.pyCheckArgs("reset_output",arguments,0,0),r.execution.output.removeAll()})),wm.builtins.log=new wm.builtin.func((function(t){wm.builtin.pyCheckArgs("log",arguments,1,1),console.log(t)})),wm.builtins._trace=e,wm.builtins._final_values=s,wm.builtins.code=wm.ffi.remapToPy(t),wm.builtins.set_success=this.instructor_module.set_success,wm.builtins.set_feedback=this.instructor_module.set_feedback,wm.builtins.set_finished=this.instructor_module.set_finished,wm.builtins.count_components=this.instructor_module.count_components,wm.builtins.no_nonlist_nums=this.instructor_module.no_nonlist_nums,wm.builtins.only_printing_properties=this.instructor_module.only_printing_properties,wm.builtins.calls_function=this.instructor_module.calls_function,wm.builtins.get_property=this.instructor_module.get_property,wm.builtins.get_value_by_name=this.instructor_module.get_value_by_name,wm.builtins.get_value_by_type=this.instructor_module.get_value_by_type,wm.builtins.parse_json=this.instructor_module.parse_json,wm.skip_drawing=!0,r.settings.mute_printer(!0)}disposeEnvironment(){wm.afterSingleExecution=this._backup_execution,wm.builtins.get_output=void 0,wm.builtins.reset_output=void 0,wm.builtins.log=void 0,wm.builtins._trace=void 0,wm.builtins.trace=void 0,wm.builtins.code=void 0,wm.builtins.set_success=void 0,wm.builtins.set_feedback=void 0,wm.builtins.set_finished=void 0,wm.builtins.count_components=void 0,wm.builtins.calls_function=void 0,wm.builtins.get_property=void 0,wm.builtins.get_value_by_name=void 0,wm.builtins.get_value_by_type=void 0,wm.builtins.no_nonlist_nums=void 0,wm.builtins.only_printing_properties=void 0,wm.builtins.parse_json=void 0,wm.skip_drawing=!1,Im=void 0,this.main.model.settings.mute_printer(!1)}parseGlobals(t){var e=Array(),n=Array();for(var i in t){var s=t[i];if("__name__"!==i&&"__doc__"!==i){i=i.replace("_$rw$","").replace("_$rn$","");var r=this.parseValue(i,s);null!==r?e.push(r):s.constructor==wm.builtin.module&&n.push(s.$d.__name__.v)}}return{properties:e,modules:n}}parseValue(t,e){if(null==e)return{name:t,type:"Unknown",value:"Undefined"};switch(e.constructor){case wm.builtin.func:return{name:t,type:"Function",value:void 0!==e.func_code.co_varnames?" Arguments: "+e.func_code.co_varnames.join(", "):" No arguments"};case wm.builtin.module:return null;case wm.builtin.str:return{name:t,type:"String",value:e.$r().v};case wm.builtin.none:return{name:t,type:"None",value:"None"};case wm.builtin.bool:return{name:t,type:"Boolean",value:e.$r().v};case wm.builtin.nmber:return{name:t,type:"int"==e.skType?"Integer":"Float",value:e.$r().v};case wm.builtin.int_:return{name:t,type:"Integer",value:e.$r().v};case wm.builtin.float_:return{name:t,type:"Float",value:e.$r().v};case wm.builtin.tuple:return{name:t,type:"Tuple",value:e.$r().v};case wm.builtin.list:return e.v.length<=20?{name:t,type:"List",value:e.$r().v,exact_value:e}:{name:t,type:"List",value:"[... "+e.v.length+" elements ...]",exact_value:e};case wm.builtin.dict:return{name:t,type:"Dictionary",value:e.$r().v};case Number:return{name:t,type:e%1==0?"Integer":"Float",value:e};case String:return{name:t,type:"String",value:e};case Boolean:return{name:t,type:"Boolean",value:e?"True":"False"};default:return{name:t,type:null==e.tp$name?e:e.tp$name,value:null==e.$r?e:e.$r().v}}}}const Om=$;var Mm=n.n(Om);class Cm extends j.PageBase{static{j.HTMLTemplate.add("html/statusbar/statusbar-image.html",new j.HTMLTemplate('\r\n
\r\n
\r\n
')),this.init=function(){j.StatusBarsManager.typesRegistry.register(["images"],Cm);const t=j.Workspace.getMain().getStatusBarsManager();t.add("images","images","图像"),t.changeTo("output")}}constructor(){super();const t=Mm()(j.HTMLTemplate.get("html/statusbar/statusbar-image.html").render());this.setContent(t)}init(){super.init(),this.hideCloseBtn()}clean(){this.getContent().empty()}display(t){const e=this.getContent(),n=function(t){t.style.width="auto",t.style.height="auto",t.style.maxWidth="100%",t.style.maxHeight="100%"};this.clean();let i=t.content,s=null,r=null;switch(t.display_type){case"p5":i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.justifyContent="center",i.style.alignItems="center",new MutationObserver((function(t){t.forEach((t=>t.addedNodes.forEach((t=>{const e=t;null!=e.tagName&&["canvas","video"].includes(e.tagName.toLowerCase())&&n(e)}))))})).observe(i,{childList:!0}),i.querySelectorAll("canvas,video").forEach(n),e.append(i);break;case"matplotlib":s=i.querySelector("canvas"),s&&(i=s),i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"ocaml-canvas":i.style.width="",i.style.height="",i.style.maxWidth="100%",i.style.maxHeight="100%",e.append(i);break;case"turtle":i.setAttribute("width","100%"),i.setAttribute("height","100%"),e.append(i.outerHTML);break;case"sympy":e.append(t.content),void 0===window.MathJax?(console.log("Loading MathJax (Sympy expression needs it)."),function(){let t=document.createElement("script");t.type="text/javascript",t.src="https://cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-mml-chtml.js",document.getElementsByTagName("head")[0].appendChild(t)}()):window.MathJax.typeset();break;case"multiple":for(let n of["image/svg+xml","image/png","text/html","text/plain"])if(n in t.content){let i=t.content[n];"image/png"===n&&(i=''),e.append(i);break}break;case"tutor":if(e.append(Mm()(t.content.replace("overflow-y%3A%20hidden%3B",""))),r=this.getContent()[0].getElementsByTagName("iframe")[0],null==r)return;r.style.maxHeight=r.style.minHeight="100%",new IntersectionObserver(((t,e)=>{const n=t[0];n&&!n.isIntersecting||(r.contentWindow?.postMessage({type:"redraw"},"*"),e.disconnect())})).observe(r);break;default:console.error(`Not supported node type '${t.display_type}' in eval.display result processing.`)}}}const Rm=Cm;class xm{static{this.pythonShell=null,this.init=async function(){Rm.init(),this.pythonShell=new xm},this.run=function(){const t=j.Workspace.getMain().getEditorsManager().getActive().getCode();return this.pythonShell.run(t)},this.stop=function(){return this.pythonShell.stop()}}#e=null;#n=null;#i=null;#s={row:0,column:0};#r="";#o=null;#a=null;#l=!1;#u=!1;#c=null;#p=()=>this.#h();#_=[{name:"REPL-Enter",bindKey:"Enter",exec:t=>{if(t.getSession().selection.getCursor().row===this.#s.row){const t=this.#e.getEndPos();let e=this.#e.getValueRange(this.#s,t);return e=e.replace(this.#r,""),this.#o?.(e),this.#o=null,this.#a=null,this.#e.addValue("\n"),this.#d(),!0}return!1}},{name:"REPL-ChangeEditor",bindKey:"Delete|Ctrl-X|Backspace",exec:t=>{const e=t.getSession().selection.getCursor();return e.row{this.#u=!1,this.#e.addValue(`\n==${j.Msg.Lang["shell.finish"]}==`)})),t.bind("output",(t=>{this.#e.addValue(t.content)})),t.bind("error",(t=>{this.#u=!1,this.#e.addValue(`\n${t.toString()}\n`)})),t.bind("input",(t=>{const e=String(t?.content?.prompt);this.#e.addValue(`>>> ${e}`),this.#r=e,this.#o=t.resolve,this.#a=t.reject,this.#m()})),t.bind("display",(t=>{this.#i.changeTo("images"),this.#n.display(t)}))}#h(){const t=this.#e.getEditor(),e=t.getSession().selection.getCursor();t.setReadOnly(e.rowsetTimeout(e,t)))}}const Nm=xm,Lm={init:function(){Nm.init();const t=j.app.getNav();t.register({icon:"icon-play-circled",title:"",id:"python-run-btn",displayText:Y.Msg.MSG.run,preconditionFn:()=>!0,callback:()=>{Nm.run().catch(j.Debug.error)},scopeType:j.Nav.Scope.LEFT,weight:4}),t.register({icon:"icon-cancel",title:"",id:"python-stop-btn",displayText:Y.Msg.MSG.stop,preconditionFn:()=>!0,callback:()=>{Nm.stop().catch(j.Debug.error)},scopeType:j.Nav.Scope.LEFT,weight:5})}};Lm.init(),Object.assign(Y.Variables,X),Object.assign(Y.Procedures,q),Y.Python=J,Y.generator=J,j.Profile.default={},Object.assign(Y.Blocks,t,e,i,s,r,o,a,l,u,c,p,h,_,d,f,m,g,b,S,k),Object.assign(Y.Python.forBlock,T,y,v,w,E,I,A,O,M,C,R,x,N,L,D,F,P,B,V,U)})()})(); \ No newline at end of file diff --git a/boards/default/python_skulpt_car/main.bundle.js b/boards/default/python_skulpt_car/main.bundle.js index eb7e5227..95a80a95 100644 --- a/boards/default/python_skulpt_car/main.bundle.js +++ b/boards/default/python_skulpt_car/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Z,controls_typeLists:()=>z,lists_zip:()=>$,lists_zip_container:()=>tt,lists_zip_item:()=>et,unpack_iterable_object:()=>it,variables_change:()=>Q,variables_get:()=>j,variables_global:()=>J,variables_set:()=>q});var i={};t.r(i),t.d(i,{base_setup:()=>ot,controls_delay:()=>_t,controls_end_program:()=>pt,controls_except:()=>Rt,controls_finally:()=>mt,controls_flow_statements:()=>dt,controls_for:()=>It,controls_forEach:()=>lt,controls_for_range:()=>ht,controls_if:()=>ut,controls_if_else:()=>Mt,controls_if_elseif:()=>Ot,controls_if_if:()=>Et,controls_lambda:()=>At,controls_main:()=>st,controls_pass:()=>Ct,controls_range:()=>at,controls_repeat_ext:()=>gt,controls_thread:()=>Lt,controls_try:()=>ct,controls_try_finally:()=>Tt,controls_whileUntil:()=>rt,datetime_fromtimestamp:()=>Ft,do_while:()=>St,garbage_collection:()=>Dt,gene_unique_identifier:()=>vt,get_mem_alloc:()=>Nt,get_mem_free:()=>Pt,get_unique_identifier:()=>ft});var n={};t.r(n),t.d(n,{base_map:()=>$t,generate_cartesian_product:()=>ee,math_arithmetic:()=>kt,math_bit:()=>Xt,math_constant:()=>yt,math_constant_mp:()=>bt,math_constrain:()=>Kt,math_dec:()=>xt,math_indexer_number:()=>qt,math_map:()=>jt,math_max_min:()=>wt,math_number:()=>Yt,math_number_base_conversion:()=>Ht,math_random:()=>Wt,math_random_seed:()=>Qt,math_round:()=>Jt,math_selfcalcu:()=>Ut,math_to_int:()=>Gt,math_trig:()=>Bt,text_to_number:()=>Zt,text_to_number_skulpt:()=>zt,turn_to_int:()=>te});var s={};t.r(s),t.d(s,{ascii_to_char:()=>pe,char_to_ascii:()=>ue,number_to_text:()=>ae,os_system:()=>Ye,text:()=>ne,text_capital:()=>Me,text_center:()=>ce,text_char:()=>oe,text_char_at:()=>Te,text_char_at2:()=>re,text_char_at3:()=>fe,text_compareTo:()=>Pe,text_compare_to:()=>Oe,text_create_with_container:()=>Se,text_create_with_item:()=>De,text_encode:()=>ve,text_equals_starts_ends:()=>Ee,text_eval:()=>Ve,text_find:()=>Re,text_format:()=>Le,text_format_noreturn:()=>Fe,text_join:()=>_e,text_join_seq:()=>me,text_length:()=>le,text_random_char:()=>de,text_replace:()=>ge,text_split:()=>Ae,text_strip:()=>Ce,text_substring:()=>he,text_substring2:()=>Ie,text_substring3:()=>Ne,text_textarea:()=>se});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Ei,content_in_lists:()=>Mi,enumerate:()=>Oi,list_many_input:()=>ni,list_tolist:()=>pi,list_tolist2:()=>hi,list_trig:()=>ti,lists_2d_get_col_row_data:()=>Xe,lists_2d_get_data_with_col_row:()=>Ue,lists_append_extend:()=>We,lists_change_to:()=>ii,lists_change_to_general:()=>oi,lists_clear:()=>Je,lists_create_with:()=>Be,lists_create_with2:()=>ui,lists_create_with_container:()=>Ge,lists_create_with_item:()=>we,lists_create_with_noreturn:()=>si,lists_create_with_text:()=>xe,lists_create_with_text2:()=>ai,lists_del_general:()=>_i,lists_find:()=>$e,lists_getIndex3:()=>li,lists_getSublist3:()=>ri,lists_get_index:()=>be,lists_get_random_item:()=>Ke,lists_get_random_sublist:()=>je,lists_get_sublist:()=>ke,lists_insert_value:()=>qe,lists_insert_value2:()=>di,lists_pop:()=>ze,lists_remove_at:()=>Ze,lists_remove_at2:()=>Ii,lists_reverse:()=>Qe,lists_setIndex3:()=>Ti,lists_set_index:()=>He,lists_sort:()=>ei});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>Yi,dicts_add_or_change:()=>Si,dicts_clear:()=>Pi,dicts_create_with:()=>Ri,dicts_create_with_container:()=>mi,dicts_create_with_item:()=>gi,dicts_create_with_noreturn:()=>ki,dicts_deldict:()=>Vi,dicts_delete:()=>Di,dicts_get:()=>Ci,dicts_get_default:()=>Li,dicts_items:()=>fi,dicts_keys:()=>Ai,dicts_length:()=>vi,dicts_pop:()=>yi,dicts_setdefault:()=>bi,dicts_to_json:()=>Xi,dicts_to_json2:()=>Gi,dicts_to_to:()=>xi,dicts_todict:()=>Ui,dicts_update:()=>Ni,dicts_values:()=>Fi,json_to_dicts:()=>Bi});var p={};t.r(p),t.d(p,{logic_boolean:()=>qi,logic_compare:()=>Hi,logic_compare_continous:()=>Wi,logic_is:()=>zi,logic_is_in:()=>Zi,logic_negate:()=>ji,logic_null:()=>Qi,logic_operation:()=>Ki,logic_tobool:()=>$i,logic_true_or_false:()=>Ji});var u={};t.r(u),t.d(u,{sdcard_mount:()=>An,sdcard_use_spi_init:()=>gn,storage_can_write_ornot:()=>an,storage_change_dir:()=>Rn,storage_close_file:()=>rn,storage_delete_file:()=>dn,storage_file_seek:()=>En,storage_file_tell:()=>hn,storage_file_write:()=>on,storage_fileopen:()=>en,storage_fileopen_new:()=>nn,storage_fileopen_new_encoding:()=>sn,storage_get_a_line:()=>un,storage_get_contents:()=>pn,storage_get_contents_without_para:()=>_n,storage_get_current_dir:()=>On,storage_get_file_size:()=>In,storage_get_filename:()=>ln,storage_is_file:()=>mn,storage_list_all_files:()=>Tn,storage_make_dir:()=>Mn,storage_open_file_with_os:()=>tn,storage_rename:()=>cn});var a={};t.r(a),t.d(a,{procedures_callnoreturn:()=>Nn,procedures_callreturn:()=>Pn,procedures_defnoreturn:()=>Cn,procedures_defreturn:()=>Ln,procedures_ifreturn:()=>fn,procedures_mutatorarg:()=>Dn,procedures_mutatorcontainer:()=>Sn,procedures_return:()=>Fn});var l={};t.r(l),t.d(l,{tuple_change_to:()=>wn,tuple_create_with:()=>Vn,tuple_create_with_container:()=>Yn,tuple_create_with_item:()=>yn,tuple_create_with_noreturn:()=>jn,tuple_create_with_text2:()=>bn,tuple_create_with_text_return:()=>kn,tuple_del:()=>Bn,tuple_find:()=>Hn,tuple_getIndex:()=>Un,tuple_getSublist:()=>Kn,tuple_get_random_item:()=>Qn,tuple_get_sublist:()=>qn,tuple_input:()=>Zn,tuple_join:()=>xn,tuple_length:()=>Xn,tuple_max:()=>Gn,tuple_totuple:()=>Jn,tuple_trig:()=>Wn});var r={};t.r(r),t.d(r,{set_add_discard:()=>ps,set_clear:()=>ss,set_create_with:()=>$n,set_create_with_container:()=>ts,set_create_with_item:()=>es,set_create_with_text_return:()=>ls,set_length:()=>is,set_operate:()=>os,set_operate_update:()=>_s,set_pop:()=>ns,set_sub:()=>us,set_toset:()=>rs,set_update:()=>as});var T={};t.r(T),t.d(T,{html_content:()=>Es,html_content_more:()=>Os,html_document:()=>ds,html_form:()=>cs,html_head_body:()=>hs,html_style:()=>Ms,html_style_color:()=>ms,html_style_content:()=>Rs,html_text:()=>gs,html_title:()=>Is});var d={};t.r(d),t.d(d,{attribute_access:()=>bs,function_call:()=>Vs,function_call_container:()=>Ys,function_call_item:()=>ys,raw_block:()=>Ls,raw_empty:()=>Ds,raw_expression:()=>Ss,raw_table:()=>Cs,text_comment:()=>Ns,text_print_multiple:()=>fs,text_print_multiple_container:()=>Fs,text_print_multiple_item:()=>vs,type_check:()=>Ps});var I={};t.r(I),t.d(I,{array_create:()=>$s,array_toarray:()=>Io,dataframe_create:()=>Bs,dataframe_create_from_index:()=>Gs,dataframe_create_from_one_index:()=>xs,dataframe_get:()=>lo,numpy_trig:()=>po,pandas_readcsv:()=>ao,pl_axes:()=>Qs,pl_bar:()=>no,pl_hist:()=>oo,pl_label:()=>zs,pl_legend:()=>Js,pl_pie:()=>so,pl_plot:()=>js,pl_plot_bar:()=>to,pl_plot_easy:()=>Ks,pl_plot_scatter:()=>eo,pl_plot_xy:()=>io,pl_savefig:()=>ro,pl_show:()=>qs,pl_subplot:()=>uo,pl_text:()=>To,pl_ticks:()=>_o,pl_title:()=>Zs,plot_axes:()=>Mo,plot_bar:()=>Lo,plot_hist:()=>Do,plot_label:()=>mo,plot_legend:()=>co,plot_pie:()=>So,plot_plot:()=>Eo,plot_plot_bar:()=>go,plot_plot_easy:()=>ho,plot_plot_scatter:()=>Ao,plot_plot_xy:()=>Co,plot_savefig:()=>fo,plot_show:()=>Oo,plot_subplot:()=>Po,plot_text:()=>Fo,plot_ticks:()=>No,plot_title:()=>Ro,series_create:()=>Us,series_create_from_index:()=>Xs,series_create_from_text:()=>ws,series_get_num:()=>Ws,series_index_value:()=>Hs});var h={};t.r(h),t.d(h,{inout_input:()=>Vo,inout_print:()=>Yo,inout_print_container:()=>Xo,inout_print_end:()=>bo,inout_print_inline:()=>yo,inout_print_item:()=>Bo,inout_print_many:()=>Uo,inout_type_input:()=>ko});var E={};t.r(E),t.d(E,{Panic_with_status_code:()=>Wo,base_delay:()=>Go,controls_millis:()=>wo,controls_mstimer2:()=>jo,controls_mstimer2_start:()=>qo,controls_mstimer2_stop:()=>Qo,reset:()=>Ko,time_localtime:()=>Ho,time_sleep:()=>Jo});var O={};t.r(O),t.d(O,{turtle_bgcolor:()=>O_,turtle_bgcolor_hex:()=>S_,turtle_bgcolor_hex_new:()=>m_,turtle_circle:()=>I_,turtle_circle_advanced:()=>h_,turtle_clear:()=>u_,turtle_clone:()=>R_,turtle_color:()=>C_,turtle_color_hex:()=>L_,turtle_color_seclet:()=>b_,turtle_create:()=>zo,turtle_done:()=>$o,turtle_exitonclick:()=>t_,turtle_fill:()=>l_,turtle_fillcolor:()=>c_,turtle_fillcolor_hex:()=>N_,turtle_fillcolor_hex_new:()=>A_,turtle_getscreen:()=>k_,turtle_goto:()=>o_,turtle_listen:()=>x_,turtle_move:()=>e_,turtle_numinput:()=>F_,turtle_onclick:()=>X_,turtle_onkey:()=>U_,turtle_ontimer:()=>B_,turtle_pencolor:()=>M_,turtle_pencolor_hex:()=>D_,turtle_pencolor_hex_new:()=>g_,turtle_penup:()=>a_,turtle_pos_shape:()=>p_,turtle_rotate:()=>i_,turtle_screen_delay:()=>s_,turtle_screen_savefig:()=>G_,turtle_setheading:()=>n_,turtle_setxy:()=>__,turtle_shape:()=>P_,turtle_shapesize:()=>f_,turtle_size:()=>T_,turtle_size_speed:()=>r_,turtle_speed:()=>d_,turtle_textinput:()=>v_,turtle_visible:()=>E_,turtle_write:()=>V_,turtle_write_format:()=>Y_,turtle_write_format_skulpt:()=>y_});var M={};t.r(M),t.d(M,{Turn:()=>z_,addOil:()=>Ip,game_get_character_img:()=>_p,game_get_local_img:()=>ip,game_get_path_img:()=>sp,game_init:()=>J_,get_actor_point:()=>up,initSettedMap_1:()=>w_,initSettedMap_2:()=>H_,initSettedMap_3:()=>W_,initSettedMap_4:()=>K_,initSettedMap_5:()=>j_,initSettedMap_6:()=>q_,initSettedMap_7:()=>Q_,initialize:()=>pp,isBarrier:()=>ap,isCirculationRight:()=>hp,isDone:()=>$_,isLightGreen:()=>Tp,isLightRed:()=>dp,isOilFull:()=>rp,isPath:()=>tp,move_direction_steps:()=>Z_,place_item:()=>op,randomOil:()=>lp,set_map:()=>ep,set_pathtype:()=>np});var c={};t.r(c),t.d(c,{controls_type:()=>Rp,controls_typeLists:()=>mp,lists_zip:()=>gp,unpack_iterable_object:()=>Ap,variables_change:()=>Mp,variables_get:()=>Ep,variables_global:()=>cp,variables_set:()=>Op});var R={};t.r(R),t.d(R,{Panic_with_status_code:()=>Vp,base_setup:()=>Lp,controls_delay:()=>vp,controls_flow_statements:()=>Fp,controls_for:()=>Np,controls_forEach:()=>Up,controls_for_range:()=>Pp,controls_if:()=>Sp,controls_interrupts:()=>bp,controls_lambda:()=>Bp,controls_main:()=>Cp,controls_millis:()=>Yp,controls_nointerrupts:()=>kp,controls_pass:()=>Gp,controls_range:()=>Xp,controls_repeat:()=>Jp,controls_repeat_ext:()=>Wp,controls_thread:()=>wp,controls_try_finally:()=>Dp,controls_whileUntil:()=>fp,datetime_fromtimestamp:()=>Zp,do_while:()=>Hp,garbage_collection:()=>Kp,gene_unique_identifier:()=>zp,get_mem_alloc:()=>jp,get_mem_free:()=>qp,get_unique_identifier:()=>Qp,reset:()=>yp,time_sleep:()=>xp});var m={};t.r(m),t.d(m,{base_map:()=>cu,generate_cartesian_product:()=>mu,math_arithmetic:()=>nu,math_bit:()=>iu,math_constant:()=>tu,math_constant_mp:()=>eu,math_constrain:()=>Tu,math_dec:()=>pu,math_indexer_number:()=>hu,math_map:()=>ru,math_max_min:()=>au,math_number:()=>$p,math_number_base_conversion:()=>du,math_random:()=>lu,math_random_seed:()=>Iu,math_round:()=>Eu,math_selfcalcu:()=>su,math_single:()=>ou,math_to_int:()=>uu,math_trig:()=>_u,text_to_number:()=>Ou,text_to_number_skulpt:()=>Mu,turn_to_int:()=>Ru});var g={};t.r(g),t.d(g,{ascii_to_char:()=>Su,char_to_ascii:()=>Du,number_to_text:()=>Nu,os_system:()=>Zu,text:()=>gu,text_capital:()=>ku,text_center:()=>Uu,text_char:()=>Cu,text_char_at:()=>Fu,text_char_at2:()=>fu,text_char_at3:()=>qu,text_compareTo:()=>ju,text_compare_to:()=>Yu,text_encode:()=>Qu,text_equals_starts_ends:()=>Vu,text_eval:()=>Ju,text_find:()=>Xu,text_format:()=>Hu,text_format_noreturn:()=>Wu,text_join:()=>Lu,text_join_seq:()=>Bu,text_length:()=>Pu,text_random_char:()=>vu,text_replace:()=>xu,text_split:()=>Gu,text_strip:()=>wu,text_substring:()=>bu,text_substring2:()=>yu,text_substring3:()=>Ku,text_textarea:()=>Au});var A={};t.r(A),t.d(A,{content_in_lists:()=>Fa,enumerate:()=>fa,list_many_input:()=>Oa,list_tolist:()=>Na,list_tolist2:()=>Pa,list_trig:()=>Ia,lists_2d_get_col_row_data:()=>ta,lists_2d_get_data_with_col_row:()=>$u,lists_append_extend:()=>oa,lists_change_to:()=>Ea,lists_change_to_general:()=>ca,lists_clear:()=>la,lists_create_with:()=>ea,lists_create_with2:()=>ma,lists_create_with_noreturn:()=>Ma,lists_create_with_text:()=>ia,lists_create_with_text2:()=>ga,lists_del_general:()=>Ra,lists_find:()=>ra,lists_getIndex3:()=>Aa,lists_getSublist3:()=>Ca,lists_get_index:()=>na,lists_get_random_item:()=>_a,lists_get_random_sublist:()=>pa,lists_get_sublist:()=>zu,lists_insert_value:()=>ua,lists_insert_value2:()=>Sa,lists_pop:()=>da,lists_remove_at:()=>Ta,lists_remove_at2:()=>Da,lists_reverse:()=>aa,lists_setIndex3:()=>La,lists_set_index:()=>sa,lists_sort:()=>ha});var C={};t.r(C),t.d(C,{dicts_add_change_del:()=>Ha,dicts_add_or_change:()=>ba,dicts_clear:()=>Xa,dicts_create_with:()=>va,dicts_create_with_noreturn:()=>ja,dicts_deldict:()=>wa,dicts_delete:()=>ka,dicts_get:()=>Ya,dicts_get_default:()=>ya,dicts_items:()=>Ba,dicts_keys:()=>Va,dicts_length:()=>Ga,dicts_pop:()=>Wa,dicts_setdefault:()=>Ka,dicts_to_json:()=>Qa,dicts_to_json2:()=>za,dicts_to_to:()=>Za,dicts_todict:()=>qa,dicts_update:()=>Ua,dicts_values:()=>xa,json_to_dicts:()=>Ja});var L={};t.r(L),t.d(L,{logic_boolean:()=>nl,logic_compare:()=>$a,logic_compare_continous:()=>tl,logic_is:()=>pl,logic_is_in:()=>_l,logic_negate:()=>il,logic_null:()=>sl,logic_operation:()=>el,logic_tobool:()=>ul,logic_true_or_false:()=>ol});var S={};t.r(S),t.d(S,{sdcard_mount:()=>Fl,sdcard_use_spi_init:()=>fl,storage_can_write_ornot:()=>Ol,storage_change_dir:()=>Ll,storage_close_file:()=>cl,storage_delete_file:()=>ml,storage_file_seek:()=>Cl,storage_file_tell:()=>Al,storage_file_write:()=>dl,storage_fileopen:()=>ll,storage_fileopen_new:()=>rl,storage_fileopen_new_encoding:()=>Tl,storage_get_a_line:()=>El,storage_get_contents:()=>hl,storage_get_contents_without_para:()=>Il,storage_get_current_dir:()=>Sl,storage_get_file_size:()=>gl,storage_get_filename:()=>Ml,storage_is_file:()=>Pl,storage_list_all_files:()=>Rl,storage_make_dir:()=>Dl,storage_open_file_with_os:()=>al,storage_rename:()=>Nl});var D={};t.r(D),t.d(D,{procedures_callnoreturn:()=>yl,procedures_callreturn:()=>Yl,procedures_defnoreturn:()=>Vl,procedures_defreturn:()=>vl,procedures_ifreturn:()=>bl,procedures_return:()=>kl});var N={};t.r(N),t.d(N,{tuple_change_to:()=>Kl,tuple_create_with:()=>Ul,tuple_create_with_noreturn:()=>Jl,tuple_create_with_text2:()=>Xl,tuple_create_with_text_return:()=>Bl,tuple_del:()=>wl,tuple_find:()=>jl,tuple_getIndex:()=>xl,tuple_getSublist:()=>Ql,tuple_get_random_item:()=>zl,tuple_get_sublist:()=>Zl,tuple_input:()=>tr,tuple_join:()=>Hl,tuple_length:()=>Gl,tuple_max:()=>Wl,tuple_totuple:()=>$l,tuple_trig:()=>ql});var P={};t.r(P),t.d(P,{set_add_discard:()=>pr,set_clear:()=>sr,set_create_with:()=>er,set_create_with_text_return:()=>lr,set_length:()=>ir,set_operate:()=>or,set_operate_update:()=>_r,set_pop:()=>nr,set_sub:()=>ur,set_toset:()=>rr,set_update:()=>ar});var f={};t.r(f),t.d(f,{html_content:()=>hr,html_content_more:()=>Er,html_document:()=>Tr,html_form:()=>Mr,html_head_body:()=>Ir,html_style:()=>Or,html_style_content:()=>cr,html_text:()=>Rr,html_title:()=>dr});var F={};t.r(F),t.d(F,{attribute_access:()=>Dr,function_call:()=>Sr,raw_block:()=>mr,raw_empty:()=>Ar,raw_expression:()=>gr,raw_table:()=>Cr,type_check:()=>Lr});var v={};t.r(v),t.d(v,{array_create:()=>wr,array_toarray:()=>nT,dataframe_create:()=>fr,dataframe_create_from_index:()=>Fr,dataframe_create_from_one_index:()=>vr,dataframe_get:()=>tT,numpy_trig:()=>Zr,pandas_readcsv:()=>$r,pl_axes:()=>kr,pl_bar:()=>jr,pl_hist:()=>Qr,pl_label:()=>Gr,pl_legend:()=>Br,pl_pie:()=>qr,pl_plot:()=>Xr,pl_plot_bar:()=>Hr,pl_plot_easy:()=>Ur,pl_plot_scatter:()=>Wr,pl_plot_xy:()=>Kr,pl_savefig:()=>eT,pl_show:()=>br,pl_subplot:()=>zr,pl_text:()=>iT,pl_ticks:()=>Jr,pl_title:()=>xr,plot_axes:()=>oT,plot_bar:()=>IT,plot_hist:()=>ET,plot_label:()=>lT,plot_legend:()=>uT,plot_pie:()=>hT,plot_plot:()=>pT,plot_plot_bar:()=>rT,plot_plot_easy:()=>_T,plot_plot_scatter:()=>TT,plot_plot_xy:()=>dT,plot_savefig:()=>cT,plot_show:()=>sT,plot_subplot:()=>MT,plot_text:()=>RT,plot_ticks:()=>OT,plot_title:()=>aT,series_create:()=>Nr,series_create_from_index:()=>Pr,series_create_from_text:()=>Vr,series_get_num:()=>yr,series_index_value:()=>Yr});var V={};t.r(V),t.d(V,{inout_input:()=>mT,inout_print:()=>gT,inout_print_end:()=>CT,inout_print_inline:()=>AT,inout_print_many:()=>ST,inout_type_input:()=>LT});var Y={};t.r(Y),t.d(Y,{controls_end_program:()=>NT,controls_millis:()=>DT,time_localtime:()=>PT});var y={};t.r(y),t.d(y,{turtle_bgcolor:()=>QT,turtle_bgcolor_hex:()=>$T,turtle_bgcolor_hex_new:()=>id,turtle_circle:()=>WT,turtle_circle_advanced:()=>jT,turtle_clear:()=>XT,turtle_clone:()=>zT,turtle_color:()=>_d,turtle_color_hex:()=>od,turtle_color_seclet:()=>Id,turtle_create:()=>fT,turtle_done:()=>FT,turtle_exitonclick:()=>vT,turtle_fill:()=>xT,turtle_fillcolor:()=>ZT,turtle_fillcolor_hex:()=>ed,turtle_fillcolor_hex_new:()=>sd,turtle_getscreen:()=>hd,turtle_goto:()=>kT,turtle_listen:()=>cd,turtle_move:()=>VT,turtle_numinput:()=>ld,turtle_onclick:()=>Od,turtle_onkey:()=>Ed,turtle_ontimer:()=>Md,turtle_pencolor:()=>JT,turtle_pencolor_hex:()=>td,turtle_pencolor_hex_new:()=>nd,turtle_penup:()=>BT,turtle_pos_shape:()=>UT,turtle_rotate:()=>YT,turtle_screen_delay:()=>bT,turtle_screen_savefig:()=>Rd,turtle_setheading:()=>yT,turtle_setxy:()=>KT,turtle_shape:()=>pd,turtle_shapesize:()=>ud,turtle_size:()=>wT,turtle_size_speed:()=>GT,turtle_speed:()=>HT,turtle_textinput:()=>ad,turtle_visible:()=>qT,turtle_write:()=>rd,turtle_write_format:()=>Td,turtle_write_format_skulpt:()=>dd});var b={};t.r(b),t.d(b,{Turn:()=>fd,addOil:()=>Kd,game_get_character_img:()=>bd,game_get_local_img:()=>Yd,game_get_path_img:()=>Xd,game_init:()=>md,get_actor_point:()=>Vd,initSettedMap_1:()=>Ad,initSettedMap_2:()=>Cd,initSettedMap_3:()=>Ld,initSettedMap_4:()=>Sd,initSettedMap_5:()=>Dd,initSettedMap_6:()=>Nd,initSettedMap_7:()=>Pd,initialize:()=>kd,isBarrier:()=>xd,isCirculationRight:()=>jd,isDone:()=>Fd,isLightGreen:()=>Hd,isLightRed:()=>Wd,isOilFull:()=>wd,isPath:()=>vd,move_direction_steps:()=>gd,place_item:()=>Ud,randomOil:()=>Gd,set_map:()=>yd,set_pathtype:()=>Bd});const k=Blockly,U=Mixly,X={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},B=X,x={};x.NAME_TYPE=k.PROCEDURE_CATEGORY_NAME,x.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Z,controls_typeLists:()=>z,lists_zip:()=>$,lists_zip_container:()=>tt,lists_zip_item:()=>et,unpack_iterable_object:()=>it,variables_change:()=>Q,variables_get:()=>j,variables_global:()=>J,variables_set:()=>q});var i={};t.r(i),t.d(i,{base_setup:()=>ot,controls_delay:()=>_t,controls_end_program:()=>pt,controls_except:()=>Rt,controls_finally:()=>mt,controls_flow_statements:()=>dt,controls_for:()=>It,controls_forEach:()=>lt,controls_for_range:()=>ht,controls_if:()=>ut,controls_if_else:()=>Mt,controls_if_elseif:()=>Ot,controls_if_if:()=>Et,controls_lambda:()=>At,controls_main:()=>st,controls_pass:()=>Ct,controls_range:()=>at,controls_repeat_ext:()=>gt,controls_thread:()=>Lt,controls_try:()=>ct,controls_try_finally:()=>Tt,controls_whileUntil:()=>rt,datetime_fromtimestamp:()=>Ft,do_while:()=>St,garbage_collection:()=>Dt,gene_unique_identifier:()=>vt,get_mem_alloc:()=>Nt,get_mem_free:()=>Pt,get_unique_identifier:()=>ft});var n={};t.r(n),t.d(n,{base_map:()=>$t,generate_cartesian_product:()=>ee,math_arithmetic:()=>kt,math_bit:()=>Xt,math_constant:()=>yt,math_constant_mp:()=>bt,math_constrain:()=>Kt,math_dec:()=>xt,math_degree_to_radian:()=>ne,math_indexer_number:()=>qt,math_map:()=>jt,math_max_min:()=>wt,math_number:()=>Yt,math_number_base_conversion:()=>Ht,math_radian_to_degree:()=>ie,math_random:()=>Wt,math_random_seed:()=>Qt,math_round:()=>Jt,math_selfcalcu:()=>Ut,math_to_int:()=>Gt,math_trig:()=>Bt,text_to_number:()=>Zt,text_to_number_skulpt:()=>zt,turn_to_int:()=>te});var s={};t.r(s),t.d(s,{ascii_to_char:()=>ae,char_to_ascii:()=>le,number_to_text:()=>re,os_system:()=>be,text:()=>oe,text_capital:()=>Re,text_center:()=>me,text_char:()=>pe,text_char_at:()=>Ie,text_char_at2:()=>de,text_char_at3:()=>ve,text_compareTo:()=>Fe,text_compare_to:()=>ce,text_create_with_container:()=>Ne,text_create_with_item:()=>Pe,text_encode:()=>Ye,text_equals_starts_ends:()=>Me,text_eval:()=>ye,text_find:()=>ge,text_format:()=>De,text_format_noreturn:()=>Ve,text_join:()=>ue,text_join_seq:()=>Ae,text_length:()=>Te,text_random_char:()=>he,text_replace:()=>Ce,text_split:()=>Le,text_strip:()=>Se,text_substring:()=>Oe,text_substring2:()=>Ee,text_substring3:()=>fe,text_textarea:()=>_e});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Mi,content_in_lists:()=>Ri,enumerate:()=>ci,list_many_input:()=>oi,list_tolist:()=>ai,list_tolist2:()=>Oi,list_trig:()=>ii,lists_2d_get_col_row_data:()=>xe,lists_2d_get_data_with_col_row:()=>Be,lists_append_extend:()=>je,lists_change_to:()=>si,lists_change_to_general:()=>pi,lists_clear:()=>ze,lists_create_with:()=>Ge,lists_create_with2:()=>li,lists_create_with_container:()=>He,lists_create_with_item:()=>We,lists_create_with_noreturn:()=>_i,lists_create_with_text:()=>we,lists_create_with_text2:()=>ri,lists_del_general:()=>ui,lists_find:()=>ei,lists_getIndex3:()=>Ti,lists_getSublist3:()=>di,lists_get_index:()=>Ue,lists_get_random_item:()=>qe,lists_get_random_sublist:()=>Qe,lists_get_sublist:()=>Xe,lists_insert_value:()=>Je,lists_insert_value2:()=>hi,lists_pop:()=>ti,lists_remove_at:()=>$e,lists_remove_at2:()=>Ei,lists_reverse:()=>Ze,lists_setIndex3:()=>Ii,lists_set_index:()=>Ke,lists_sort:()=>ni});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>bi,dicts_add_or_change:()=>Ni,dicts_clear:()=>Fi,dicts_create_with:()=>gi,dicts_create_with_container:()=>Ai,dicts_create_with_item:()=>Ci,dicts_create_with_noreturn:()=>Xi,dicts_deldict:()=>yi,dicts_delete:()=>Pi,dicts_get:()=>Si,dicts_get_default:()=>Di,dicts_items:()=>vi,dicts_keys:()=>Li,dicts_length:()=>Yi,dicts_pop:()=>ki,dicts_setdefault:()=>Ui,dicts_to_json:()=>xi,dicts_to_json2:()=>Hi,dicts_to_to:()=>wi,dicts_todict:()=>Bi,dicts_update:()=>fi,dicts_values:()=>Vi,json_to_dicts:()=>Gi});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ji,logic_compare:()=>Ki,logic_compare_continous:()=>ji,logic_is:()=>tn,logic_is_in:()=>$i,logic_negate:()=>Qi,logic_null:()=>Zi,logic_operation:()=>qi,logic_tobool:()=>en,logic_true_or_false:()=>zi});var u={};t.r(u),t.d(u,{sdcard_mount:()=>Ln,sdcard_use_spi_init:()=>Cn,storage_can_write_ornot:()=>rn,storage_change_dir:()=>gn,storage_close_file:()=>dn,storage_delete_file:()=>hn,storage_file_seek:()=>Mn,storage_file_tell:()=>On,storage_file_write:()=>pn,storage_fileopen:()=>sn,storage_fileopen_new:()=>on,storage_fileopen_new_encoding:()=>_n,storage_get_a_line:()=>ln,storage_get_contents:()=>an,storage_get_contents_without_para:()=>un,storage_get_current_dir:()=>cn,storage_get_file_size:()=>En,storage_get_filename:()=>Tn,storage_is_file:()=>An,storage_list_all_files:()=>In,storage_make_dir:()=>Rn,storage_open_file_with_os:()=>nn,storage_rename:()=>mn});var a={};t.r(a),t.d(a,{procedures_callnoreturn:()=>fn,procedures_callreturn:()=>Fn,procedures_defnoreturn:()=>Sn,procedures_defreturn:()=>Dn,procedures_ifreturn:()=>vn,procedures_mutatorarg:()=>Pn,procedures_mutatorcontainer:()=>Nn,procedures_return:()=>Vn});var l={};t.r(l),t.d(l,{tuple_change_to:()=>Wn,tuple_create_with:()=>yn,tuple_create_with_container:()=>bn,tuple_create_with_item:()=>kn,tuple_create_with_noreturn:()=>Qn,tuple_create_with_text2:()=>Un,tuple_create_with_text_return:()=>Xn,tuple_del:()=>Gn,tuple_find:()=>Kn,tuple_getIndex:()=>Bn,tuple_getSublist:()=>qn,tuple_get_random_item:()=>Zn,tuple_get_sublist:()=>Jn,tuple_input:()=>$n,tuple_join:()=>wn,tuple_length:()=>xn,tuple_max:()=>Hn,tuple_totuple:()=>zn,tuple_trig:()=>jn});var r={};t.r(r),t.d(r,{set_add_discard:()=>as,set_clear:()=>_s,set_create_with:()=>es,set_create_with_container:()=>is,set_create_with_item:()=>ns,set_create_with_text_return:()=>Ts,set_length:()=>ss,set_operate:()=>ps,set_operate_update:()=>us,set_pop:()=>os,set_sub:()=>ls,set_toset:()=>ds,set_update:()=>rs});var T={};t.r(T),t.d(T,{html_content:()=>Ms,html_content_more:()=>cs,html_document:()=>hs,html_form:()=>ms,html_head_body:()=>Os,html_style:()=>Rs,html_style_color:()=>As,html_style_content:()=>gs,html_text:()=>Cs,html_title:()=>Es});var d={};t.r(d),t.d(d,{attribute_access:()=>Us,function_call:()=>ys,function_call_container:()=>bs,function_call_item:()=>ks,raw_block:()=>Ds,raw_empty:()=>Ps,raw_expression:()=>Ns,raw_table:()=>Ss,text_comment:()=>fs,text_print_multiple:()=>vs,text_print_multiple_container:()=>Vs,text_print_multiple_item:()=>Ys,type_check:()=>Fs});var I={};t.r(I),t.d(I,{array_create:()=>eo,array_toarray:()=>Eo,dataframe_create:()=>Gs,dataframe_create_from_index:()=>Hs,dataframe_create_from_one_index:()=>ws,dataframe_get:()=>To,numpy_trig:()=>ao,pandas_readcsv:()=>ro,pl_axes:()=>Zs,pl_bar:()=>oo,pl_hist:()=>po,pl_label:()=>to,pl_legend:()=>zs,pl_pie:()=>_o,pl_plot:()=>Qs,pl_plot_bar:()=>io,pl_plot_easy:()=>qs,pl_plot_scatter:()=>no,pl_plot_xy:()=>so,pl_savefig:()=>Io,pl_show:()=>Js,pl_subplot:()=>lo,pl_text:()=>ho,pl_ticks:()=>uo,pl_title:()=>$s,plot_axes:()=>Ro,plot_bar:()=>Do,plot_hist:()=>Po,plot_label:()=>Ao,plot_legend:()=>mo,plot_pie:()=>No,plot_plot:()=>Mo,plot_plot_bar:()=>Co,plot_plot_easy:()=>Oo,plot_plot_scatter:()=>Lo,plot_plot_xy:()=>So,plot_savefig:()=>vo,plot_show:()=>co,plot_subplot:()=>Fo,plot_text:()=>Vo,plot_ticks:()=>fo,plot_title:()=>go,series_create:()=>Bs,series_create_from_index:()=>xs,series_create_from_text:()=>Ws,series_get_num:()=>js,series_index_value:()=>Ks});var h={};t.r(h),t.d(h,{inout_input:()=>yo,inout_print:()=>bo,inout_print_container:()=>xo,inout_print_end:()=>Uo,inout_print_inline:()=>ko,inout_print_item:()=>Go,inout_print_many:()=>Bo,inout_type_input:()=>Xo});var E={};t.r(E),t.d(E,{Panic_with_status_code:()=>jo,base_delay:()=>Ho,controls_millis:()=>Wo,controls_mstimer2:()=>Qo,controls_mstimer2_start:()=>Jo,controls_mstimer2_stop:()=>Zo,reset:()=>qo,time_localtime:()=>Ko,time_sleep:()=>zo});var O={};t.r(O),t.d(O,{turtle_bgcolor:()=>c_,turtle_bgcolor_hex:()=>N_,turtle_bgcolor_hex_new:()=>A_,turtle_circle:()=>E_,turtle_circle_advanced:()=>O_,turtle_clear:()=>l_,turtle_clone:()=>g_,turtle_color:()=>S_,turtle_color_hex:()=>D_,turtle_color_seclet:()=>U_,turtle_create:()=>t_,turtle_done:()=>e_,turtle_exitonclick:()=>i_,turtle_fill:()=>T_,turtle_fillcolor:()=>m_,turtle_fillcolor_hex:()=>f_,turtle_fillcolor_hex_new:()=>L_,turtle_getscreen:()=>X_,turtle_goto:()=>p_,turtle_listen:()=>w_,turtle_move:()=>n_,turtle_numinput:()=>V_,turtle_onclick:()=>x_,turtle_onkey:()=>B_,turtle_ontimer:()=>G_,turtle_pencolor:()=>R_,turtle_pencolor_hex:()=>P_,turtle_pencolor_hex_new:()=>C_,turtle_penup:()=>r_,turtle_pos_shape:()=>a_,turtle_rotate:()=>s_,turtle_screen_delay:()=>__,turtle_screen_savefig:()=>H_,turtle_setheading:()=>o_,turtle_setxy:()=>u_,turtle_shape:()=>F_,turtle_shapesize:()=>v_,turtle_size:()=>I_,turtle_size_speed:()=>d_,turtle_speed:()=>h_,turtle_textinput:()=>Y_,turtle_visible:()=>M_,turtle_write:()=>y_,turtle_write_format:()=>b_,turtle_write_format_skulpt:()=>k_});var M={};t.r(M),t.d(M,{Turn:()=>tp,addOil:()=>Ep,game_get_character_img:()=>up,game_get_local_img:()=>sp,game_get_path_img:()=>_p,game_init:()=>z_,get_actor_point:()=>lp,initSettedMap_1:()=>W_,initSettedMap_2:()=>K_,initSettedMap_3:()=>j_,initSettedMap_4:()=>q_,initSettedMap_5:()=>Q_,initSettedMap_6:()=>J_,initSettedMap_7:()=>Z_,initialize:()=>ap,isBarrier:()=>rp,isCirculationRight:()=>Op,isDone:()=>ep,isLightGreen:()=>Ip,isLightRed:()=>hp,isOilFull:()=>dp,isPath:()=>ip,move_direction_steps:()=>$_,place_item:()=>pp,randomOil:()=>Tp,set_map:()=>np,set_pathtype:()=>op});var c={};t.r(c),t.d(c,{controls_type:()=>gp,controls_typeLists:()=>Ap,lists_zip:()=>Cp,unpack_iterable_object:()=>Lp,variables_change:()=>Rp,variables_get:()=>Mp,variables_global:()=>mp,variables_set:()=>cp});var R={};t.r(R),t.d(R,{Panic_with_status_code:()=>yp,base_setup:()=>Dp,controls_delay:()=>Yp,controls_flow_statements:()=>Vp,controls_for:()=>fp,controls_forEach:()=>Bp,controls_for_range:()=>Fp,controls_if:()=>Np,controls_interrupts:()=>Up,controls_lambda:()=>Gp,controls_main:()=>Sp,controls_millis:()=>bp,controls_nointerrupts:()=>Xp,controls_pass:()=>Hp,controls_range:()=>xp,controls_repeat:()=>zp,controls_repeat_ext:()=>jp,controls_thread:()=>Wp,controls_try_finally:()=>Pp,controls_whileUntil:()=>vp,datetime_fromtimestamp:()=>$p,do_while:()=>Kp,garbage_collection:()=>qp,gene_unique_identifier:()=>tu,get_mem_alloc:()=>Qp,get_mem_free:()=>Jp,get_unique_identifier:()=>Zp,reset:()=>kp,time_sleep:()=>wp});var m={};t.r(m),t.d(m,{base_map:()=>mu,generate_cartesian_product:()=>Au,math_arithmetic:()=>ou,math_bit:()=>su,math_constant:()=>iu,math_constant_mp:()=>nu,math_constrain:()=>Iu,math_dec:()=>au,math_degree_to_radian:()=>Lu,math_indexer_number:()=>Ou,math_map:()=>du,math_max_min:()=>ru,math_number:()=>eu,math_number_base_conversion:()=>hu,math_radian_to_degree:()=>Cu,math_random:()=>Tu,math_random_seed:()=>Eu,math_round:()=>Mu,math_selfcalcu:()=>_u,math_single:()=>pu,math_to_int:()=>lu,math_trig:()=>uu,text_to_number:()=>cu,text_to_number_skulpt:()=>Ru,turn_to_int:()=>gu});var g={};t.r(g),t.d(g,{ascii_to_char:()=>fu,char_to_ascii:()=>Fu,number_to_text:()=>vu,os_system:()=>ea,text:()=>Su,text_capital:()=>xu,text_center:()=>Gu,text_char:()=>Nu,text_char_at:()=>yu,text_char_at2:()=>Yu,text_char_at3:()=>zu,text_compareTo:()=>Zu,text_compare_to:()=>Uu,text_encode:()=>$u,text_equals_starts_ends:()=>ku,text_eval:()=>ta,text_find:()=>wu,text_format:()=>qu,text_format_noreturn:()=>Qu,text_join:()=>Pu,text_join_seq:()=>Hu,text_length:()=>Vu,text_random_char:()=>bu,text_replace:()=>Wu,text_split:()=>Ku,text_strip:()=>ju,text_substring:()=>Bu,text_substring2:()=>Xu,text_substring3:()=>Ju,text_textarea:()=>Du});var A={};t.r(A),t.d(A,{content_in_lists:()=>ya,enumerate:()=>Ya,list_many_input:()=>ma,list_tolist:()=>va,list_tolist2:()=>Va,list_trig:()=>Ma,lists_2d_get_col_row_data:()=>sa,lists_2d_get_data_with_col_row:()=>na,lists_append_extend:()=>aa,lists_change_to:()=>Ra,lists_change_to_general:()=>Aa,lists_clear:()=>Ia,lists_create_with:()=>oa,lists_create_with2:()=>La,lists_create_with_noreturn:()=>ga,lists_create_with_text:()=>_a,lists_create_with_text2:()=>Sa,lists_del_general:()=>Ca,lists_find:()=>ha,lists_getIndex3:()=>Da,lists_getSublist3:()=>Na,lists_get_index:()=>pa,lists_get_random_item:()=>la,lists_get_random_sublist:()=>ra,lists_get_sublist:()=>ia,lists_insert_value:()=>Ta,lists_insert_value2:()=>fa,lists_pop:()=>Oa,lists_remove_at:()=>Ea,lists_remove_at2:()=>Fa,lists_reverse:()=>da,lists_setIndex3:()=>Pa,lists_set_index:()=>ua,lists_sort:()=>ca});var C={};t.r(C),t.d(C,{dicts_add_change_del:()=>qa,dicts_add_or_change:()=>Ba,dicts_clear:()=>wa,dicts_create_with:()=>ba,dicts_create_with_noreturn:()=>Za,dicts_deldict:()=>ja,dicts_delete:()=>xa,dicts_get:()=>Ua,dicts_get_default:()=>Xa,dicts_items:()=>Ha,dicts_keys:()=>ka,dicts_length:()=>Ka,dicts_pop:()=>Qa,dicts_setdefault:()=>Ja,dicts_to_json:()=>$a,dicts_to_json2:()=>il,dicts_to_to:()=>el,dicts_todict:()=>za,dicts_update:()=>Ga,dicts_values:()=>Wa,json_to_dicts:()=>tl});var L={};t.r(L),t.d(L,{logic_boolean:()=>pl,logic_compare:()=>nl,logic_compare_continous:()=>sl,logic_is:()=>rl,logic_is_in:()=>ll,logic_negate:()=>_l,logic_null:()=>ul,logic_operation:()=>ol,logic_tobool:()=>Tl,logic_true_or_false:()=>al});var S={};t.r(S),t.d(S,{sdcard_mount:()=>yl,sdcard_use_spi_init:()=>Yl,storage_can_write_ornot:()=>ml,storage_change_dir:()=>Pl,storage_close_file:()=>Al,storage_delete_file:()=>Ll,storage_file_seek:()=>Nl,storage_file_tell:()=>Dl,storage_file_write:()=>Ol,storage_fileopen:()=>Il,storage_fileopen_new:()=>hl,storage_fileopen_new_encoding:()=>El,storage_get_a_line:()=>Rl,storage_get_contents:()=>cl,storage_get_contents_without_para:()=>Ml,storage_get_current_dir:()=>fl,storage_get_file_size:()=>Sl,storage_get_filename:()=>gl,storage_is_file:()=>Vl,storage_list_all_files:()=>Cl,storage_make_dir:()=>Fl,storage_open_file_with_os:()=>dl,storage_rename:()=>vl});var D={};t.r(D),t.d(D,{procedures_callnoreturn:()=>Xl,procedures_callreturn:()=>Ul,procedures_defnoreturn:()=>kl,procedures_defreturn:()=>bl,procedures_ifreturn:()=>Bl,procedures_return:()=>xl});var N={};t.r(N),t.d(N,{tuple_change_to:()=>Jl,tuple_create_with:()=>Gl,tuple_create_with_noreturn:()=>tr,tuple_create_with_text2:()=>wl,tuple_create_with_text_return:()=>Hl,tuple_del:()=>jl,tuple_find:()=>Zl,tuple_getIndex:()=>Wl,tuple_getSublist:()=>$l,tuple_get_random_item:()=>ir,tuple_get_sublist:()=>er,tuple_input:()=>sr,tuple_join:()=>ql,tuple_length:()=>Kl,tuple_max:()=>Ql,tuple_totuple:()=>nr,tuple_trig:()=>zl});var P={};t.r(P),t.d(P,{set_add_discard:()=>rr,set_clear:()=>ur,set_create_with:()=>or,set_create_with_text_return:()=>Ir,set_length:()=>_r,set_operate:()=>ar,set_operate_update:()=>lr,set_pop:()=>pr,set_sub:()=>Tr,set_toset:()=>hr,set_update:()=>dr});var f={};t.r(f),t.d(f,{html_content:()=>cr,html_content_more:()=>Rr,html_document:()=>Er,html_form:()=>gr,html_head_body:()=>Mr,html_style:()=>mr,html_style_content:()=>Ar,html_text:()=>Cr,html_title:()=>Or});var F={};t.r(F),t.d(F,{attribute_access:()=>Fr,function_call:()=>fr,raw_block:()=>Lr,raw_empty:()=>Dr,raw_expression:()=>Sr,raw_table:()=>Nr,type_check:()=>Pr});var v={};t.r(v),t.d(v,{array_create:()=>jr,array_toarray:()=>pT,dataframe_create:()=>Yr,dataframe_create_from_index:()=>yr,dataframe_create_from_one_index:()=>br,dataframe_get:()=>sT,numpy_trig:()=>eT,pandas_readcsv:()=>nT,pl_axes:()=>xr,pl_bar:()=>Zr,pl_hist:()=>$r,pl_label:()=>Kr,pl_legend:()=>Hr,pl_pie:()=>zr,pl_plot:()=>wr,pl_plot_bar:()=>qr,pl_plot_easy:()=>Gr,pl_plot_scatter:()=>Qr,pl_plot_xy:()=>Jr,pl_savefig:()=>oT,pl_show:()=>Br,pl_subplot:()=>iT,pl_text:()=>_T,pl_ticks:()=>tT,pl_title:()=>Wr,plot_axes:()=>aT,plot_bar:()=>MT,plot_hist:()=>RT,plot_label:()=>IT,plot_legend:()=>TT,plot_pie:()=>cT,plot_plot:()=>rT,plot_plot_bar:()=>hT,plot_plot_easy:()=>lT,plot_plot_scatter:()=>ET,plot_plot_xy:()=>OT,plot_savefig:()=>AT,plot_show:()=>uT,plot_subplot:()=>gT,plot_text:()=>CT,plot_ticks:()=>mT,plot_title:()=>dT,series_create:()=>vr,series_create_from_index:()=>Vr,series_create_from_text:()=>kr,series_get_num:()=>Xr,series_index_value:()=>Ur});var V={};t.r(V),t.d(V,{inout_input:()=>LT,inout_print:()=>ST,inout_print_end:()=>NT,inout_print_inline:()=>DT,inout_print_many:()=>fT,inout_type_input:()=>PT});var Y={};t.r(Y),t.d(Y,{controls_end_program:()=>vT,controls_millis:()=>FT,time_localtime:()=>VT});var y={};t.r(y),t.d(y,{turtle_bgcolor:()=>$T,turtle_bgcolor_hex:()=>nd,turtle_bgcolor_hex_new:()=>_d,turtle_circle:()=>QT,turtle_circle_advanced:()=>ZT,turtle_clear:()=>wT,turtle_clone:()=>id,turtle_color:()=>ld,turtle_color_hex:()=>ad,turtle_color_seclet:()=>Md,turtle_create:()=>YT,turtle_done:()=>yT,turtle_exitonclick:()=>bT,turtle_fill:()=>WT,turtle_fillcolor:()=>ed,turtle_fillcolor_hex:()=>od,turtle_fillcolor_hex_new:()=>ud,turtle_getscreen:()=>cd,turtle_goto:()=>xT,turtle_listen:()=>Ad,turtle_move:()=>kT,turtle_numinput:()=>Id,turtle_onclick:()=>md,turtle_onkey:()=>Rd,turtle_ontimer:()=>gd,turtle_pencolor:()=>td,turtle_pencolor_hex:()=>sd,turtle_pencolor_hex_new:()=>pd,turtle_penup:()=>HT,turtle_pos_shape:()=>GT,turtle_rotate:()=>UT,turtle_screen_delay:()=>BT,turtle_screen_savefig:()=>Cd,turtle_setheading:()=>XT,turtle_setxy:()=>JT,turtle_shape:()=>rd,turtle_shapesize:()=>Td,turtle_size:()=>jT,turtle_size_speed:()=>KT,turtle_speed:()=>qT,turtle_textinput:()=>dd,turtle_visible:()=>zT,turtle_write:()=>hd,turtle_write_format:()=>Ed,turtle_write_format_skulpt:()=>Od});var b={};t.r(b),t.d(b,{Turn:()=>Yd,addOil:()=>Jd,game_get_character_img:()=>Bd,game_get_local_img:()=>Ud,game_get_path_img:()=>wd,game_init:()=>Ld,get_actor_point:()=>kd,initSettedMap_1:()=>Dd,initSettedMap_2:()=>Nd,initSettedMap_3:()=>Pd,initSettedMap_4:()=>fd,initSettedMap_5:()=>Fd,initSettedMap_6:()=>vd,initSettedMap_7:()=>Vd,initialize:()=>xd,isBarrier:()=>Wd,isCirculationRight:()=>Zd,isDone:()=>yd,isLightGreen:()=>qd,isLightRed:()=>Qd,isOilFull:()=>jd,isPath:()=>bd,move_direction_steps:()=>Sd,place_item:()=>Gd,randomOil:()=>Kd,set_map:()=>Xd,set_pathtype:()=>Hd});const k=Blockly,U=Mixly,X={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},B=X,x={};x.NAME_TYPE=k.PROCEDURE_CATEGORY_NAME,x.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+"while True:\n"+u.join("")+a.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+a.join("\n")},W.scrubNakedValue=function(t){return t+"\n"},W.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},W.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},W.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=k.utils.string.wrap(o,W.COMMENT_WRAP-3),n+=W.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const K=330,j={init:function(){this.setColour(K),this.appendDummyInput().appendField(new k.FieldTextInput(""),"VAR"),this.setOutput(!0),this.setTooltip(k.Msg.VARIABLES_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},q={init:function(){this.setColour(K),this.appendValueInput("VALUE").appendField(new k.FieldTextInput(""),"VAR").appendField(k.Msg.MIXLY_VALUE2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.VARIABLES_SET_TOOLTIP)},getVars:function(){var t=this.getFieldValue("VAR");return null==t?[]:t.split(",")},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},Q={init:function(){this.setColour(K);var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"],[k.Msg.LANG_MATH_BOOLEAN,"bool"],[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"]];this.appendValueInput("MYVALUE").appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0)}},J={init:function(){this.setColour(K),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_GLOBAL).setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},Z={init:function(){this.setColour(K),this.appendValueInput("DATA").appendField(k.Msg.MICROBIT_PYTHON_TYPE),this.setOutput(!0),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},z={init:function(){this.setColour(K),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new k.FieldDropdown([[k.Msg.LANG_MATH_INT,"int"],[k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,"float"],[k.Msg.MIXLY_MICROBIT_TYPE_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"],[k.Msg.LOGIC_NULL,"type(None)"]]),"type"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type");return k.Msg.MICROBIT_controls_TypeLists+{int:k.Msg.LANG_MATH_INT,float:k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,str:k.Msg.MIXLY_MICROBIT_TYPE_STRING,list:k.Msg.MIXLY_MICROBIT_TYPE_LIST,tuple:k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,dict:k.Msg.MIXLY_MICROBIT_TYPE_DICT,set:k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,image:k.Msg.MIXLY_MICROBIT_IMAGE,bytes:k.Msg.LANG_MATH_BYTE,NoneType:k.Msg.LOGIC_NULL}[e]}))}},$={init:function(){this.setColour(K),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setMutator(new k.icons.MutatorIcon(["lists_zip_item"],this)),this.setTooltip(k.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_zip_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},at={init:function(){this.setColour(nt),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},lt={init:function(){this.setColour(nt),this.appendValueInput("LIST").setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(k.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rt={init:function(){this.setColour(nt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new k.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(k.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Tt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},dt={init:function(){this.setColour(nt);var t=new k.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},It={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ht={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};rt.OPERATORS=[[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],dt.OPERATORS=[[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Et={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ot={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Rt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},gt={init:function(){this.jsonInit({message0:k.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:nt,tooltip:k.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:k.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},At={init:function(){this.setColour(nt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_STAT),this.setOutput(!0)}},Ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Lt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},St={init:function(){this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_REPEAT+k.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(k.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new k.FieldDropdown([[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(nt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Dt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Pt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ft={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET+k.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_GET_UNIQUE_IDEN)}},Ft={init:function(){this.setColour(nt),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(k.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},vt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Vt=230;k.FieldTextInput.math_number_validator=function(t){return String(t)},k.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Yt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},yt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},bt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},kt={init:function(){this.setColour(Vt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ut={init:function(){this.setColour(Vt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Xt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new k.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Bt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:k.Msg.MATH_TRIG_TOOLTIP_SIN,COS:k.Msg.MATH_TRIG_TOOLTIP_COS,TAN:k.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:k.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:k.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:k.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:k.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},xt={init:function(){var t=[[k.Msg.MATH_BIN,"bin"],[k.Msg.MATH_OCT,"oct"],[k.Msg.MATH_HEX,"hex"]];this.setColour(Vt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:k.Msg.MATH_DEC_TOOLTIP_BIN,oct:k.Msg.MATH_DEC_TOOLTIP_OCT,hex:k.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Gt={init:function(){var t=[[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"],[k.Msg.MATH_ABS,"fabs"],[k.Msg.MATH_SQRT,"sqrt"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:k.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:k.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:k.Msg.MATH_SINGLE_TOOLTIP_SQ,round:k.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:k.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:k.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},wt={init:function(){var t=[[k.Msg.MIXLY_MAX,"max"],[k.Msg.MIXLY_MIN,"min"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(new k.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(k.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:k.Msg.MIXLY_TOOLTIP_MATH_MAX,min:k.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ht={init:function(){var t=[[k.Msg.MATH_TWO,"two"],[k.Msg.MATH_EIGHT,"eight"],[k.Msg.MATH_TEN,"ten"],[k.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Vt),this.appendDummyInput("").appendField(k.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new k.FieldDropdown(t),"OP").appendField(k.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(k.Msg.MATH_ZHW).appendField(new k.FieldDropdown(t),"OP2").appendField(k.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:k.Msg.MATH_Before_two,eight:k.Msg.MATH_Before_eight,ten:k.Msg.MATH_Before_ten,sixteen:k.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:k.Msg.MATH_Behind_two,eight:k.Msg.MATH_Behind_eight,ten:k.Msg.MATH_Behind_ten,sixteen:k.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Wt={init:function(){var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Vt),this.setOutput(!0,Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_RANDOM).appendField(new k.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:k.Msg.LANG_MATH_INT,float:k.Msg.LANG_MATH_FLOAT_RANDOM};return k.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Kt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_CONSTRAIN_TOOLTIP)}},jt={init:function(){this.setColour(Vt),this.appendValueInput("NUM",Number).appendField(k.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(k.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(k.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_MAP)}},qt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},Qt={init:function(){this.setColour(Vt),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Jt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MATH_ROUND).appendField(k.Msg.TEXT_KEEP),this.appendDummyInput().appendField(k.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_ROUND_NEW_TOOLTIP)}},Zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"],[k.Msg.MIXLY_TO_BITES,"b"],[k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:k.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:k.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:k.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},$t=jt,te={init:function(){this.setColour(Vt),this.appendValueInput("VAR").appendField(k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ee={init:function(){this.setColour(Vt),this.itemCount_=1,this.setMutator(new k.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(k.Msg.MIXLY_PRODUCT+k.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(k.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(k.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const oe={init:function(){this.setColour(ie),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new k.FieldTextInput("",k.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(k.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new k.FieldImage(e,7,12,'"')}},_e={init:function(){this.setColour(ie),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(k.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},pe={init:function(){this.setColour(ie),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ue={init:function(){this.setColour(ie),this.appendValueInput("VAR").setCheck(String).appendField(k.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},ae={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},le={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},re={init:function(){this.WHERE_OPTIONS=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.TEXT_GET_INDEX_RANDOM+1+k.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(k.Msg.LISTS_GET_INDEX_GET,"MODE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(k.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+k.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",k.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:k.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:k.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:k.Msg.TEXT_GET_INDEX_RANDOM};return k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+k.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==k.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new k.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Te={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.LISTS_GET_INDEX_FROM_START+"n"+k.Msg.TEXT_CHARAT2)}},de={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(k.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(k.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ie={init:function(){this.WHERE_OPTIONS_1=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[k.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==k.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new k.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},he={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(k.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ee={init:function(){var t=[[k.Msg.MIXLY_EQUALS,"==="],[k.Msg.MIXLY_STARTSWITH,"startswith"],[k.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ie),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new k.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Oe={init:function(){this.setColour(ie),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_COMPARETO_HELP)}},Me={init:function(){var t=[[k.Msg.TEXT_UPPER,"upper"],[k.Msg.TEXT_TITLE,"title"],[k.Msg.TEXT_CAPITALIZE,"capitalize"],[k.Msg.TEXT_SWAPCASE,"swapcase"],[k.Msg.TEXT_LOWER,"lower"]];this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:k.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:k.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:k.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:k.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:k.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ce={init:function(){var t=[[k.Msg.TEXT_LJUST,"ljust"],[k.Msg.TEXT_CENTER,"center"],[k.Msg.TEXT_RJUST,"rjust"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(k.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(k.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Re={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(k.Msg.MIXLY_MID+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(k.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},me={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ge={init:function(){this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(k.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Ae={init:function(){this.setColour(ie),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(k.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(k.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ce={init:function(){var t=[[k.Msg.TEXT_TRIM_BOTH,"strip"],[k.Msg.TEXT_TRIM_LEFT,"lstrip"],[k.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ie),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new k.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(k.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:k.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:k.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:k.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Le={init:function(){this.setColour(ie),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new k.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},mi={init:function(){this.setColour(ci),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},gi={init:function(){this.setColour(ci),this.appendDummyInput().appendField(k.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ai={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_KEYS),this.setTooltip(k.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ci={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_TOOLTIP)}},Li={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Si={init:function(){this.setColour(ci),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(k.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Di={init:function(){this.setColour(ci),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_DELETE_TOOLTIP)}},Ni={init:function(){this.setColour(ci),this.appendValueInput("DICT2").setCheck("Dict").appendField(k.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(k.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(k.Msg.MIXLY_MID),this.setTooltip(k.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_CLEAR),this.setTooltip(k.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_ITEMS),this.setTooltip(k.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Fi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_VALUES),this.setTooltip(k.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},vi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_LENGTH),this.setTooltip(k.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Vi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_DELDICT),this.setTooltip(k.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Yi={init:function(){this.MODE=[[k.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[k.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(k.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=k.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=k.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new k.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},yi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setTooltip(k.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},bi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ki={init:function(){this.setColour(ci),this.appendDummyInput("").appendField(new k.FieldLabel(k.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new k.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(k.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ui={init:function(){this.setColour(ci),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Xi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Bi={init:function(){this.setColour(ci),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},xi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Gi={init:function(){this.setColour(ci),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},wi=210,Hi={init:function(){var t=k.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:k.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:k.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:k.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:k.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:k.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:k.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Wi={init:function(){var t=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new k.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ki={init:function(){var t=[[k.Msg.LOGIC_OPERATION_AND,"AND"],[k.Msg.LOGIC_OPERATION_OR,"OR"],[k.Msg.LOGIC_OPERATION_NOR,"NOR"],[k.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:k.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:k.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:k.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:k.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},ji={init:function(){this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(k.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(k.Msg.LOGIC_NEGATE_TOOLTIP)}},qi={init:function(){var t=[[k.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[k.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new k.FieldDropdown(t),"BOOL"),this.setTooltip(k.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Qi={init:function(){this.setColour(wi),this.setOutput(!0),this.appendDummyInput().appendField(k.Msg.LOGIC_NULL),this.setTooltip(k.Msg.LOGIC_NULL_TOOLTIP)}},Ji={init:function(){this.setColour(wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(k.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(k.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Zi={init:function(){var t=[[k.Msg.TEXT_APPEND_TO,"in"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(wi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new k.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(k.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.IN)}},zi={init:function(){var t=[[k.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},$i={init:function(){this.setColour(wi),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},tn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(k.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},en={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXPY_TEXT_ENCODE).appendField(new k.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},on={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},_n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},an={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.HTML_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},ln={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Tn={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const dn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},In={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},On={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Mn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+k.Msg.MIXLY_ESP32_SET+{mkdir:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(k.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.HTML_FILE,"isfile"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},gn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(k.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(k.Msg.MIXLY_SETUP+k.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(k.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},An={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(k.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Cn={init:function(){var t=k.Procedures.findLegalName("",this),e=new k.FieldTextInput(t,k.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new k.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&k.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(k.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(k.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(k.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(k.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=k.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),k.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{k.Events.enable()}},mutationToDom:function(t){var e=k.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ms={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(k.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},cs={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(k.Msg.HTML_FORM_CONTENT).appendField(new k.FieldDropdown([[k.Msg.HTML_TEXT,"text"],[k.Msg.HTML_EMAIL,"email"],[k.Msg.HTML_NUMBER,"number"],[k.Msg.HTML_PASSWORD,"password"],[k.Msg.HTML_CHECKBOX,"checkbox"],[k.Msg.HTML_RADIOBUTTON,"radiobutton"],[k.Msg.HTML_BUTTON,"button"],[k.Msg.HTML_COLOUR,"colour"],[k.Msg.HTML_DATE,"date"],[k.Msg.HTML_LOCALTIME,"local time"],[k.Msg.HTML_FILE,"file"],[k.Msg.HTML_HIDDEN,"hidden"],[k.Msg.HTML_IMAGE,"image"],[k.Msg.HTML_MONTH,"month"],[k.Msg.HTML_RANGE,"range"],[k.Msg.HTML_RESET,"reset"],[k.Msg.HTML_SEARCH,"search"],[k.Msg.HTML_SUBMIT,"submit"],[k.Msg.HTML_TELEPHONENUMBER,"telephone number"],[k.Msg.HTML_TIME,"time"],[k.Msg.HTML_URL,"url"],[k.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(k.Msg.HTML_NAME).appendField(new k.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(k.Msg.HTML_VALUE).appendField(new k.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rs={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ms={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gs={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(k.Msg.HTML_TEXT).appendField(new k.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},As=160,Cs={init:function(){this.setColour(As),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new k.FieldTable(""),"TEXT")}},Ls={init:function(){this.setColour(As),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT")}},Ss={init:function(){this.setColour(As),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ds={init:function(){this.setColour(As),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Ns={init:function(){this.setColour(As),this.appendDummyInput().appendTitle("Comment:").appendTitle(new k.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Ps={init:function(){this.setColour(As),this.appendValueInput("VALUE").appendField(k.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},fs={init:function(){this.setColour(As),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=k.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(ks),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_SPLITBYDOU).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},to={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},eo={init:function(){this.setColour(ks);var t=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],e=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},io={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},no={init:function(){this.setColour(ks);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},so={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},oo={init:function(){this.setColour(ks),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_o={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},po={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(ks),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(k.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setTooltip(k.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},uo={init:function(){this.setColour(ks),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ao={init:function(){this.setColour(ks),this.appendValueInput("FILENAME").appendField(k.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[k.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},lo={init:function(){this.setColour(ks),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(k.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new k.FieldDropdown([[k.Msg.DATAFRAME_COLUMN,"column"],[k.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(k.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},ro={init:function(){this.setColour(ks),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},To={init:function(){this.setColour(ks);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},Io={init:function(){this.setColour(ks),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},ho={init:function(){this.setColour(ks),this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Eo={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Oo={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mo={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},co={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ro={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mo={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},go={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},Ao={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(t),"DOT"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},Co={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Lo={init:function(){this.setColour(ks);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},So={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Do={init:function(){this.setColour(ks),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},No={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},Po={init:function(){this.setColour(ks),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},fo={init:function(){this.setColour(ks),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},Fo={init:function(){this.setColour(ks);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},vo=20,Vo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(k.Msg.INOUT_input_TOOLTIP)}},Yo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.BLOCKPY_PRINT_TOOLTIP)}},yo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},bo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(k.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},ko={init:function(){var t=[[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(vo),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("VAR").appendField(k.Msg.PROCEDURES_MUTATORCONTAINER_TITLE).setCheck(String),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{str:k.Msg.MIXLY_MIXPY_INOUT_STR_INPUT_TOOLTIP,int:k.Msg.MIXLY_MIXPY_INOUT_INT_INPUT_TOOLTIP,float:k.Msg.MIXLY_MIXPY_INOUT_FLOAT_INPUT_TOOLTIP}[t]}))}},Uo={init:function(){this.setColour(vo),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["inout_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("inout_print_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0?t:[["'无可用地图'","'无可用地图'"]]}},np={init:function(){this.appendValueInput("pathtype").setCheck(null).appendField("设置路径样式为"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},sp={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用路径'","'无可用路径'"]]}},op={init:function(){this.setColour(290),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("posx").setCheck(null).appendField("在("),this.appendDummyInput().appendField(","),this.appendValueInput("posy").setCheck(null).appendField(""),this.appendDummyInput().appendField(")放置").appendField(new k.FieldDropdown([["障碍","'wall'"],["金币","'coin'"]]),"item"),this.setTooltip("")}},_p={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用角色'","'无可用角色'"]]}},pp={init:function(){this.setColour(290),this.appendValueInput("character").setCheck(null).appendField("初始化角色为"),this.appendDummyInput().appendField("面朝").appendField(new k.FieldDropdown([["北","0"],["南","2"],["西","3"],["东","1"]]),"direction"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},up={init:function(){this.setColour(290),this.appendDummyInput().appendField("获取⻆⾊所获分数"),this.setOutput(!0,Number),this.setTooltip("")}},ap={init:function(){this.appendDummyInput().appendField(new k.FieldDropdown([["北","0"],["南","2"],["西","3"],["东","1"]]),"direction"),this.appendDummyInput().appendField("侧有障碍"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},lp={init:function(){this.appendDummyInput().appendField("随机生成小车油量"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},rp={init:function(){this.appendDummyInput().appendField("需要加油"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Tp={init:function(){this.appendDummyInput().appendField("信号灯为绿灯"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},dp={init:function(){this.appendDummyInput().appendField("信号灯为红灯"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Ip={init:function(){this.appendDummyInput().appendField("进加油站加油"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},hp={init:function(){this.appendDummyInput().appendField("检查程序循环数目是否正确"),this.setPreviousStatement(!0),this.setColour(290),this.setTooltip("")}},Ep=function(t,e){return[e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE),e.ORDER_ATOMIC]},Op=function(t,e){if(""==this.getFieldValue("VAR"))return" = None\n";var i=e.valueToCode(this,"VALUE",e.ORDER_ASSIGNMENT)||"None";return e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE)+" = "+i+"\n"},Mp=function(t,e){var i=this.getFieldValue("OP"),n=e.valueToCode(this,"MYVALUE",e.ORDER_ATOMIC)||"None";if("bytes"==i)var s=i+"("+n+',"UTF-8")';else s=i+"("+n+")";return[s,e.ORDER_ATOMIC]},cp=function(t,e){return"global "+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"None")+"\n"},Rp=function(t,e){return["type("+(e.valueToCode(this,"DATA",e.ORDER_ATOMIC)||"None")+")",e.ORDER_ATOMIC]},mp=function(t,e){return[this.getFieldValue("type"),e.ORDER_ATOMIC]},gp=function(t,e){for(var i=new Array(this.itemCount_),n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+u()+"("+t+", "+e+", "+i+") or "+a()+"("+t+", "+e+", "+i+")"},k.isNumber(n)&&k.isNumber(s)&&k.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const el=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},il=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},nl=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},sl=function(t,e){return["None",e.ORDER_ATOMIC]},ol=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},_l=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},pl=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ul=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},al=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ll=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},rl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Tl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},dl=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Il=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},hl=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},El=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ol=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ml=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},cl=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Rl=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ml=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},gl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Al=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Cl=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Ll=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Sl=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Dl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Nl=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Pl=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},fl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Fl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},vl=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),k.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},dr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ir=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},hr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Er=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Or=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Mr=function(t,e){return'"},cr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Rr=function(){return this.getFieldValue("TEXT")+"\n"},mr=function(t){return t.getFieldValue("TEXT")+"\n"},gr=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Ar=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Cr=function(){return""},Lr=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Sr=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o=0&&(n[s]=n[s].replace(" ",""));i="";for(s=0;s0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+"while True:\n"+u.join("")+a.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+a.join("\n")},W.scrubNakedValue=function(t){return t+"\n"},W.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},W.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},W.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=k.utils.string.wrap(o,W.COMMENT_WRAP-3),n+=W.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const K=330,j={init:function(){this.setColour(K),this.appendDummyInput().appendField(new k.FieldTextInput(""),"VAR"),this.setOutput(!0),this.setTooltip(k.Msg.VARIABLES_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},q={init:function(){this.setColour(K),this.appendValueInput("VALUE").appendField(new k.FieldTextInput(""),"VAR").appendField(k.Msg.MIXLY_VALUE2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.VARIABLES_SET_TOOLTIP)},getVars:function(){var t=this.getFieldValue("VAR");return null==t?[]:t.split(",")},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},Q={init:function(){this.setColour(K);var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"],[k.Msg.LANG_MATH_BOOLEAN,"bool"],[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"]];this.appendValueInput("MYVALUE").appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0)}},J={init:function(){this.setColour(K),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_GLOBAL).setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},Z={init:function(){this.setColour(K),this.appendValueInput("DATA").appendField(k.Msg.MICROBIT_PYTHON_TYPE),this.setOutput(!0),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},z={init:function(){this.setColour(K),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new k.FieldDropdown([[k.Msg.LANG_MATH_INT,"int"],[k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,"float"],[k.Msg.MIXLY_MICROBIT_TYPE_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"],[k.Msg.LOGIC_NULL,"type(None)"]]),"type"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type");return k.Msg.MICROBIT_controls_TypeLists+{int:k.Msg.LANG_MATH_INT,float:k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,str:k.Msg.MIXLY_MICROBIT_TYPE_STRING,list:k.Msg.MIXLY_MICROBIT_TYPE_LIST,tuple:k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,dict:k.Msg.MIXLY_MICROBIT_TYPE_DICT,set:k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,image:k.Msg.MIXLY_MICROBIT_IMAGE,bytes:k.Msg.LANG_MATH_BYTE,NoneType:k.Msg.LOGIC_NULL}[e]}))}},$={init:function(){this.setColour(K),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setMutator(new k.icons.MutatorIcon(["lists_zip_item"],this)),this.setTooltip(k.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_zip_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},at={init:function(){this.setColour(nt),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},lt={init:function(){this.setColour(nt),this.appendValueInput("LIST").setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(k.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rt={init:function(){this.setColour(nt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new k.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(k.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Tt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},dt={init:function(){this.setColour(nt);var t=new k.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},It={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ht={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};rt.OPERATORS=[[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],dt.OPERATORS=[[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Et={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ot={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Rt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},gt={init:function(){this.jsonInit({message0:k.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:nt,tooltip:k.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:k.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},At={init:function(){this.setColour(nt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_STAT),this.setOutput(!0)}},Ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Lt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},St={init:function(){this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_REPEAT+k.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(k.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new k.FieldDropdown([[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(nt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Dt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Pt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ft={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET+k.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_GET_UNIQUE_IDEN)}},Ft={init:function(){this.setColour(nt),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(k.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},vt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Vt=230;k.FieldTextInput.math_number_validator=function(t){return String(t)},k.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Yt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},yt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},bt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},kt={init:function(){this.setColour(Vt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ut={init:function(){this.setColour(Vt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Xt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new k.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Bt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:k.Msg.MATH_TRIG_TOOLTIP_SIN,COS:k.Msg.MATH_TRIG_TOOLTIP_COS,TAN:k.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:k.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:k.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:k.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:k.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},xt={init:function(){var t=[[k.Msg.MATH_BIN,"bin"],[k.Msg.MATH_OCT,"oct"],[k.Msg.MATH_HEX,"hex"]];this.setColour(Vt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:k.Msg.MATH_DEC_TOOLTIP_BIN,oct:k.Msg.MATH_DEC_TOOLTIP_OCT,hex:k.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Gt={init:function(){var t=[[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"],[k.Msg.MATH_ABS,"fabs"],[k.Msg.MATH_SQRT,"sqrt"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:k.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:k.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:k.Msg.MATH_SINGLE_TOOLTIP_SQ,round:k.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:k.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:k.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},wt={init:function(){var t=[[k.Msg.MIXLY_MAX,"max"],[k.Msg.MIXLY_MIN,"min"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(new k.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(k.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:k.Msg.MIXLY_TOOLTIP_MATH_MAX,min:k.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ht={init:function(){var t=[[k.Msg.MATH_TWO,"two"],[k.Msg.MATH_EIGHT,"eight"],[k.Msg.MATH_TEN,"ten"],[k.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Vt),this.appendDummyInput("").appendField(k.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new k.FieldDropdown(t),"OP").appendField(k.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(k.Msg.MATH_ZHW).appendField(new k.FieldDropdown(t),"OP2").appendField(k.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:k.Msg.MATH_Before_two,eight:k.Msg.MATH_Before_eight,ten:k.Msg.MATH_Before_ten,sixteen:k.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:k.Msg.MATH_Behind_two,eight:k.Msg.MATH_Behind_eight,ten:k.Msg.MATH_Behind_ten,sixteen:k.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Wt={init:function(){var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Vt),this.setOutput(!0,Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_RANDOM).appendField(new k.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:k.Msg.LANG_MATH_INT,float:k.Msg.LANG_MATH_FLOAT_RANDOM};return k.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Kt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_CONSTRAIN_TOOLTIP)}},jt={init:function(){this.setColour(Vt),this.appendValueInput("NUM",Number).appendField(k.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(k.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(k.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_MAP)}},qt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},Qt={init:function(){this.setColour(Vt),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Jt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MATH_ROUND).appendField(k.Msg.TEXT_KEEP),this.appendDummyInput().appendField(k.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_ROUND_NEW_TOOLTIP)}},Zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"],[k.Msg.MIXLY_TO_BITES,"b"],[k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:k.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:k.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:k.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},$t=jt,te={init:function(){this.setColour(Vt),this.appendValueInput("VAR").appendField(k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ee={init:function(){this.setColour(Vt),this.itemCount_=1,this.setMutator(new k.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(k.Msg.MIXLY_PRODUCT+k.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(k.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(k.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const pe={init:function(){this.setColour(se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new k.FieldTextInput("",k.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(k.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new k.FieldImage(e,7,12,'"')}},ue={init:function(){this.setColour(se),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(k.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ae={init:function(){this.setColour(se),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},le={init:function(){this.setColour(se),this.appendValueInput("VAR").setCheck(String).appendField(k.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},re={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Te={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},de={init:function(){this.WHERE_OPTIONS=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.TEXT_GET_INDEX_RANDOM+1+k.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(k.Msg.LISTS_GET_INDEX_GET,"MODE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(k.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+k.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",k.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:k.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:k.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:k.Msg.TEXT_GET_INDEX_RANDOM};return k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+k.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==k.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new k.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ie={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.LISTS_GET_INDEX_FROM_START+"n"+k.Msg.TEXT_CHARAT2)}},he={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(k.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(k.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ee={init:function(){this.WHERE_OPTIONS_1=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[k.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==k.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new k.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Oe={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(k.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Me={init:function(){var t=[[k.Msg.MIXLY_EQUALS,"==="],[k.Msg.MIXLY_STARTSWITH,"startswith"],[k.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new k.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ce={init:function(){this.setColour(se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_COMPARETO_HELP)}},Re={init:function(){var t=[[k.Msg.TEXT_UPPER,"upper"],[k.Msg.TEXT_TITLE,"title"],[k.Msg.TEXT_CAPITALIZE,"capitalize"],[k.Msg.TEXT_SWAPCASE,"swapcase"],[k.Msg.TEXT_LOWER,"lower"]];this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:k.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:k.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:k.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:k.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:k.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},me={init:function(){var t=[[k.Msg.TEXT_LJUST,"ljust"],[k.Msg.TEXT_CENTER,"center"],[k.Msg.TEXT_RJUST,"rjust"]];this.setColour(se),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(k.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(k.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},ge={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(k.Msg.MIXLY_MID+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(k.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ae={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Ce={init:function(){this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(k.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Le={init:function(){this.setColour(se),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(k.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(k.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Se={init:function(){var t=[[k.Msg.TEXT_TRIM_BOTH,"strip"],[k.Msg.TEXT_TRIM_LEFT,"lstrip"],[k.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(se),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new k.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(k.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:k.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:k.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:k.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},De={init:function(){this.setColour(se),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new k.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ai={init:function(){this.setColour(mi),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Ci={init:function(){this.setColour(mi),this.appendDummyInput().appendField(k.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Li={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_KEYS),this.setTooltip(k.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Si={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_TOOLTIP)}},Di={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Ni={init:function(){this.setColour(mi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(k.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Pi={init:function(){this.setColour(mi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_DELETE_TOOLTIP)}},fi={init:function(){this.setColour(mi),this.appendValueInput("DICT2").setCheck("Dict").appendField(k.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(k.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(k.Msg.MIXLY_MID),this.setTooltip(k.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_CLEAR),this.setTooltip(k.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_ITEMS),this.setTooltip(k.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Vi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_VALUES),this.setTooltip(k.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Yi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_LENGTH),this.setTooltip(k.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},yi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_DELDICT),this.setTooltip(k.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bi={init:function(){this.MODE=[[k.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[k.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(k.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=k.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=k.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new k.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},ki={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setTooltip(k.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Ui={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Xi={init:function(){this.setColour(mi),this.appendDummyInput("").appendField(new k.FieldLabel(k.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new k.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(k.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Bi={init:function(){this.setColour(mi),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},xi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Gi={init:function(){this.setColour(mi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},wi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Hi={init:function(){this.setColour(mi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Wi=210,Ki={init:function(){var t=k.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:k.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:k.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:k.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:k.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:k.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:k.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},ji={init:function(){var t=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new k.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},qi={init:function(){var t=[[k.Msg.LOGIC_OPERATION_AND,"AND"],[k.Msg.LOGIC_OPERATION_OR,"OR"],[k.Msg.LOGIC_OPERATION_NOR,"NOR"],[k.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:k.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:k.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:k.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:k.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Qi={init:function(){this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(k.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(k.Msg.LOGIC_NEGATE_TOOLTIP)}},Ji={init:function(){var t=[[k.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[k.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new k.FieldDropdown(t),"BOOL"),this.setTooltip(k.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Zi={init:function(){this.setColour(Wi),this.setOutput(!0),this.appendDummyInput().appendField(k.Msg.LOGIC_NULL),this.setTooltip(k.Msg.LOGIC_NULL_TOOLTIP)}},zi={init:function(){this.setColour(Wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(k.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(k.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},$i={init:function(){var t=[[k.Msg.TEXT_APPEND_TO,"in"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Wi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new k.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(k.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.IN)}},tn={init:function(){var t=[[k.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},en={init:function(){this.setColour(Wi),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},nn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(k.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},on={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},_n={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXPY_TEXT_ENCODE).appendField(new k.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},pn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},an={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},ln={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.HTML_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},In={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},cn={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Rn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+k.Msg.MIXLY_ESP32_SET+{mkdir:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(k.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.HTML_FILE,"isfile"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Cn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(k.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(k.Msg.MIXLY_SETUP+k.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(k.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ln={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(k.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Sn={init:function(){var t=k.Procedures.findLegalName("",this),e=new k.FieldTextInput(t,k.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new k.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&k.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(k.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(k.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(k.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(k.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=k.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),k.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{k.Events.enable()}},mutationToDom:function(t){var e=k.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rs={init:function(){this.setColour(Is),this.appendDummyInput().appendField(k.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ms={init:function(){this.setColour(Is),this.appendDummyInput().appendField(k.Msg.HTML_FORM_CONTENT).appendField(new k.FieldDropdown([[k.Msg.HTML_TEXT,"text"],[k.Msg.HTML_EMAIL,"email"],[k.Msg.HTML_NUMBER,"number"],[k.Msg.HTML_PASSWORD,"password"],[k.Msg.HTML_CHECKBOX,"checkbox"],[k.Msg.HTML_RADIOBUTTON,"radiobutton"],[k.Msg.HTML_BUTTON,"button"],[k.Msg.HTML_COLOUR,"colour"],[k.Msg.HTML_DATE,"date"],[k.Msg.HTML_LOCALTIME,"local time"],[k.Msg.HTML_FILE,"file"],[k.Msg.HTML_HIDDEN,"hidden"],[k.Msg.HTML_IMAGE,"image"],[k.Msg.HTML_MONTH,"month"],[k.Msg.HTML_RANGE,"range"],[k.Msg.HTML_RESET,"reset"],[k.Msg.HTML_SEARCH,"search"],[k.Msg.HTML_SUBMIT,"submit"],[k.Msg.HTML_TELEPHONENUMBER,"telephone number"],[k.Msg.HTML_TIME,"time"],[k.Msg.HTML_URL,"url"],[k.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(k.Msg.HTML_NAME).appendField(new k.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(k.Msg.HTML_VALUE).appendField(new k.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gs={init:function(){this.setColour(Is),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},As={init:function(){this.setColour(Is),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Cs={init:function(){this.setColour(Is),this.appendDummyInput().appendField(k.Msg.HTML_TEXT).appendField(new k.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ls=160,Ss={init:function(){this.setColour(Ls),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new k.FieldTable(""),"TEXT")}},Ds={init:function(){this.setColour(Ls),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT")}},Ns={init:function(){this.setColour(Ls),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ps={init:function(){this.setColour(Ls),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},fs={init:function(){this.setColour(Ls),this.appendDummyInput().appendTitle("Comment:").appendTitle(new k.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Fs={init:function(){this.setColour(Ls),this.appendValueInput("VALUE").appendField(k.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},vs={init:function(){this.setColour(Ls),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=k.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},to={init:function(){this.setColour(Xs);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eo={init:function(){this.setColour(Xs),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_SPLITBYDOU).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},io={init:function(){this.setColour(Xs);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},no={init:function(){this.setColour(Xs);var t=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],e=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},so={init:function(){this.setColour(Xs);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},oo={init:function(){this.setColour(Xs);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},_o={init:function(){this.setColour(Xs);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},po={init:function(){this.setColour(Xs),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uo={init:function(){this.setColour(Xs);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},ao={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(Xs),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(k.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setTooltip(k.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},lo={init:function(){this.setColour(Xs),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ro={init:function(){this.setColour(Xs),this.appendValueInput("FILENAME").appendField(k.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[k.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},To={init:function(){this.setColour(Xs),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(k.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new k.FieldDropdown([[k.Msg.DATAFRAME_COLUMN,"column"],[k.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(k.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},Io={init:function(){this.setColour(Xs),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},ho={init:function(){this.setColour(Xs);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},Eo={init:function(){this.setColour(Xs),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},Oo={init:function(){this.setColour(Xs),this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mo={init:function(){this.setColour(Xs);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},co={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ro={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mo={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},go={init:function(){this.setColour(Xs),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ao={init:function(){this.setColour(Xs);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Co={init:function(){this.setColour(Xs);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},Lo={init:function(){this.setColour(Xs);var t=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(t),"DOT"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},So={init:function(){this.setColour(Xs);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Do={init:function(){this.setColour(Xs);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},No={init:function(){this.setColour(Xs);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Po={init:function(){this.setColour(Xs),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fo={init:function(){this.setColour(Xs);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},Fo={init:function(){this.setColour(Xs),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},vo={init:function(){this.setColour(Xs),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},Vo={init:function(){this.setColour(Xs);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},Yo=20,yo={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(k.Msg.INOUT_input_TOOLTIP)}},bo={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.BLOCKPY_PRINT_TOOLTIP)}},ko={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},Uo={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(k.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},Xo={init:function(){var t=[[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Yo),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("VAR").appendField(k.Msg.PROCEDURES_MUTATORCONTAINER_TITLE).setCheck(String),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{str:k.Msg.MIXLY_MIXPY_INOUT_STR_INPUT_TOOLTIP,int:k.Msg.MIXLY_MIXPY_INOUT_INT_INPUT_TOOLTIP,float:k.Msg.MIXLY_MIXPY_INOUT_FLOAT_INPUT_TOOLTIP}[t]}))}},Bo={init:function(){this.setColour(Yo),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["inout_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("inout_print_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0?t:[["'无可用地图'","'无可用地图'"]]}},op={init:function(){this.appendValueInput("pathtype").setCheck(null).appendField("设置路径样式为"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},_p={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用路径'","'无可用路径'"]]}},pp={init:function(){this.setColour(290),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("posx").setCheck(null).appendField("在("),this.appendDummyInput().appendField(","),this.appendValueInput("posy").setCheck(null).appendField(""),this.appendDummyInput().appendField(")放置").appendField(new k.FieldDropdown([["障碍","'wall'"],["金币","'coin'"]]),"item"),this.setTooltip("")}},up={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用角色'","'无可用角色'"]]}},ap={init:function(){this.setColour(290),this.appendValueInput("character").setCheck(null).appendField("初始化角色为"),this.appendDummyInput().appendField("面朝").appendField(new k.FieldDropdown([["北","0"],["南","2"],["西","3"],["东","1"]]),"direction"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},lp={init:function(){this.setColour(290),this.appendDummyInput().appendField("获取⻆⾊所获分数"),this.setOutput(!0,Number),this.setTooltip("")}},rp={init:function(){this.appendDummyInput().appendField(new k.FieldDropdown([["北","0"],["南","2"],["西","3"],["东","1"]]),"direction"),this.appendDummyInput().appendField("侧有障碍"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Tp={init:function(){this.appendDummyInput().appendField("随机生成小车油量"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},dp={init:function(){this.appendDummyInput().appendField("需要加油"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Ip={init:function(){this.appendDummyInput().appendField("信号灯为绿灯"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},hp={init:function(){this.appendDummyInput().appendField("信号灯为红灯"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Ep={init:function(){this.appendDummyInput().appendField("进加油站加油"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},Op={init:function(){this.appendDummyInput().appendField("检查程序循环数目是否正确"),this.setPreviousStatement(!0),this.setColour(290),this.setTooltip("")}},Mp=function(t,e){return[e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE),e.ORDER_ATOMIC]},cp=function(t,e){if(""==this.getFieldValue("VAR"))return" = None\n";var i=e.valueToCode(this,"VALUE",e.ORDER_ASSIGNMENT)||"None";return e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE)+" = "+i+"\n"},Rp=function(t,e){var i=this.getFieldValue("OP"),n=e.valueToCode(this,"MYVALUE",e.ORDER_ATOMIC)||"None";if("bytes"==i)var s=i+"("+n+',"UTF-8")';else s=i+"("+n+")";return[s,e.ORDER_ATOMIC]},mp=function(t,e){return"global "+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"None")+"\n"},gp=function(t,e){return["type("+(e.valueToCode(this,"DATA",e.ORDER_ATOMIC)||"None")+")",e.ORDER_ATOMIC]},Ap=function(t,e){return[this.getFieldValue("type"),e.ORDER_ATOMIC]},Cp=function(t,e){for(var i=new Array(this.itemCount_),n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+u()+"("+t+", "+e+", "+i+") or "+a()+"("+t+", "+e+", "+i+")"},k.isNumber(n)&&k.isNumber(s)&&k.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const ol=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},_l=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},pl=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ul=function(t,e){return["None",e.ORDER_ATOMIC]},al=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ll=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},rl=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Tl=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},dl=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Il=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},hl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},El=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ol=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ml=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},cl=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Rl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ml=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},gl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Al=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Cl=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ll=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Sl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Dl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Nl=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Pl=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fl=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},vl=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Vl=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Yl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},yl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},bl=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),k.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Or=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Mr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},cr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Rr=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},mr=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},gr=function(t,e){return'"},Ar=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cr=function(){return this.getFieldValue("TEXT")+"\n"},Lr=function(t){return t.getFieldValue("TEXT")+"\n"},Sr=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Dr=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nr=function(){return""},Pr=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fr=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o=0&&(n[s]=n[s].replace(" ",""));i="";for(s=0;s{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Z,controls_typeLists:()=>z,lists_zip:()=>$,lists_zip_container:()=>tt,lists_zip_item:()=>et,unpack_iterable_object:()=>it,variables_change:()=>Q,variables_get:()=>j,variables_global:()=>J,variables_set:()=>q});var i={};t.r(i),t.d(i,{base_setup:()=>ot,controls_delay:()=>_t,controls_end_program:()=>pt,controls_except:()=>Rt,controls_finally:()=>mt,controls_flow_statements:()=>dt,controls_for:()=>It,controls_forEach:()=>lt,controls_for_range:()=>ht,controls_if:()=>ut,controls_if_else:()=>Mt,controls_if_elseif:()=>Ot,controls_if_if:()=>Et,controls_lambda:()=>gt,controls_main:()=>st,controls_pass:()=>Lt,controls_range:()=>at,controls_repeat_ext:()=>At,controls_thread:()=>Ct,controls_try:()=>ct,controls_try_finally:()=>Tt,controls_whileUntil:()=>rt,datetime_fromtimestamp:()=>Ft,do_while:()=>St,garbage_collection:()=>Dt,gene_unique_identifier:()=>vt,get_mem_alloc:()=>Nt,get_mem_free:()=>Pt,get_unique_identifier:()=>ft});var n={};t.r(n),t.d(n,{base_map:()=>$t,generate_cartesian_product:()=>ee,math_arithmetic:()=>kt,math_bit:()=>Ut,math_constant:()=>yt,math_constant_mp:()=>bt,math_constrain:()=>Kt,math_dec:()=>Bt,math_indexer_number:()=>qt,math_map:()=>jt,math_max_min:()=>wt,math_number:()=>Yt,math_number_base_conversion:()=>Ht,math_random:()=>Wt,math_random_seed:()=>Qt,math_round:()=>Jt,math_selfcalcu:()=>Xt,math_to_int:()=>xt,math_trig:()=>Gt,text_to_number:()=>Zt,text_to_number_skulpt:()=>zt,turn_to_int:()=>te});var s={};t.r(s),t.d(s,{ascii_to_char:()=>pe,char_to_ascii:()=>ue,number_to_text:()=>ae,os_system:()=>Ye,text:()=>ne,text_capital:()=>Me,text_center:()=>ce,text_char:()=>oe,text_char_at:()=>Te,text_char_at2:()=>re,text_char_at3:()=>fe,text_compareTo:()=>Pe,text_compare_to:()=>Oe,text_create_with_container:()=>Se,text_create_with_item:()=>De,text_encode:()=>ve,text_equals_starts_ends:()=>Ee,text_eval:()=>Ve,text_find:()=>Re,text_format:()=>Ce,text_format_noreturn:()=>Fe,text_join:()=>_e,text_join_seq:()=>me,text_length:()=>le,text_random_char:()=>de,text_replace:()=>Ae,text_split:()=>ge,text_strip:()=>Le,text_substring:()=>he,text_substring2:()=>Ie,text_substring3:()=>Ne,text_textarea:()=>se});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Ei,content_in_lists:()=>Mi,enumerate:()=>Oi,list_many_input:()=>ni,list_tolist:()=>pi,list_tolist2:()=>hi,list_trig:()=>ti,lists_2d_get_col_row_data:()=>Ue,lists_2d_get_data_with_col_row:()=>Xe,lists_append_extend:()=>We,lists_change_to:()=>ii,lists_change_to_general:()=>oi,lists_clear:()=>Je,lists_create_with:()=>Ge,lists_create_with2:()=>ui,lists_create_with_container:()=>xe,lists_create_with_item:()=>we,lists_create_with_noreturn:()=>si,lists_create_with_text:()=>Be,lists_create_with_text2:()=>ai,lists_del_general:()=>_i,lists_find:()=>$e,lists_getIndex3:()=>li,lists_getSublist3:()=>ri,lists_get_index:()=>be,lists_get_random_item:()=>Ke,lists_get_random_sublist:()=>je,lists_get_sublist:()=>ke,lists_insert_value:()=>qe,lists_insert_value2:()=>di,lists_pop:()=>ze,lists_remove_at:()=>Ze,lists_remove_at2:()=>Ii,lists_reverse:()=>Qe,lists_setIndex3:()=>Ti,lists_set_index:()=>He,lists_sort:()=>ei});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>Yi,dicts_add_or_change:()=>Si,dicts_clear:()=>Pi,dicts_create_with:()=>Ri,dicts_create_with_container:()=>mi,dicts_create_with_item:()=>Ai,dicts_create_with_noreturn:()=>ki,dicts_deldict:()=>Vi,dicts_delete:()=>Di,dicts_get:()=>Li,dicts_get_default:()=>Ci,dicts_items:()=>fi,dicts_keys:()=>gi,dicts_length:()=>vi,dicts_pop:()=>yi,dicts_setdefault:()=>bi,dicts_to_json:()=>Ui,dicts_to_json2:()=>xi,dicts_to_to:()=>Bi,dicts_todict:()=>Xi,dicts_update:()=>Ni,dicts_values:()=>Fi,json_to_dicts:()=>Gi});var p={};t.r(p),t.d(p,{logic_boolean:()=>qi,logic_compare:()=>Hi,logic_compare_continous:()=>Wi,logic_is:()=>zi,logic_is_in:()=>Zi,logic_negate:()=>ji,logic_null:()=>Qi,logic_operation:()=>Ki,logic_tobool:()=>$i,logic_true_or_false:()=>Ji});var u={};t.r(u),t.d(u,{sdcard_mount:()=>gn,sdcard_use_spi_init:()=>An,storage_can_write_ornot:()=>an,storage_change_dir:()=>Rn,storage_close_file:()=>rn,storage_delete_file:()=>dn,storage_file_seek:()=>En,storage_file_tell:()=>hn,storage_file_write:()=>on,storage_fileopen:()=>en,storage_fileopen_new:()=>nn,storage_fileopen_new_encoding:()=>sn,storage_get_a_line:()=>un,storage_get_contents:()=>pn,storage_get_contents_without_para:()=>_n,storage_get_current_dir:()=>On,storage_get_file_size:()=>In,storage_get_filename:()=>ln,storage_is_file:()=>mn,storage_list_all_files:()=>Tn,storage_make_dir:()=>Mn,storage_open_file_with_os:()=>tn,storage_rename:()=>cn});var a={};t.r(a),t.d(a,{procedures_callnoreturn:()=>Nn,procedures_callreturn:()=>Pn,procedures_defnoreturn:()=>Ln,procedures_defreturn:()=>Cn,procedures_ifreturn:()=>fn,procedures_mutatorarg:()=>Dn,procedures_mutatorcontainer:()=>Sn,procedures_return:()=>Fn});var l={};t.r(l),t.d(l,{tuple_change_to:()=>wn,tuple_create_with:()=>Vn,tuple_create_with_container:()=>Yn,tuple_create_with_item:()=>yn,tuple_create_with_noreturn:()=>jn,tuple_create_with_text2:()=>bn,tuple_create_with_text_return:()=>kn,tuple_del:()=>Gn,tuple_find:()=>Hn,tuple_getIndex:()=>Xn,tuple_getSublist:()=>Kn,tuple_get_random_item:()=>Qn,tuple_get_sublist:()=>qn,tuple_input:()=>Zn,tuple_join:()=>Bn,tuple_length:()=>Un,tuple_max:()=>xn,tuple_totuple:()=>Jn,tuple_trig:()=>Wn});var r={};t.r(r),t.d(r,{set_add_discard:()=>ps,set_clear:()=>ss,set_create_with:()=>$n,set_create_with_container:()=>ts,set_create_with_item:()=>es,set_create_with_text_return:()=>ls,set_length:()=>is,set_operate:()=>os,set_operate_update:()=>_s,set_pop:()=>ns,set_sub:()=>us,set_toset:()=>rs,set_update:()=>as});var T={};t.r(T),t.d(T,{html_content:()=>Es,html_content_more:()=>Os,html_document:()=>ds,html_form:()=>cs,html_head_body:()=>hs,html_style:()=>Ms,html_style_color:()=>ms,html_style_content:()=>Rs,html_text:()=>As,html_title:()=>Is});var d={};t.r(d),t.d(d,{attribute_access:()=>bs,function_call:()=>Vs,function_call_container:()=>Ys,function_call_item:()=>ys,raw_block:()=>Cs,raw_empty:()=>Ds,raw_expression:()=>Ss,raw_table:()=>Ls,text_comment:()=>Ns,text_print_multiple:()=>fs,text_print_multiple_container:()=>Fs,text_print_multiple_item:()=>vs,type_check:()=>Ps});var I={};t.r(I),t.d(I,{array_create:()=>$s,array_toarray:()=>Io,dataframe_create:()=>Gs,dataframe_create_from_index:()=>xs,dataframe_create_from_one_index:()=>Bs,dataframe_get:()=>lo,numpy_trig:()=>po,pandas_readcsv:()=>ao,pl_axes:()=>Qs,pl_bar:()=>no,pl_hist:()=>oo,pl_label:()=>zs,pl_legend:()=>Js,pl_pie:()=>so,pl_plot:()=>js,pl_plot_bar:()=>to,pl_plot_easy:()=>Ks,pl_plot_scatter:()=>eo,pl_plot_xy:()=>io,pl_savefig:()=>ro,pl_show:()=>qs,pl_subplot:()=>uo,pl_text:()=>To,pl_ticks:()=>_o,pl_title:()=>Zs,plot_axes:()=>Mo,plot_bar:()=>Co,plot_hist:()=>Do,plot_label:()=>mo,plot_legend:()=>co,plot_pie:()=>So,plot_plot:()=>Eo,plot_plot_bar:()=>Ao,plot_plot_easy:()=>ho,plot_plot_scatter:()=>go,plot_plot_xy:()=>Lo,plot_savefig:()=>fo,plot_show:()=>Oo,plot_subplot:()=>Po,plot_text:()=>Fo,plot_ticks:()=>No,plot_title:()=>Ro,series_create:()=>Xs,series_create_from_index:()=>Us,series_create_from_text:()=>ws,series_get_num:()=>Ws,series_index_value:()=>Hs});var h={};t.r(h),t.d(h,{inout_input:()=>Vo,inout_print:()=>Yo,inout_print_container:()=>Uo,inout_print_end:()=>bo,inout_print_inline:()=>yo,inout_print_item:()=>Go,inout_print_many:()=>Xo,inout_type_input:()=>ko});var E={};t.r(E),t.d(E,{Panic_with_status_code:()=>Wo,base_delay:()=>xo,controls_millis:()=>wo,controls_mstimer2:()=>jo,controls_mstimer2_start:()=>qo,controls_mstimer2_stop:()=>Qo,reset:()=>Ko,time_localtime:()=>Ho,time_sleep:()=>Jo});var O={};t.r(O),t.d(O,{turtle_bgcolor:()=>O_,turtle_bgcolor_hex:()=>S_,turtle_bgcolor_hex_new:()=>m_,turtle_circle:()=>I_,turtle_circle_advanced:()=>h_,turtle_clear:()=>u_,turtle_clone:()=>R_,turtle_color:()=>L_,turtle_color_hex:()=>C_,turtle_color_seclet:()=>b_,turtle_create:()=>zo,turtle_done:()=>$o,turtle_exitonclick:()=>t_,turtle_fill:()=>l_,turtle_fillcolor:()=>c_,turtle_fillcolor_hex:()=>N_,turtle_fillcolor_hex_new:()=>g_,turtle_getscreen:()=>k_,turtle_goto:()=>o_,turtle_listen:()=>B_,turtle_move:()=>e_,turtle_numinput:()=>F_,turtle_onclick:()=>U_,turtle_onkey:()=>X_,turtle_ontimer:()=>G_,turtle_pencolor:()=>M_,turtle_pencolor_hex:()=>D_,turtle_pencolor_hex_new:()=>A_,turtle_penup:()=>a_,turtle_pos_shape:()=>p_,turtle_rotate:()=>i_,turtle_screen_delay:()=>s_,turtle_screen_savefig:()=>x_,turtle_setheading:()=>n_,turtle_setxy:()=>__,turtle_shape:()=>P_,turtle_shapesize:()=>f_,turtle_size:()=>T_,turtle_size_speed:()=>r_,turtle_speed:()=>d_,turtle_textinput:()=>v_,turtle_visible:()=>E_,turtle_write:()=>V_,turtle_write_format:()=>Y_,turtle_write_format_skulpt:()=>y_});var M={};t.r(M),t.d(M,{Turn:()=>q_,addOil:()=>Tp,checkMarker:()=>Ip,find_books_by_dichotomy:()=>Mp,find_books_by_sequence:()=>cp,game_get_character_img:()=>sp,game_get_local_img:()=>tp,game_get_path_img:()=>ip,game_init:()=>W_,getMarkerNum:()=>hp,get_actor_point:()=>_p,initSettedMap:()=>H_,initialize:()=>op,isBarrier:()=>pp,isCirculationRight:()=>dp,isDone:()=>Q_,isLightGreen:()=>rp,isOilFull:()=>lp,isPath:()=>J_,is_Related_Barrier:()=>up,is_Related_Path:()=>Z_,move_direction_steps:()=>K_,move_related_to_spirite:()=>j_,place_item:()=>np,randomOil:()=>ap,randomPlaceBarrier:()=>Ep,set_map:()=>$_,set_map_bg:()=>z_,set_pathtype:()=>ep,settedSimpleMap:()=>Op});var c={};t.r(c),t.d(c,{controls_type:()=>Lp,controls_typeLists:()=>Cp,lists_zip:()=>Sp,unpack_iterable_object:()=>Dp,variables_change:()=>Ap,variables_get:()=>Rp,variables_global:()=>gp,variables_set:()=>mp});var R={};t.r(R),t.d(R,{Panic_with_status_code:()=>kp,base_setup:()=>Pp,controls_delay:()=>bp,controls_flow_statements:()=>yp,controls_for:()=>vp,controls_forEach:()=>xp,controls_for_range:()=>Vp,controls_if:()=>fp,controls_interrupts:()=>Gp,controls_lambda:()=>Hp,controls_main:()=>Np,controls_millis:()=>Xp,controls_nointerrupts:()=>Bp,controls_pass:()=>Kp,controls_range:()=>wp,controls_repeat:()=>tu,controls_repeat_ext:()=>Qp,controls_thread:()=>jp,controls_try_finally:()=>Fp,controls_whileUntil:()=>Yp,datetime_fromtimestamp:()=>eu,do_while:()=>qp,garbage_collection:()=>Jp,gene_unique_identifier:()=>iu,get_mem_alloc:()=>Zp,get_mem_free:()=>zp,get_unique_identifier:()=>$p,reset:()=>Up,time_sleep:()=>Wp});var m={};t.r(m),t.d(m,{base_map:()=>gu,generate_cartesian_product:()=>Cu,math_arithmetic:()=>pu,math_bit:()=>_u,math_constant:()=>su,math_constant_mp:()=>ou,math_constrain:()=>Eu,math_dec:()=>ru,math_indexer_number:()=>cu,math_map:()=>hu,math_max_min:()=>du,math_number:()=>nu,math_number_base_conversion:()=>Ou,math_random:()=>Iu,math_random_seed:()=>Mu,math_round:()=>Ru,math_selfcalcu:()=>uu,math_single:()=>au,math_to_int:()=>Tu,math_trig:()=>lu,text_to_number:()=>mu,text_to_number_skulpt:()=>Au,turn_to_int:()=>Lu});var A={};t.r(A),t.d(A,{ascii_to_char:()=>fu,char_to_ascii:()=>Fu,number_to_text:()=>vu,os_system:()=>ea,text:()=>Su,text_capital:()=>Bu,text_center:()=>xu,text_char:()=>Nu,text_char_at:()=>yu,text_char_at2:()=>Yu,text_char_at3:()=>zu,text_compareTo:()=>Zu,text_compare_to:()=>Xu,text_encode:()=>$u,text_equals_starts_ends:()=>ku,text_eval:()=>ta,text_find:()=>wu,text_format:()=>qu,text_format_noreturn:()=>Qu,text_join:()=>Pu,text_join_seq:()=>Hu,text_length:()=>Vu,text_random_char:()=>bu,text_replace:()=>Wu,text_split:()=>Ku,text_strip:()=>ju,text_substring:()=>Gu,text_substring2:()=>Uu,text_substring3:()=>Ju,text_textarea:()=>Du});var g={};t.r(g),t.d(g,{content_in_lists:()=>ya,enumerate:()=>Ya,list_many_input:()=>ma,list_tolist:()=>va,list_tolist2:()=>Va,list_trig:()=>Ma,lists_2d_get_col_row_data:()=>sa,lists_2d_get_data_with_col_row:()=>na,lists_append_extend:()=>aa,lists_change_to:()=>Ra,lists_change_to_general:()=>ga,lists_clear:()=>Ia,lists_create_with:()=>oa,lists_create_with2:()=>Ca,lists_create_with_noreturn:()=>Aa,lists_create_with_text:()=>_a,lists_create_with_text2:()=>Sa,lists_del_general:()=>La,lists_find:()=>ha,lists_getIndex3:()=>Da,lists_getSublist3:()=>Na,lists_get_index:()=>pa,lists_get_random_item:()=>la,lists_get_random_sublist:()=>ra,lists_get_sublist:()=>ia,lists_insert_value:()=>Ta,lists_insert_value2:()=>fa,lists_pop:()=>Oa,lists_remove_at:()=>Ea,lists_remove_at2:()=>Fa,lists_reverse:()=>da,lists_setIndex3:()=>Pa,lists_set_index:()=>ua,lists_sort:()=>ca});var L={};t.r(L),t.d(L,{dicts_add_change_del:()=>qa,dicts_add_or_change:()=>Ga,dicts_clear:()=>wa,dicts_create_with:()=>ba,dicts_create_with_noreturn:()=>Za,dicts_deldict:()=>ja,dicts_delete:()=>Ba,dicts_get:()=>Xa,dicts_get_default:()=>Ua,dicts_items:()=>Ha,dicts_keys:()=>ka,dicts_length:()=>Ka,dicts_pop:()=>Qa,dicts_setdefault:()=>Ja,dicts_to_json:()=>$a,dicts_to_json2:()=>il,dicts_to_to:()=>el,dicts_todict:()=>za,dicts_update:()=>xa,dicts_values:()=>Wa,json_to_dicts:()=>tl});var C={};t.r(C),t.d(C,{logic_boolean:()=>pl,logic_compare:()=>nl,logic_compare_continous:()=>sl,logic_is:()=>rl,logic_is_in:()=>ll,logic_negate:()=>_l,logic_null:()=>ul,logic_operation:()=>ol,logic_tobool:()=>Tl,logic_true_or_false:()=>al});var S={};t.r(S),t.d(S,{sdcard_mount:()=>yl,sdcard_use_spi_init:()=>Yl,storage_can_write_ornot:()=>ml,storage_change_dir:()=>Pl,storage_close_file:()=>gl,storage_delete_file:()=>Cl,storage_file_seek:()=>Nl,storage_file_tell:()=>Dl,storage_file_write:()=>Ol,storage_fileopen:()=>Il,storage_fileopen_new:()=>hl,storage_fileopen_new_encoding:()=>El,storage_get_a_line:()=>Rl,storage_get_contents:()=>cl,storage_get_contents_without_para:()=>Ml,storage_get_current_dir:()=>fl,storage_get_file_size:()=>Sl,storage_get_filename:()=>Al,storage_is_file:()=>Vl,storage_list_all_files:()=>Ll,storage_make_dir:()=>Fl,storage_open_file_with_os:()=>dl,storage_rename:()=>vl});var D={};t.r(D),t.d(D,{procedures_callnoreturn:()=>Ul,procedures_callreturn:()=>Xl,procedures_defnoreturn:()=>kl,procedures_defreturn:()=>bl,procedures_ifreturn:()=>Gl,procedures_return:()=>Bl});var N={};t.r(N),t.d(N,{tuple_change_to:()=>Jl,tuple_create_with:()=>xl,tuple_create_with_noreturn:()=>tr,tuple_create_with_text2:()=>wl,tuple_create_with_text_return:()=>Hl,tuple_del:()=>jl,tuple_find:()=>Zl,tuple_getIndex:()=>Wl,tuple_getSublist:()=>$l,tuple_get_random_item:()=>ir,tuple_get_sublist:()=>er,tuple_input:()=>sr,tuple_join:()=>ql,tuple_length:()=>Kl,tuple_max:()=>Ql,tuple_totuple:()=>nr,tuple_trig:()=>zl});var P={};t.r(P),t.d(P,{set_add_discard:()=>rr,set_clear:()=>ur,set_create_with:()=>or,set_create_with_text_return:()=>Ir,set_length:()=>_r,set_operate:()=>ar,set_operate_update:()=>lr,set_pop:()=>pr,set_sub:()=>Tr,set_toset:()=>hr,set_update:()=>dr});var f={};t.r(f),t.d(f,{html_content:()=>cr,html_content_more:()=>Rr,html_document:()=>Er,html_form:()=>Ar,html_head_body:()=>Mr,html_style:()=>mr,html_style_content:()=>gr,html_text:()=>Lr,html_title:()=>Or});var F={};t.r(F),t.d(F,{attribute_access:()=>Fr,function_call:()=>fr,raw_block:()=>Cr,raw_empty:()=>Dr,raw_expression:()=>Sr,raw_table:()=>Nr,type_check:()=>Pr});var v={};t.r(v),t.d(v,{array_create:()=>jr,array_toarray:()=>pT,dataframe_create:()=>Yr,dataframe_create_from_index:()=>yr,dataframe_create_from_one_index:()=>br,dataframe_get:()=>sT,numpy_trig:()=>eT,pandas_readcsv:()=>nT,pl_axes:()=>Br,pl_bar:()=>Zr,pl_hist:()=>$r,pl_label:()=>Kr,pl_legend:()=>Hr,pl_pie:()=>zr,pl_plot:()=>wr,pl_plot_bar:()=>qr,pl_plot_easy:()=>xr,pl_plot_scatter:()=>Qr,pl_plot_xy:()=>Jr,pl_savefig:()=>oT,pl_show:()=>Gr,pl_subplot:()=>iT,pl_text:()=>_T,pl_ticks:()=>tT,pl_title:()=>Wr,plot_axes:()=>aT,plot_bar:()=>MT,plot_hist:()=>RT,plot_label:()=>IT,plot_legend:()=>TT,plot_pie:()=>cT,plot_plot:()=>rT,plot_plot_bar:()=>hT,plot_plot_easy:()=>lT,plot_plot_scatter:()=>ET,plot_plot_xy:()=>OT,plot_savefig:()=>gT,plot_show:()=>uT,plot_subplot:()=>AT,plot_text:()=>LT,plot_ticks:()=>mT,plot_title:()=>dT,series_create:()=>vr,series_create_from_index:()=>Vr,series_create_from_text:()=>kr,series_get_num:()=>Ur,series_index_value:()=>Xr});var V={};t.r(V),t.d(V,{inout_input:()=>CT,inout_print:()=>ST,inout_print_end:()=>NT,inout_print_inline:()=>DT,inout_print_many:()=>fT,inout_type_input:()=>PT});var Y={};t.r(Y),t.d(Y,{controls_end_program:()=>vT,controls_millis:()=>FT,time_localtime:()=>VT});var y={};t.r(y),t.d(y,{turtle_bgcolor:()=>$T,turtle_bgcolor_hex:()=>nd,turtle_bgcolor_hex_new:()=>_d,turtle_circle:()=>QT,turtle_circle_advanced:()=>ZT,turtle_clear:()=>wT,turtle_clone:()=>id,turtle_color:()=>ld,turtle_color_hex:()=>ad,turtle_color_seclet:()=>Md,turtle_create:()=>YT,turtle_done:()=>yT,turtle_exitonclick:()=>bT,turtle_fill:()=>WT,turtle_fillcolor:()=>ed,turtle_fillcolor_hex:()=>od,turtle_fillcolor_hex_new:()=>ud,turtle_getscreen:()=>cd,turtle_goto:()=>BT,turtle_listen:()=>gd,turtle_move:()=>kT,turtle_numinput:()=>Id,turtle_onclick:()=>md,turtle_onkey:()=>Rd,turtle_ontimer:()=>Ad,turtle_pencolor:()=>td,turtle_pencolor_hex:()=>sd,turtle_pencolor_hex_new:()=>pd,turtle_penup:()=>HT,turtle_pos_shape:()=>xT,turtle_rotate:()=>XT,turtle_screen_delay:()=>GT,turtle_screen_savefig:()=>Ld,turtle_setheading:()=>UT,turtle_setxy:()=>JT,turtle_shape:()=>rd,turtle_shapesize:()=>Td,turtle_size:()=>jT,turtle_size_speed:()=>KT,turtle_speed:()=>qT,turtle_textinput:()=>dd,turtle_visible:()=>zT,turtle_write:()=>hd,turtle_write_format:()=>Ed,turtle_write_format_skulpt:()=>Od});var b={};t.r(b),t.d(b,{Turn:()=>Pd,addOil:()=>jd,checkMarker:()=>Qd,find_books_by_dichotomy:()=>$d,find_books_by_sequence:()=>tI,game_get_character_img:()=>kd,game_get_local_img:()=>Yd,game_get_path_img:()=>Gd,game_init:()=>Cd,getMarkerNum:()=>Jd,get_actor_point:()=>Vd,initSettedMap:()=>Nd,initialize:()=>Xd,isBarrier:()=>xd,isCirculationRight:()=>qd,isDone:()=>fd,isLightGreen:()=>Kd,isOilFull:()=>Wd,isPath:()=>Fd,is_Related_Barrier:()=>wd,is_Related_Path:()=>vd,move_direction_steps:()=>Sd,move_related_to_spirite:()=>Dd,place_item:()=>Ud,randomOil:()=>Hd,randomPlaceBarrier:()=>Zd,set_map:()=>yd,set_map_bg:()=>bd,set_pathtype:()=>Bd,settedSimpleMap:()=>zd});const k=Blockly,X=Mixly,U={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},G=U,B={};B.NAME_TYPE=k.PROCEDURE_CATEGORY_NAME,B.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Z,controls_typeLists:()=>z,lists_zip:()=>$,lists_zip_container:()=>tt,lists_zip_item:()=>et,unpack_iterable_object:()=>it,variables_change:()=>Q,variables_get:()=>j,variables_global:()=>J,variables_set:()=>q});var i={};t.r(i),t.d(i,{base_setup:()=>ot,controls_delay:()=>_t,controls_end_program:()=>pt,controls_except:()=>Rt,controls_finally:()=>mt,controls_flow_statements:()=>dt,controls_for:()=>It,controls_forEach:()=>lt,controls_for_range:()=>ht,controls_if:()=>ut,controls_if_else:()=>Mt,controls_if_elseif:()=>Ot,controls_if_if:()=>Et,controls_lambda:()=>gt,controls_main:()=>st,controls_pass:()=>Lt,controls_range:()=>at,controls_repeat_ext:()=>At,controls_thread:()=>Ct,controls_try:()=>ct,controls_try_finally:()=>Tt,controls_whileUntil:()=>rt,datetime_fromtimestamp:()=>Ft,do_while:()=>St,garbage_collection:()=>Dt,gene_unique_identifier:()=>vt,get_mem_alloc:()=>Nt,get_mem_free:()=>Pt,get_unique_identifier:()=>ft});var n={};t.r(n),t.d(n,{base_map:()=>$t,generate_cartesian_product:()=>ee,math_arithmetic:()=>kt,math_bit:()=>Ut,math_constant:()=>yt,math_constant_mp:()=>bt,math_constrain:()=>Kt,math_dec:()=>Bt,math_degree_to_radian:()=>ne,math_indexer_number:()=>qt,math_map:()=>jt,math_max_min:()=>wt,math_number:()=>Yt,math_number_base_conversion:()=>Ht,math_radian_to_degree:()=>ie,math_random:()=>Wt,math_random_seed:()=>Qt,math_round:()=>Jt,math_selfcalcu:()=>Xt,math_to_int:()=>xt,math_trig:()=>Gt,text_to_number:()=>Zt,text_to_number_skulpt:()=>zt,turn_to_int:()=>te});var s={};t.r(s),t.d(s,{ascii_to_char:()=>ae,char_to_ascii:()=>le,number_to_text:()=>re,os_system:()=>be,text:()=>oe,text_capital:()=>Re,text_center:()=>me,text_char:()=>pe,text_char_at:()=>Ie,text_char_at2:()=>de,text_char_at3:()=>ve,text_compareTo:()=>Fe,text_compare_to:()=>ce,text_create_with_container:()=>Ne,text_create_with_item:()=>Pe,text_encode:()=>Ye,text_equals_starts_ends:()=>Me,text_eval:()=>ye,text_find:()=>Ae,text_format:()=>De,text_format_noreturn:()=>Ve,text_join:()=>ue,text_join_seq:()=>ge,text_length:()=>Te,text_random_char:()=>he,text_replace:()=>Le,text_split:()=>Ce,text_strip:()=>Se,text_substring:()=>Oe,text_substring2:()=>Ee,text_substring3:()=>fe,text_textarea:()=>_e});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Mi,content_in_lists:()=>Ri,enumerate:()=>ci,list_many_input:()=>oi,list_tolist:()=>ai,list_tolist2:()=>Oi,list_trig:()=>ii,lists_2d_get_col_row_data:()=>Be,lists_2d_get_data_with_col_row:()=>Ge,lists_append_extend:()=>je,lists_change_to:()=>si,lists_change_to_general:()=>pi,lists_clear:()=>ze,lists_create_with:()=>xe,lists_create_with2:()=>li,lists_create_with_container:()=>He,lists_create_with_item:()=>We,lists_create_with_noreturn:()=>_i,lists_create_with_text:()=>we,lists_create_with_text2:()=>ri,lists_del_general:()=>ui,lists_find:()=>ei,lists_getIndex3:()=>Ti,lists_getSublist3:()=>di,lists_get_index:()=>Xe,lists_get_random_item:()=>qe,lists_get_random_sublist:()=>Qe,lists_get_sublist:()=>Ue,lists_insert_value:()=>Je,lists_insert_value2:()=>hi,lists_pop:()=>ti,lists_remove_at:()=>$e,lists_remove_at2:()=>Ei,lists_reverse:()=>Ze,lists_setIndex3:()=>Ii,lists_set_index:()=>Ke,lists_sort:()=>ni});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>bi,dicts_add_or_change:()=>Ni,dicts_clear:()=>Fi,dicts_create_with:()=>Ai,dicts_create_with_container:()=>gi,dicts_create_with_item:()=>Li,dicts_create_with_noreturn:()=>Ui,dicts_deldict:()=>yi,dicts_delete:()=>Pi,dicts_get:()=>Si,dicts_get_default:()=>Di,dicts_items:()=>vi,dicts_keys:()=>Ci,dicts_length:()=>Yi,dicts_pop:()=>ki,dicts_setdefault:()=>Xi,dicts_to_json:()=>Bi,dicts_to_json2:()=>Hi,dicts_to_to:()=>wi,dicts_todict:()=>Gi,dicts_update:()=>fi,dicts_values:()=>Vi,json_to_dicts:()=>xi});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ji,logic_compare:()=>Ki,logic_compare_continous:()=>ji,logic_is:()=>tn,logic_is_in:()=>$i,logic_negate:()=>Qi,logic_null:()=>Zi,logic_operation:()=>qi,logic_tobool:()=>en,logic_true_or_false:()=>zi});var u={};t.r(u),t.d(u,{sdcard_mount:()=>Cn,sdcard_use_spi_init:()=>Ln,storage_can_write_ornot:()=>rn,storage_change_dir:()=>An,storage_close_file:()=>dn,storage_delete_file:()=>hn,storage_file_seek:()=>Mn,storage_file_tell:()=>On,storage_file_write:()=>pn,storage_fileopen:()=>sn,storage_fileopen_new:()=>on,storage_fileopen_new_encoding:()=>_n,storage_get_a_line:()=>ln,storage_get_contents:()=>an,storage_get_contents_without_para:()=>un,storage_get_current_dir:()=>cn,storage_get_file_size:()=>En,storage_get_filename:()=>Tn,storage_is_file:()=>gn,storage_list_all_files:()=>In,storage_make_dir:()=>Rn,storage_open_file_with_os:()=>nn,storage_rename:()=>mn});var a={};t.r(a),t.d(a,{procedures_callnoreturn:()=>fn,procedures_callreturn:()=>Fn,procedures_defnoreturn:()=>Sn,procedures_defreturn:()=>Dn,procedures_ifreturn:()=>vn,procedures_mutatorarg:()=>Pn,procedures_mutatorcontainer:()=>Nn,procedures_return:()=>Vn});var l={};t.r(l),t.d(l,{tuple_change_to:()=>Wn,tuple_create_with:()=>yn,tuple_create_with_container:()=>bn,tuple_create_with_item:()=>kn,tuple_create_with_noreturn:()=>Qn,tuple_create_with_text2:()=>Xn,tuple_create_with_text_return:()=>Un,tuple_del:()=>xn,tuple_find:()=>Kn,tuple_getIndex:()=>Gn,tuple_getSublist:()=>qn,tuple_get_random_item:()=>Zn,tuple_get_sublist:()=>Jn,tuple_input:()=>$n,tuple_join:()=>wn,tuple_length:()=>Bn,tuple_max:()=>Hn,tuple_totuple:()=>zn,tuple_trig:()=>jn});var r={};t.r(r),t.d(r,{set_add_discard:()=>as,set_clear:()=>_s,set_create_with:()=>es,set_create_with_container:()=>is,set_create_with_item:()=>ns,set_create_with_text_return:()=>Ts,set_length:()=>ss,set_operate:()=>ps,set_operate_update:()=>us,set_pop:()=>os,set_sub:()=>ls,set_toset:()=>ds,set_update:()=>rs});var T={};t.r(T),t.d(T,{html_content:()=>Ms,html_content_more:()=>cs,html_document:()=>hs,html_form:()=>ms,html_head_body:()=>Os,html_style:()=>Rs,html_style_color:()=>gs,html_style_content:()=>As,html_text:()=>Ls,html_title:()=>Es});var d={};t.r(d),t.d(d,{attribute_access:()=>Xs,function_call:()=>ys,function_call_container:()=>bs,function_call_item:()=>ks,raw_block:()=>Ds,raw_empty:()=>Ps,raw_expression:()=>Ns,raw_table:()=>Ss,text_comment:()=>fs,text_print_multiple:()=>vs,text_print_multiple_container:()=>Vs,text_print_multiple_item:()=>Ys,type_check:()=>Fs});var I={};t.r(I),t.d(I,{array_create:()=>eo,array_toarray:()=>Eo,dataframe_create:()=>xs,dataframe_create_from_index:()=>Hs,dataframe_create_from_one_index:()=>ws,dataframe_get:()=>To,numpy_trig:()=>ao,pandas_readcsv:()=>ro,pl_axes:()=>Zs,pl_bar:()=>oo,pl_hist:()=>po,pl_label:()=>to,pl_legend:()=>zs,pl_pie:()=>_o,pl_plot:()=>Qs,pl_plot_bar:()=>io,pl_plot_easy:()=>qs,pl_plot_scatter:()=>no,pl_plot_xy:()=>so,pl_savefig:()=>Io,pl_show:()=>Js,pl_subplot:()=>lo,pl_text:()=>ho,pl_ticks:()=>uo,pl_title:()=>$s,plot_axes:()=>Ro,plot_bar:()=>Do,plot_hist:()=>Po,plot_label:()=>go,plot_legend:()=>mo,plot_pie:()=>No,plot_plot:()=>Mo,plot_plot_bar:()=>Lo,plot_plot_easy:()=>Oo,plot_plot_scatter:()=>Co,plot_plot_xy:()=>So,plot_savefig:()=>vo,plot_show:()=>co,plot_subplot:()=>Fo,plot_text:()=>Vo,plot_ticks:()=>fo,plot_title:()=>Ao,series_create:()=>Gs,series_create_from_index:()=>Bs,series_create_from_text:()=>Ws,series_get_num:()=>js,series_index_value:()=>Ks});var h={};t.r(h),t.d(h,{inout_input:()=>yo,inout_print:()=>bo,inout_print_container:()=>Bo,inout_print_end:()=>Xo,inout_print_inline:()=>ko,inout_print_item:()=>xo,inout_print_many:()=>Go,inout_type_input:()=>Uo});var E={};t.r(E),t.d(E,{Panic_with_status_code:()=>jo,base_delay:()=>Ho,controls_millis:()=>Wo,controls_mstimer2:()=>Qo,controls_mstimer2_start:()=>Jo,controls_mstimer2_stop:()=>Zo,reset:()=>qo,time_localtime:()=>Ko,time_sleep:()=>zo});var O={};t.r(O),t.d(O,{turtle_bgcolor:()=>c_,turtle_bgcolor_hex:()=>N_,turtle_bgcolor_hex_new:()=>g_,turtle_circle:()=>E_,turtle_circle_advanced:()=>O_,turtle_clear:()=>l_,turtle_clone:()=>A_,turtle_color:()=>S_,turtle_color_hex:()=>D_,turtle_color_seclet:()=>X_,turtle_create:()=>t_,turtle_done:()=>e_,turtle_exitonclick:()=>i_,turtle_fill:()=>T_,turtle_fillcolor:()=>m_,turtle_fillcolor_hex:()=>f_,turtle_fillcolor_hex_new:()=>C_,turtle_getscreen:()=>U_,turtle_goto:()=>p_,turtle_listen:()=>w_,turtle_move:()=>n_,turtle_numinput:()=>V_,turtle_onclick:()=>B_,turtle_onkey:()=>G_,turtle_ontimer:()=>x_,turtle_pencolor:()=>R_,turtle_pencolor_hex:()=>P_,turtle_pencolor_hex_new:()=>L_,turtle_penup:()=>r_,turtle_pos_shape:()=>a_,turtle_rotate:()=>s_,turtle_screen_delay:()=>__,turtle_screen_savefig:()=>H_,turtle_setheading:()=>o_,turtle_setxy:()=>u_,turtle_shape:()=>F_,turtle_shapesize:()=>v_,turtle_size:()=>I_,turtle_size_speed:()=>d_,turtle_speed:()=>h_,turtle_textinput:()=>Y_,turtle_visible:()=>M_,turtle_write:()=>y_,turtle_write_format:()=>b_,turtle_write_format_skulpt:()=>k_});var M={};t.r(M),t.d(M,{Turn:()=>J_,addOil:()=>Ip,checkMarker:()=>Ep,find_books_by_dichotomy:()=>Rp,find_books_by_sequence:()=>mp,game_get_character_img:()=>_p,game_get_local_img:()=>ip,game_get_path_img:()=>sp,game_init:()=>j_,getMarkerNum:()=>Op,get_actor_point:()=>up,initSettedMap:()=>K_,initialize:()=>pp,isBarrier:()=>ap,isCirculationRight:()=>hp,isDone:()=>Z_,isLightGreen:()=>dp,isOilFull:()=>Tp,isPath:()=>z_,is_Related_Barrier:()=>lp,is_Related_Path:()=>$_,move_direction_steps:()=>q_,move_related_to_spirite:()=>Q_,place_item:()=>op,randomOil:()=>rp,randomPlaceBarrier:()=>Mp,set_map:()=>ep,set_map_bg:()=>tp,set_pathtype:()=>np,settedSimpleMap:()=>cp});var c={};t.r(c),t.d(c,{controls_type:()=>Sp,controls_typeLists:()=>Dp,lists_zip:()=>Np,unpack_iterable_object:()=>Pp,variables_change:()=>Lp,variables_get:()=>Ap,variables_global:()=>Cp,variables_set:()=>gp});var R={};t.r(R),t.d(R,{Panic_with_status_code:()=>Up,base_setup:()=>Fp,controls_delay:()=>Xp,controls_flow_statements:()=>kp,controls_for:()=>Yp,controls_forEach:()=>Hp,controls_for_range:()=>yp,controls_if:()=>vp,controls_interrupts:()=>xp,controls_lambda:()=>Kp,controls_main:()=>fp,controls_millis:()=>Gp,controls_nointerrupts:()=>wp,controls_pass:()=>qp,controls_range:()=>Wp,controls_repeat:()=>iu,controls_repeat_ext:()=>Zp,controls_thread:()=>Qp,controls_try_finally:()=>Vp,controls_whileUntil:()=>bp,datetime_fromtimestamp:()=>nu,do_while:()=>Jp,garbage_collection:()=>zp,gene_unique_identifier:()=>su,get_mem_alloc:()=>$p,get_mem_free:()=>tu,get_unique_identifier:()=>eu,reset:()=>Bp,time_sleep:()=>jp});var m={};t.r(m),t.d(m,{base_map:()=>Cu,generate_cartesian_product:()=>Du,math_arithmetic:()=>au,math_bit:()=>uu,math_constant:()=>_u,math_constant_mp:()=>pu,math_constrain:()=>Mu,math_dec:()=>du,math_degree_to_radian:()=>Pu,math_indexer_number:()=>mu,math_map:()=>Ou,math_max_min:()=>hu,math_number:()=>ou,math_number_base_conversion:()=>cu,math_radian_to_degree:()=>Nu,math_random:()=>Eu,math_random_seed:()=>Ru,math_round:()=>Au,math_selfcalcu:()=>lu,math_single:()=>ru,math_to_int:()=>Iu,math_trig:()=>Tu,text_to_number:()=>gu,text_to_number_skulpt:()=>Lu,turn_to_int:()=>Su});var A={};t.r(A),t.d(A,{ascii_to_char:()=>Yu,char_to_ascii:()=>yu,number_to_text:()=>bu,os_system:()=>oa,text:()=>fu,text_capital:()=>Wu,text_center:()=>Ku,text_char:()=>vu,text_char_at:()=>Uu,text_char_at2:()=>Xu,text_char_at3:()=>ia,text_compareTo:()=>ea,text_compare_to:()=>xu,text_encode:()=>na,text_equals_starts_ends:()=>Bu,text_eval:()=>sa,text_find:()=>ju,text_format:()=>zu,text_format_noreturn:()=>$u,text_join:()=>Vu,text_join_seq:()=>qu,text_length:()=>ku,text_random_char:()=>Gu,text_replace:()=>Qu,text_split:()=>Ju,text_strip:()=>Zu,text_substring:()=>Hu,text_substring2:()=>wu,text_substring3:()=>ta,text_textarea:()=>Fu});var g={};t.r(g),t.d(g,{content_in_lists:()=>Ua,enumerate:()=>Xa,list_many_input:()=>Ca,list_tolist:()=>ba,list_tolist2:()=>ka,list_trig:()=>Aa,lists_2d_get_col_row_data:()=>ua,lists_2d_get_data_with_col_row:()=>pa,lists_append_extend:()=>da,lists_change_to:()=>La,lists_change_to_general:()=>Da,lists_clear:()=>Ma,lists_create_with:()=>aa,lists_create_with2:()=>Pa,lists_create_with_noreturn:()=>Sa,lists_create_with_text:()=>la,lists_create_with_text2:()=>fa,lists_del_general:()=>Na,lists_find:()=>ca,lists_getIndex3:()=>Fa,lists_getSublist3:()=>va,lists_get_index:()=>ra,lists_get_random_item:()=>Ia,lists_get_random_sublist:()=>ha,lists_get_sublist:()=>_a,lists_insert_value:()=>Ea,lists_insert_value2:()=>Ya,lists_pop:()=>ma,lists_remove_at:()=>Ra,lists_remove_at2:()=>ya,lists_reverse:()=>Oa,lists_setIndex3:()=>Va,lists_set_index:()=>Ta,lists_sort:()=>ga});var L={};t.r(L),t.d(L,{dicts_add_change_del:()=>za,dicts_add_or_change:()=>Ha,dicts_clear:()=>ja,dicts_create_with:()=>Ga,dicts_create_with_noreturn:()=>el,dicts_deldict:()=>Za,dicts_delete:()=>Wa,dicts_get:()=>xa,dicts_get_default:()=>wa,dicts_items:()=>qa,dicts_keys:()=>Ba,dicts_length:()=>Ja,dicts_pop:()=>$a,dicts_setdefault:()=>tl,dicts_to_json:()=>nl,dicts_to_json2:()=>_l,dicts_to_to:()=>ol,dicts_todict:()=>il,dicts_update:()=>Ka,dicts_values:()=>Qa,json_to_dicts:()=>sl});var C={};t.r(C),t.d(C,{logic_boolean:()=>rl,logic_compare:()=>pl,logic_compare_continous:()=>ul,logic_is:()=>hl,logic_is_in:()=>Il,logic_negate:()=>ll,logic_null:()=>Tl,logic_operation:()=>al,logic_tobool:()=>El,logic_true_or_false:()=>dl});var S={};t.r(S),t.d(S,{sdcard_mount:()=>Ul,sdcard_use_spi_init:()=>Xl,storage_can_write_ornot:()=>Cl,storage_change_dir:()=>Vl,storage_close_file:()=>Dl,storage_delete_file:()=>Pl,storage_file_seek:()=>vl,storage_file_tell:()=>Fl,storage_file_write:()=>ml,storage_fileopen:()=>Ml,storage_fileopen_new:()=>cl,storage_fileopen_new_encoding:()=>Rl,storage_get_a_line:()=>Ll,storage_get_contents:()=>gl,storage_get_contents_without_para:()=>Al,storage_get_current_dir:()=>Yl,storage_get_file_size:()=>fl,storage_get_filename:()=>Sl,storage_is_file:()=>kl,storage_list_all_files:()=>Nl,storage_make_dir:()=>yl,storage_open_file_with_os:()=>Ol,storage_rename:()=>bl});var D={};t.r(D),t.d(D,{procedures_callnoreturn:()=>wl,procedures_callreturn:()=>xl,procedures_defnoreturn:()=>Bl,procedures_defreturn:()=>Gl,procedures_ifreturn:()=>Hl,procedures_return:()=>Wl});var N={};t.r(N),t.d(N,{tuple_change_to:()=>tr,tuple_create_with:()=>Kl,tuple_create_with_noreturn:()=>sr,tuple_create_with_text2:()=>jl,tuple_create_with_text_return:()=>ql,tuple_del:()=>Zl,tuple_find:()=>er,tuple_getIndex:()=>Ql,tuple_getSublist:()=>nr,tuple_get_random_item:()=>_r,tuple_get_sublist:()=>or,tuple_input:()=>ur,tuple_join:()=>zl,tuple_length:()=>Jl,tuple_max:()=>$l,tuple_totuple:()=>pr,tuple_trig:()=>ir});var P={};t.r(P),t.d(P,{set_add_discard:()=>hr,set_clear:()=>Tr,set_create_with:()=>ar,set_create_with_text_return:()=>Mr,set_length:()=>lr,set_operate:()=>dr,set_operate_update:()=>Ir,set_pop:()=>rr,set_sub:()=>Er,set_toset:()=>cr,set_update:()=>Or});var f={};t.r(f),t.d(f,{html_content:()=>gr,html_content_more:()=>Lr,html_document:()=>Rr,html_form:()=>Sr,html_head_body:()=>Ar,html_style:()=>Cr,html_style_content:()=>Dr,html_text:()=>Nr,html_title:()=>mr});var F={};t.r(F),t.d(F,{attribute_access:()=>yr,function_call:()=>Yr,raw_block:()=>Pr,raw_empty:()=>Fr,raw_expression:()=>fr,raw_table:()=>vr,type_check:()=>Vr});var v={};t.r(v),t.d(v,{array_create:()=>Zr,array_toarray:()=>rT,dataframe_create:()=>Xr,dataframe_create_from_index:()=>Ur,dataframe_create_from_one_index:()=>Gr,dataframe_get:()=>uT,numpy_trig:()=>oT,pandas_readcsv:()=>pT,pl_axes:()=>Wr,pl_bar:()=>eT,pl_hist:()=>nT,pl_label:()=>Jr,pl_legend:()=>qr,pl_pie:()=>iT,pl_plot:()=>jr,pl_plot_bar:()=>zr,pl_plot_easy:()=>Kr,pl_plot_scatter:()=>$r,pl_plot_xy:()=>tT,pl_savefig:()=>aT,pl_show:()=>Hr,pl_subplot:()=>_T,pl_text:()=>lT,pl_ticks:()=>sT,pl_title:()=>Qr,plot_axes:()=>dT,plot_bar:()=>AT,plot_hist:()=>LT,plot_label:()=>MT,plot_legend:()=>ET,plot_pie:()=>gT,plot_plot:()=>hT,plot_plot_bar:()=>cT,plot_plot_easy:()=>IT,plot_plot_scatter:()=>RT,plot_plot_xy:()=>mT,plot_savefig:()=>DT,plot_show:()=>TT,plot_subplot:()=>ST,plot_text:()=>NT,plot_ticks:()=>CT,plot_title:()=>OT,series_create:()=>br,series_create_from_index:()=>kr,series_create_from_text:()=>Br,series_get_num:()=>wr,series_index_value:()=>xr});var V={};t.r(V),t.d(V,{inout_input:()=>PT,inout_print:()=>fT,inout_print_end:()=>vT,inout_print_inline:()=>FT,inout_print_many:()=>YT,inout_type_input:()=>VT});var Y={};t.r(Y),t.d(Y,{controls_end_program:()=>bT,controls_millis:()=>yT,time_localtime:()=>kT});var y={};t.r(y),t.d(y,{turtle_bgcolor:()=>nd,turtle_bgcolor_hex:()=>pd,turtle_bgcolor_hex_new:()=>ld,turtle_circle:()=>$T,turtle_circle_advanced:()=>ed,turtle_clear:()=>jT,turtle_clone:()=>_d,turtle_color:()=>Id,turtle_color_hex:()=>dd,turtle_color_seclet:()=>Ad,turtle_create:()=>XT,turtle_done:()=>UT,turtle_exitonclick:()=>GT,turtle_fill:()=>QT,turtle_fillcolor:()=>od,turtle_fillcolor_hex:()=>ad,turtle_fillcolor_hex_new:()=>Td,turtle_getscreen:()=>gd,turtle_goto:()=>WT,turtle_listen:()=>Dd,turtle_move:()=>BT,turtle_numinput:()=>Md,turtle_onclick:()=>Cd,turtle_onkey:()=>Ld,turtle_ontimer:()=>Sd,turtle_pencolor:()=>sd,turtle_pencolor_hex:()=>ud,turtle_pencolor_hex_new:()=>rd,turtle_penup:()=>qT,turtle_pos_shape:()=>KT,turtle_rotate:()=>xT,turtle_screen_delay:()=>HT,turtle_screen_savefig:()=>Nd,turtle_setheading:()=>wT,turtle_setxy:()=>td,turtle_shape:()=>hd,turtle_shapesize:()=>Ed,turtle_size:()=>ZT,turtle_size_speed:()=>JT,turtle_speed:()=>zT,turtle_textinput:()=>Od,turtle_visible:()=>id,turtle_write:()=>cd,turtle_write_format:()=>Rd,turtle_write_format_skulpt:()=>md});var b={};t.r(b),t.d(b,{Turn:()=>Vd,addOil:()=>Zd,checkMarker:()=>$d,find_books_by_dichotomy:()=>nI,find_books_by_sequence:()=>sI,game_get_character_img:()=>Bd,game_get_local_img:()=>Xd,game_get_path_img:()=>Hd,game_init:()=>Pd,getMarkerNum:()=>tI,get_actor_point:()=>kd,initSettedMap:()=>vd,initialize:()=>xd,isBarrier:()=>Kd,isCirculationRight:()=>zd,isDone:()=>Yd,isLightGreen:()=>Jd,isOilFull:()=>Qd,isPath:()=>yd,is_Related_Barrier:()=>jd,is_Related_Path:()=>bd,move_direction_steps:()=>fd,move_related_to_spirite:()=>Fd,place_item:()=>wd,randomOil:()=>qd,randomPlaceBarrier:()=>eI,set_map:()=>Ud,set_map_bg:()=>Gd,set_pathtype:()=>Wd,settedSimpleMap:()=>iI});const k=Blockly,X=Mixly,U={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},G=U,B={};B.NAME_TYPE=k.PROCEDURE_CATEGORY_NAME,B.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+"while True:\n"+u.join("")+a.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+a.join("\n")},W.scrubNakedValue=function(t){return t+"\n"},W.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},W.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},W.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=k.utils.string.wrap(o,W.COMMENT_WRAP-3),n+=W.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const K=330,j={init:function(){this.setColour(K),this.appendDummyInput().appendField(new k.FieldTextInput(""),"VAR"),this.setOutput(!0),this.setTooltip(k.Msg.VARIABLES_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},q={init:function(){this.setColour(K),this.appendValueInput("VALUE").appendField(new k.FieldTextInput(""),"VAR").appendField(k.Msg.MIXLY_VALUE2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.VARIABLES_SET_TOOLTIP)},getVars:function(){var t=this.getFieldValue("VAR");return null==t?[]:t.split(",")},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},Q={init:function(){this.setColour(K);var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"],[k.Msg.LANG_MATH_BOOLEAN,"bool"],[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"]];this.appendValueInput("MYVALUE").appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0)}},J={init:function(){this.setColour(K),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_GLOBAL).setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},Z={init:function(){this.setColour(K),this.appendValueInput("DATA").appendField(k.Msg.MICROBIT_PYTHON_TYPE),this.setOutput(!0),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},z={init:function(){this.setColour(K),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new k.FieldDropdown([[k.Msg.LANG_MATH_INT,"int"],[k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,"float"],[k.Msg.MIXLY_MICROBIT_TYPE_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"],[k.Msg.LOGIC_NULL,"type(None)"]]),"type"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type");return k.Msg.MICROBIT_controls_TypeLists+{int:k.Msg.LANG_MATH_INT,float:k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,str:k.Msg.MIXLY_MICROBIT_TYPE_STRING,list:k.Msg.MIXLY_MICROBIT_TYPE_LIST,tuple:k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,dict:k.Msg.MIXLY_MICROBIT_TYPE_DICT,set:k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,image:k.Msg.MIXLY_MICROBIT_IMAGE,bytes:k.Msg.LANG_MATH_BYTE,NoneType:k.Msg.LOGIC_NULL}[e]}))}},$={init:function(){this.setColour(K),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setMutator(new k.icons.MutatorIcon(["lists_zip_item"],this)),this.setTooltip(k.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_zip_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},at={init:function(){this.setColour(nt),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},lt={init:function(){this.setColour(nt),this.appendValueInput("LIST").setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(k.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rt={init:function(){this.setColour(nt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new k.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(k.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Tt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},dt={init:function(){this.setColour(nt);var t=new k.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},It={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ht={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};rt.OPERATORS=[[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],dt.OPERATORS=[[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Et={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ot={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Rt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},At={init:function(){this.jsonInit({message0:k.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:nt,tooltip:k.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:k.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},gt={init:function(){this.setColour(nt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_STAT),this.setOutput(!0)}},Lt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},St={init:function(){this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_REPEAT+k.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(k.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new k.FieldDropdown([[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(nt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Dt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Pt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ft={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET+k.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_GET_UNIQUE_IDEN)}},Ft={init:function(){this.setColour(nt),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(k.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},vt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Vt=230;k.FieldTextInput.math_number_validator=function(t){return String(t)},k.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Yt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},yt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},bt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},kt={init:function(){this.setColour(Vt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Xt={init:function(){this.setColour(Vt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ut={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new k.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Gt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:k.Msg.MATH_TRIG_TOOLTIP_SIN,COS:k.Msg.MATH_TRIG_TOOLTIP_COS,TAN:k.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:k.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:k.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:k.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:k.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Bt={init:function(){var t=[[k.Msg.MATH_BIN,"bin"],[k.Msg.MATH_OCT,"oct"],[k.Msg.MATH_HEX,"hex"]];this.setColour(Vt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:k.Msg.MATH_DEC_TOOLTIP_BIN,oct:k.Msg.MATH_DEC_TOOLTIP_OCT,hex:k.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},xt={init:function(){var t=[[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"],[k.Msg.MATH_ABS,"fabs"],[k.Msg.MATH_SQRT,"sqrt"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:k.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:k.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:k.Msg.MATH_SINGLE_TOOLTIP_SQ,round:k.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:k.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:k.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},wt={init:function(){var t=[[k.Msg.MIXLY_MAX,"max"],[k.Msg.MIXLY_MIN,"min"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(new k.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(k.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:k.Msg.MIXLY_TOOLTIP_MATH_MAX,min:k.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ht={init:function(){var t=[[k.Msg.MATH_TWO,"two"],[k.Msg.MATH_EIGHT,"eight"],[k.Msg.MATH_TEN,"ten"],[k.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Vt),this.appendDummyInput("").appendField(k.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new k.FieldDropdown(t),"OP").appendField(k.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(k.Msg.MATH_ZHW).appendField(new k.FieldDropdown(t),"OP2").appendField(k.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:k.Msg.MATH_Before_two,eight:k.Msg.MATH_Before_eight,ten:k.Msg.MATH_Before_ten,sixteen:k.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:k.Msg.MATH_Behind_two,eight:k.Msg.MATH_Behind_eight,ten:k.Msg.MATH_Behind_ten,sixteen:k.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Wt={init:function(){var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Vt),this.setOutput(!0,Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_RANDOM).appendField(new k.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:k.Msg.LANG_MATH_INT,float:k.Msg.LANG_MATH_FLOAT_RANDOM};return k.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Kt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_CONSTRAIN_TOOLTIP)}},jt={init:function(){this.setColour(Vt),this.appendValueInput("NUM",Number).appendField(k.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(k.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(k.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_MAP)}},qt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},Qt={init:function(){this.setColour(Vt),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Jt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MATH_ROUND).appendField(k.Msg.TEXT_KEEP),this.appendDummyInput().appendField(k.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_ROUND_NEW_TOOLTIP)}},Zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"],[k.Msg.MIXLY_TO_BITES,"b"],[k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:k.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:k.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:k.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},$t=jt,te={init:function(){this.setColour(Vt),this.appendValueInput("VAR").appendField(k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ee={init:function(){this.setColour(Vt),this.itemCount_=1,this.setMutator(new k.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(k.Msg.MIXLY_PRODUCT+k.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(k.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(k.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const oe={init:function(){this.setColour(ie),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new k.FieldTextInput("",k.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(k.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new k.FieldImage(e,7,12,'"')}},_e={init:function(){this.setColour(ie),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(k.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},pe={init:function(){this.setColour(ie),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ue={init:function(){this.setColour(ie),this.appendValueInput("VAR").setCheck(String).appendField(k.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},ae={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},le={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},re={init:function(){this.WHERE_OPTIONS=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.TEXT_GET_INDEX_RANDOM+1+k.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(k.Msg.LISTS_GET_INDEX_GET,"MODE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(k.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+k.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",k.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:k.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:k.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:k.Msg.TEXT_GET_INDEX_RANDOM};return k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+k.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==k.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new k.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Te={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.LISTS_GET_INDEX_FROM_START+"n"+k.Msg.TEXT_CHARAT2)}},de={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(k.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(k.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ie={init:function(){this.WHERE_OPTIONS_1=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[k.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==k.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new k.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},he={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(k.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ee={init:function(){var t=[[k.Msg.MIXLY_EQUALS,"==="],[k.Msg.MIXLY_STARTSWITH,"startswith"],[k.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ie),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new k.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Oe={init:function(){this.setColour(ie),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_COMPARETO_HELP)}},Me={init:function(){var t=[[k.Msg.TEXT_UPPER,"upper"],[k.Msg.TEXT_TITLE,"title"],[k.Msg.TEXT_CAPITALIZE,"capitalize"],[k.Msg.TEXT_SWAPCASE,"swapcase"],[k.Msg.TEXT_LOWER,"lower"]];this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:k.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:k.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:k.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:k.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:k.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ce={init:function(){var t=[[k.Msg.TEXT_LJUST,"ljust"],[k.Msg.TEXT_CENTER,"center"],[k.Msg.TEXT_RJUST,"rjust"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(k.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(k.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Re={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(k.Msg.MIXLY_MID+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(k.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},me={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Ae={init:function(){this.setColour(ie),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(k.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ge={init:function(){this.setColour(ie),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(k.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(k.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Le={init:function(){var t=[[k.Msg.TEXT_TRIM_BOTH,"strip"],[k.Msg.TEXT_TRIM_LEFT,"lstrip"],[k.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ie),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new k.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(k.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:k.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:k.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:k.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Ce={init:function(){this.setColour(ie),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new k.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},mi={init:function(){this.setColour(ci),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Ai={init:function(){this.setColour(ci),this.appendDummyInput().appendField(k.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},gi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_KEYS),this.setTooltip(k.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Li={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_TOOLTIP)}},Ci={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Si={init:function(){this.setColour(ci),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(k.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Di={init:function(){this.setColour(ci),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_DELETE_TOOLTIP)}},Ni={init:function(){this.setColour(ci),this.appendValueInput("DICT2").setCheck("Dict").appendField(k.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(k.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(k.Msg.MIXLY_MID),this.setTooltip(k.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_CLEAR),this.setTooltip(k.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_ITEMS),this.setTooltip(k.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Fi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_VALUES),this.setTooltip(k.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},vi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_LENGTH),this.setTooltip(k.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Vi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_DELDICT),this.setTooltip(k.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Yi={init:function(){this.MODE=[[k.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[k.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(k.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=k.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=k.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new k.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},yi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setTooltip(k.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},bi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_SETDEFAULT_TOOLTIP)}},ki={init:function(){this.setColour(ci),this.appendDummyInput("").appendField(new k.FieldLabel(k.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new k.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(k.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xi={init:function(){this.setColour(ci),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Ui={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Gi={init:function(){this.setColour(ci),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Bi={init:function(){this.setColour(ci),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},xi={init:function(){this.setColour(ci),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},wi=210,Hi={init:function(){var t=k.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:k.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:k.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:k.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:k.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:k.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:k.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Wi={init:function(){var t=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new k.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Ki={init:function(){var t=[[k.Msg.LOGIC_OPERATION_AND,"AND"],[k.Msg.LOGIC_OPERATION_OR,"OR"],[k.Msg.LOGIC_OPERATION_NOR,"NOR"],[k.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:k.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:k.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:k.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:k.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},ji={init:function(){this.setColour(wi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(k.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(k.Msg.LOGIC_NEGATE_TOOLTIP)}},qi={init:function(){var t=[[k.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[k.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(wi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new k.FieldDropdown(t),"BOOL"),this.setTooltip(k.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Qi={init:function(){this.setColour(wi),this.setOutput(!0),this.appendDummyInput().appendField(k.Msg.LOGIC_NULL),this.setTooltip(k.Msg.LOGIC_NULL_TOOLTIP)}},Ji={init:function(){this.setColour(wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(k.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(k.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Zi={init:function(){var t=[[k.Msg.TEXT_APPEND_TO,"in"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(wi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new k.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(k.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.IN)}},zi={init:function(){var t=[[k.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},$i={init:function(){this.setColour(wi),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},tn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(k.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},en={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXPY_TEXT_ENCODE).appendField(new k.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},on={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},_n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},an={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.HTML_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},ln={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Tn={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const dn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},In={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},On={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Mn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+k.Msg.MIXLY_ESP32_SET+{mkdir:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(k.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Rn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.HTML_FILE,"isfile"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},An={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(k.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(k.Msg.MIXLY_SETUP+k.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(k.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},gn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(k.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Ln={init:function(){var t=k.Procedures.findLegalName("",this),e=new k.FieldTextInput(t,k.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new k.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&k.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(k.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(k.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(k.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(k.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=k.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),k.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{k.Events.enable()}},mutationToDom:function(t){var e=k.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ms={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(k.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},cs={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(k.Msg.HTML_FORM_CONTENT).appendField(new k.FieldDropdown([[k.Msg.HTML_TEXT,"text"],[k.Msg.HTML_EMAIL,"email"],[k.Msg.HTML_NUMBER,"number"],[k.Msg.HTML_PASSWORD,"password"],[k.Msg.HTML_CHECKBOX,"checkbox"],[k.Msg.HTML_RADIOBUTTON,"radiobutton"],[k.Msg.HTML_BUTTON,"button"],[k.Msg.HTML_COLOUR,"colour"],[k.Msg.HTML_DATE,"date"],[k.Msg.HTML_LOCALTIME,"local time"],[k.Msg.HTML_FILE,"file"],[k.Msg.HTML_HIDDEN,"hidden"],[k.Msg.HTML_IMAGE,"image"],[k.Msg.HTML_MONTH,"month"],[k.Msg.HTML_RANGE,"range"],[k.Msg.HTML_RESET,"reset"],[k.Msg.HTML_SEARCH,"search"],[k.Msg.HTML_SUBMIT,"submit"],[k.Msg.HTML_TELEPHONENUMBER,"telephone number"],[k.Msg.HTML_TIME,"time"],[k.Msg.HTML_URL,"url"],[k.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(k.Msg.HTML_NAME).appendField(new k.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(k.Msg.HTML_VALUE).appendField(new k.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rs={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ms={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},As={init:function(){this.setColour(Ts),this.appendDummyInput().appendField(k.Msg.HTML_TEXT).appendField(new k.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gs=160,Ls={init:function(){this.setColour(gs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new k.FieldTable(""),"TEXT")}},Cs={init:function(){this.setColour(gs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT")}},Ss={init:function(){this.setColour(gs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ds={init:function(){this.setColour(gs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Ns={init:function(){this.setColour(gs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new k.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Ps={init:function(){this.setColour(gs),this.appendValueInput("VALUE").appendField(k.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},fs={init:function(){this.setColour(gs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=k.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(ks),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_SPLITBYDOU).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},to={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},eo={init:function(){this.setColour(ks);var t=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],e=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},io={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},no={init:function(){this.setColour(ks);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},so={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},oo={init:function(){this.setColour(ks),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_o={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},po={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(ks),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(k.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setTooltip(k.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},uo={init:function(){this.setColour(ks),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ao={init:function(){this.setColour(ks),this.appendValueInput("FILENAME").appendField(k.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[k.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},lo={init:function(){this.setColour(ks),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(k.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new k.FieldDropdown([[k.Msg.DATAFRAME_COLUMN,"column"],[k.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(k.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},ro={init:function(){this.setColour(ks),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},To={init:function(){this.setColour(ks);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},Io={init:function(){this.setColour(ks),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},ho={init:function(){this.setColour(ks),this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Eo={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Oo={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mo={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},co={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ro={init:function(){this.setColour(ks),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mo={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ao={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},go={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(t),"DOT"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},Lo={init:function(){this.setColour(ks);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Co={init:function(){this.setColour(ks);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},So={init:function(){this.setColour(ks);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Do={init:function(){this.setColour(ks),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},No={init:function(){this.setColour(ks);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},Po={init:function(){this.setColour(ks),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},fo={init:function(){this.setColour(ks),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},Fo={init:function(){this.setColour(ks);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},vo=20,Vo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(k.Msg.INOUT_input_TOOLTIP)}},Yo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.BLOCKPY_PRINT_TOOLTIP)}},yo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},bo={init:function(){this.setColour(vo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(k.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},ko={init:function(){var t=[[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(vo),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("VAR").appendField(k.Msg.PROCEDURES_MUTATORCONTAINER_TITLE).setCheck(String),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{str:k.Msg.MIXLY_MIXPY_INOUT_STR_INPUT_TOOLTIP,int:k.Msg.MIXLY_MIXPY_INOUT_INT_INPUT_TOOLTIP,float:k.Msg.MIXLY_MIXPY_INOUT_FLOAT_INPUT_TOOLTIP}[t]}))}},Xo={init:function(){this.setColour(vo),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["inout_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("inout_print_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0?t:[["'无可用地图'","'无可用地图'"]]}},ep={init:function(){this.appendValueInput("pathtype").setCheck(null).appendField(k.Msg.MIXLY_GAME_SETPATHTYPE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},ip={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用路径'","'无可用路径'"]]}},np={init:function(){this.setColour(290),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("posx").setCheck(null).appendField(k.Msg.TEXT_APPEND_TO+"("),this.appendDummyInput().appendField(","),this.appendValueInput("posy").setCheck(null).appendField(""),this.appendDummyInput().appendField(")"+k.Msg.MIXLY_GAME_LAY).appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_WALL,"'wall'"],[k.Msg.MIXLY_GAME_BARRIER,"'barrier'"],[k.Msg.MIXLY_GAME_COIN,"'coin'"],[k.Msg.MIXLY_GAME_REDMARKER,"'redmarker'"],[k.Msg.MIXLY_GAME_YELLOWMARKER,"'yellowmarker'"],[k.Msg.MIXLY_GAME_BLUEMARKER,"'bluemarker'"],[k.Msg.MIXLY_GAME_GREENMARKER,"'greenmarker'"]]),"item"),this.setTooltip("")}},sp={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用角色'","'无可用角色'"]]}},op={init:function(){this.setColour(290),this.appendValueInput("character").setCheck(null).appendField(k.Msg.MIXLY_GAME_INIT_CHARA),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_FACE+k.Msg.MIXLY_GAME_RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},_p={init:function(){this.setColour(290),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_GETPOINT),this.setOutput(!0,Number),this.setTooltip("")}},pp={init:function(){this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_UP,"0"],[k.Msg.MIXLY_GAME_DOWN,"2"],[k.Msg.MIXLY_GAME_LEFT,"3"],[k.Msg.MIXLY_GAME_RIGHT,"1"]]),"direction"),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ISBARRIER),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},up={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_RE_SPIRITE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_FORWARD,"f"],[k.Msg.MIXLY_GAME_BACKWARD,"b"],[k.Msg.MIXLY_GAME_LEFT,"l"],[k.Msg.MIXLY_GAME_RIGHT,"r"]]),"direction"),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ISBARRIER),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},ap={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_RANDOMCAROIL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},lp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_NEEDOIL),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},rp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ISGREEN),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Tp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ADDOIL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},dp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_CHECKCIRCURIGHT),this.setPreviousStatement(!0),this.setColour(290),this.setTooltip("")}},Ip={init:function(){this.setColour(290),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_CHECK_WHETHER_PASS),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_REDMARKER,"'redmarker'"],[k.Msg.MIXLY_GAME_YELLOWMARKER,"'yellowmarker'"],[k.Msg.MIXLY_GAME_BLUEMARKER,"'bluemarker'"],[k.Msg.MIXLY_GAME_GREENMARKER,"'greenmarker'"]]),"marker"),this.appendDummyInput().appendField("?"),this.setInputsInline(!0),this.setOutput(!0,null),this.setTooltip("")}},hp={init:function(){this.setColour(290),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_GET_MARKER_NUM),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_REDMARKER,"'redmarker'"],[k.Msg.MIXLY_GAME_YELLOWMARKER,"'yellowmarker'"],[k.Msg.MIXLY_GAME_BLUEMARKER,"'bluemarker'"],[k.Msg.MIXLY_GAME_GREENMARKER,"'greenmarker'"]]),"marker"),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_NUMBER_OF_MARKER),this.setInputsInline(!0),this.setOutput(!0,null),this.setTooltip("")}},Ep={init:function(){this.setColour(290),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("posx").setCheck(null).appendField(k.Msg.TEXT_APPEND_TO+"("),this.appendDummyInput().appendField(","),this.appendValueInput("posy").setCheck(null).appendField(""),this.appendDummyInput().appendField(")"+k.Msg.TEXT_GET_INDEX_RANDOM+k.Msg.MIXLY_GAME_LAY+k.Msg.MIXLY_GAME_BARRIER),this.setTooltip("")}},Op={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_INIT_AS).appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_ONE,"0"],[k.Msg.MIXLY_GAME_TWO,"1"],[k.Msg.MIXLY_GAME_THREE,"2"],[k.Msg.MIXLY_GAME_FOUR,"3"],[k.Msg.MIXLY_GAME_FIVE,"4"],[k.Msg.MIXLY_GAME_SIX,"5"],[k.Msg.MIXLY_GAME_SEVEN,"6"],[k.Msg.MIXLY_GAME_EIGHT,"7"],[k.Msg.MIXLY_GAME_NINE,"8"],[k.Msg.MIXLY_GAME_TEN,"9"],[k.Msg.MIXLY_GAME_ELE,"10"],[k.Msg.MIXLY_GAME_TWEL,"11"],[k.Msg.MIXLY_GAME_THIR,"12"],[k.Msg.MIXLY_GAME_FORT,"13"],[k.Msg.MIXLY_GAME_FIFT,"14"],[k.Msg.MIXLY_GAME_SIXT,"15"],[k.Msg.MIXLY_GAME_SEVENT,"16"]]),"level"),this.setInputsInline(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},Mp={init:function(){this.appendValueInput("N").setCheck(null).setAlign(k.inputs.Align.LEFT).appendField("二分法查找书籍").appendField("N"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},cp={init:function(){this.appendValueInput("N").setCheck(null).setAlign(k.inputs.Align.LEFT).appendField("顺序法查找书籍").appendField("N"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Rp=function(t,e){return[e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE),e.ORDER_ATOMIC]},mp=function(t,e){if(""==this.getFieldValue("VAR"))return" = None\n";var i=e.valueToCode(this,"VALUE",e.ORDER_ASSIGNMENT)||"None";return e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE)+" = "+i+"\n"},Ap=function(t,e){var i=this.getFieldValue("OP"),n=e.valueToCode(this,"MYVALUE",e.ORDER_ATOMIC)||"None";if("bytes"==i)var s=i+"("+n+',"UTF-8")';else s=i+"("+n+")";return[s,e.ORDER_ATOMIC]},gp=function(t,e){return"global "+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"None")+"\n"},Lp=function(t,e){return["type("+(e.valueToCode(this,"DATA",e.ORDER_ATOMIC)||"None")+")",e.ORDER_ATOMIC]},Cp=function(t,e){return[this.getFieldValue("type"),e.ORDER_ATOMIC]},Sp=function(t,e){for(var i=new Array(this.itemCount_),n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+u()+"("+t+", "+e+", "+i+") or "+a()+"("+t+", "+e+", "+i+")"},k.isNumber(n)&&k.isNumber(s)&&k.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const ol=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},_l=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},pl=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ul=function(t,e){return["None",e.ORDER_ATOMIC]},al=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ll=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},rl=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Tl=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},dl=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Il=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},hl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},El=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ol=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ml=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},cl=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Rl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ml=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Al=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},gl=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ll=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Cl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Sl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Dl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Nl=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Pl=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fl=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},vl=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Vl=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Yl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},yl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},bl=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),k.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Or=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Mr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},cr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Rr=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},mr=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Ar=function(t,e){return'"},gr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Lr=function(){return this.getFieldValue("TEXT")+"\n"},Cr=function(t){return t.getFieldValue("TEXT")+"\n"},Sr=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Dr=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nr=function(){return""},Pr=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fr=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o=0&&(n[s]=n[s].replace(" ",""));i="";for(s=0;s0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+"while True:\n"+u.join("")+a.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+p.join("")+t+a.join("\n")},W.scrubNakedValue=function(t){return t+"\n"},W.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},W.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},W.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=k.utils.string.wrap(o,W.COMMENT_WRAP-3),n+=W.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const K=330,j={init:function(){this.setColour(K),this.appendDummyInput().appendField(new k.FieldTextInput(""),"VAR"),this.setOutput(!0),this.setTooltip(k.Msg.VARIABLES_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},q={init:function(){this.setColour(K),this.appendValueInput("VALUE").appendField(new k.FieldTextInput(""),"VAR").appendField(k.Msg.MIXLY_VALUE2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.VARIABLES_SET_TOOLTIP)},getVars:function(){var t=this.getFieldValue("VAR");return null==t?[]:t.split(",")},renameVar:function(t,e){H.equals(t,this.getFieldValue("VAR"))&&this.setFieldValue(e,"VAR")}},Q={init:function(){this.setColour(K);var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"],[k.Msg.LANG_MATH_BOOLEAN,"bool"],[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"]];this.appendValueInput("MYVALUE").appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0)}},J={init:function(){this.setColour(K),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_GLOBAL).setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},Z={init:function(){this.setColour(K),this.appendValueInput("DATA").appendField(k.Msg.MICROBIT_PYTHON_TYPE),this.setOutput(!0),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},z={init:function(){this.setColour(K),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE).appendField(new k.FieldDropdown([[k.Msg.LANG_MATH_INT,"int"],[k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,"float"],[k.Msg.MIXLY_MICROBIT_TYPE_STRING,"str"],[k.Msg.MIXLY_MICROBIT_TYPE_LIST,"list"],[k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,"tuple"],[k.Msg.MIXLY_MICROBIT_TYPE_DICT,"dict"],[k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,"set"],[k.Msg.LANG_MATH_BYTE,"bytes"],[k.Msg.LOGIC_NULL,"type(None)"]]),"type"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type");return k.Msg.MICROBIT_controls_TypeLists+{int:k.Msg.LANG_MATH_INT,float:k.Msg.MIXLY_MICROBIT_TYPE_FLOAT,str:k.Msg.MIXLY_MICROBIT_TYPE_STRING,list:k.Msg.MIXLY_MICROBIT_TYPE_LIST,tuple:k.Msg.MIXLY_MICROBIT_TYPE_TUPLE,dict:k.Msg.MIXLY_MICROBIT_TYPE_DICT,set:k.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,image:k.Msg.MIXLY_MICROBIT_IMAGE,bytes:k.Msg.LANG_MATH_BYTE,NoneType:k.Msg.LOGIC_NULL}[e]}))}},$={init:function(){this.setColour(K),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setMutator(new k.icons.MutatorIcon(["lists_zip_item"],this)),this.setTooltip(k.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_zip_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(k.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},at={init:function(){this.setColour(nt),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},lt={init:function(){this.setColour(nt),this.appendValueInput("LIST").setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(k.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rt={init:function(){this.setColour(nt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new k.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(k.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:k.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Tt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(k.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},dt={init:function(){this.setColour(nt);var t=new k.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:k.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},It={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ht={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new k.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return k.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};rt.OPERATORS=[[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],dt.OPERATORS=[[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[k.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Et={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Ot={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(k.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Rt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},mt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(k.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},At={init:function(){this.jsonInit({message0:k.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:nt,tooltip:k.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:k.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},gt={init:function(){this.setColour(nt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(k.Msg.MIXLY_STAT),this.setOutput(!0)}},Lt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Ct={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},St={init:function(){this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_REPEAT+k.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(k.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new k.FieldDropdown([[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[k.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(nt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Dt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Pt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ft={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET+k.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_GET_UNIQUE_IDEN)}},Ft={init:function(){this.setColour(nt),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(k.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},vt={init:function(){this.setColour(nt),this.appendDummyInput().appendField(k.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Vt=230;k.FieldTextInput.math_number_validator=function(t){return String(t)},k.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Yt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},yt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},bt={init:function(){this.setColour(Vt);this.appendDummyInput("").appendField(k.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new k.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:k.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},kt={init:function(){this.setColour(Vt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Xt={init:function(){this.setColour(Vt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:k.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:k.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:k.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:k.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:k.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:k.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ut={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new k.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Gt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:k.Msg.MATH_TRIG_TOOLTIP_SIN,COS:k.Msg.MATH_TRIG_TOOLTIP_COS,TAN:k.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:k.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:k.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:k.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:k.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Bt={init:function(){var t=[[k.Msg.MATH_BIN,"bin"],[k.Msg.MATH_OCT,"oct"],[k.Msg.MATH_HEX,"hex"]];this.setColour(Vt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:k.Msg.MATH_DEC_TOOLTIP_BIN,oct:k.Msg.MATH_DEC_TOOLTIP_OCT,hex:k.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},xt={init:function(){var t=[[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"],[k.Msg.MATH_ABS,"fabs"],[k.Msg.MATH_SQRT,"sqrt"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:k.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:k.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:k.Msg.MATH_SINGLE_TOOLTIP_SQ,round:k.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:k.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:k.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},wt={init:function(){var t=[[k.Msg.MIXLY_MAX,"max"],[k.Msg.MIXLY_MIN,"min"]];this.setColour(Vt),this.appendValueInput("A").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(new k.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(k.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:k.Msg.MIXLY_TOOLTIP_MATH_MAX,min:k.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ht={init:function(){var t=[[k.Msg.MATH_TWO,"two"],[k.Msg.MATH_EIGHT,"eight"],[k.Msg.MATH_TEN,"ten"],[k.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Vt),this.appendDummyInput("").appendField(k.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new k.FieldDropdown(t),"OP").appendField(k.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(k.Msg.MATH_ZHW).appendField(new k.FieldDropdown(t),"OP2").appendField(k.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:k.Msg.MATH_Before_two,eight:k.Msg.MATH_Before_eight,ten:k.Msg.MATH_Before_ten,sixteen:k.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:k.Msg.MATH_Behind_two,eight:k.Msg.MATH_Behind_eight,ten:k.Msg.MATH_Behind_ten,sixteen:k.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Wt={init:function(){var t=[[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Vt),this.setOutput(!0,Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_RANDOM).appendField(new k.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(k.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:k.Msg.LANG_MATH_INT,float:k.Msg.LANG_MATH_FLOAT_RANDOM};return k.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Kt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(k.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_CONSTRAIN_TOOLTIP)}},jt={init:function(){this.setColour(Vt),this.appendValueInput("NUM",Number).appendField(k.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(k.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(k.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_MAP)}},qt={init:function(){this.setColour(Vt),this.appendDummyInput().appendField(new k.FieldTextInput("0",k.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(k.Msg.MATH_NUMBER_TOOLTIP)}},Qt={init:function(){this.setColour(Vt),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Jt={init:function(){this.setColour(Vt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MATH_ROUND).appendField(k.Msg.TEXT_KEEP),this.appendDummyInput().appendField(k.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(k.Msg.MATH_ROUND_NEW_TOOLTIP)}},Zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"],[k.Msg.MIXLY_TO_BITES,"b"],[k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:k.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:k.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},zt={init:function(){var t=[[k.Msg.MIXLY_TO_INT,"int"],[k.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Vt),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:k.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:k.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},$t=jt,te={init:function(){this.setColour(Vt),this.appendValueInput("VAR").appendField(k.Msg.LANG_MATH_BYTE+k.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ee={init:function(){this.setColour(Vt),this.itemCount_=1,this.setMutator(new k.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(k.Msg.MIXLY_PRODUCT+k.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(k.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(k.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(k.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const pe={init:function(){this.setColour(se),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new k.FieldTextInput("",k.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(k.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new k.FieldImage(e,7,12,'"')}},ue={init:function(){this.setColour(se),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(k.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},ae={init:function(){this.setColour(se),this.appendValueInput("VAR").setCheck(Number).appendField(k.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},le={init:function(){this.setColour(se),this.appendValueInput("VAR").setCheck(String).appendField(k.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},re={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Te={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},de={init:function(){this.WHERE_OPTIONS=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.TEXT_GET_INDEX_RANDOM+1+k.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(k.Msg.LISTS_GET_INDEX_GET,"MODE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(k.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=k.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+k.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",k.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:k.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:k.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:k.Msg.TEXT_GET_INDEX_RANDOM};return k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+k.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==k.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new k.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),k.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Ie={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(k.Msg.PROCEDURES_DEFRETURN_RETURN+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.LISTS_GET_INDEX_FROM_START+"n"+k.Msg.TEXT_CHARAT2)}},he={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(k.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(k.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ee={init:function(){this.WHERE_OPTIONS_1=[[k.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[k.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[k.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[k.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==k.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),k.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(k.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new k.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Oe={init:function(){this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(k.Msg.LISTS_GET_INDEX_GET+" "+k.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(k.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(k.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(k.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Me={init:function(){var t=[[k.Msg.MIXLY_EQUALS,"==="],[k.Msg.MIXLY_STARTSWITH,"startswith"],[k.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new k.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ce={init:function(){this.setColour(se),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_COMPARETO_HELP)}},Re={init:function(){var t=[[k.Msg.TEXT_UPPER,"upper"],[k.Msg.TEXT_TITLE,"title"],[k.Msg.TEXT_CAPITALIZE,"capitalize"],[k.Msg.TEXT_SWAPCASE,"swapcase"],[k.Msg.TEXT_LOWER,"lower"]];this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:k.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:k.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:k.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:k.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:k.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},me={init:function(){var t=[[k.Msg.TEXT_LJUST,"ljust"],[k.Msg.TEXT_CENTER,"center"],[k.Msg.TEXT_RJUST,"rjust"]];this.setColour(se),this.appendValueInput("VAR").appendField(new k.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(k.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(k.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},Ae={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(k.Msg.MIXLY_MID+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(k.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ge={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Le={init:function(){this.setColour(se),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(k.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(k.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Ce={init:function(){this.setColour(se),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(k.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(k.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Se={init:function(){var t=[[k.Msg.TEXT_TRIM_BOTH,"strip"],[k.Msg.TEXT_TRIM_LEFT,"lstrip"],[k.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(se),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new k.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(k.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:k.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:k.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:k.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},De={init:function(){this.setColour(se),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new k.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},gi={init:function(){this.setColour(mi),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(k.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Li={init:function(){this.setColour(mi),this.appendDummyInput().appendField(k.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ci={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_KEYS),this.setTooltip(k.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Si={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_TOOLTIP)}},Di={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(k.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},Ni={init:function(){this.setColour(mi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(k.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Pi={init:function(){this.setColour(mi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(k.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_DELETE_TOOLTIP)}},fi={init:function(){this.setColour(mi),this.appendValueInput("DICT2").setCheck("Dict").appendField(k.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(k.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(k.Msg.MIXLY_MID),this.setTooltip(k.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_CLEAR),this.setTooltip(k.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_ITEMS),this.setTooltip(k.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Vi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_VALUES),this.setTooltip(k.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},Yi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_LENGTH),this.setTooltip(k.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},yi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.DICT_DELDICT),this.setTooltip(k.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bi={init:function(){this.MODE=[[k.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[k.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(k.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(k.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=k.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=k.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==k.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new k.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},ki={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(k.Msg.DICTS_ADD_VALUE),this.setTooltip(k.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Xi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(k.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Ui={init:function(){this.setColour(mi),this.appendDummyInput("").appendField(new k.FieldLabel(k.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new k.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(k.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gi={init:function(){this.setColour(mi),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Bi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},xi={init:function(){this.setColour(mi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(k.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},wi={init:function(){this.setColour(mi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Hi={init:function(){this.setColour(mi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(k.Msg.MIXLY_TO_JSON),this.setTooltip(k.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Wi=210,Ki={init:function(){var t=k.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:k.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:k.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:k.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:k.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:k.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:k.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},ji={init:function(){var t=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=k.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new k.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},qi={init:function(){var t=[[k.Msg.LOGIC_OPERATION_AND,"AND"],[k.Msg.LOGIC_OPERATION_OR,"OR"],[k.Msg.LOGIC_OPERATION_NOR,"NOR"],[k.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new k.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:k.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:k.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:k.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:k.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Qi={init:function(){this.setColour(Wi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(k.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(k.Msg.LOGIC_NEGATE_TOOLTIP)}},Ji={init:function(){var t=[[k.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[k.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Wi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new k.FieldDropdown(t),"BOOL"),this.setTooltip(k.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Zi={init:function(){this.setColour(Wi),this.setOutput(!0),this.appendDummyInput().appendField(k.Msg.LOGIC_NULL),this.setTooltip(k.Msg.LOGIC_NULL_TOOLTIP)}},zi={init:function(){this.setColour(Wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(k.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(k.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},$i={init:function(){var t=[[k.Msg.TEXT_APPEND_TO,"in"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Wi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new k.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(k.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.IN)}},tn={init:function(){var t=[[k.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[k.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Wi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new k.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},en={init:function(){this.setColour(Wi),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},nn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(k.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},on={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},_n={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXPY_TEXT_ENCODE).appendField(new k.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_USE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=k.Msg.MIXLY_BELONG,_=k.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:k.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:k.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:k.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},pn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+k.Msg.MIXLY_MICROBIT_TYPE_STRING+k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},an={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:k.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:k.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},ln={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MICROBIT_PYTHON_TYPE)}},rn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.HTML_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},dn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},In={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+k.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=k.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+k.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:k.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},cn={init:function(){this.setColour(0),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Rn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+k.Msg.MIXLY_ESP32_SET+{mkdir:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(k.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.HTML_FILE,"isfile"],[k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return k.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+k.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:k.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Ln={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(k.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(k.Msg.MIXLY_SETUP+k.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(k.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Cn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(k.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Sn={init:function(){var t=k.Procedures.findLegalName("",this),e=new k.FieldTextInput(t,k.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new k.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&k.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(k.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(k.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(k.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(k.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=k.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),k.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{k.Events.enable()}},mutationToDom:function(t){var e=k.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rs={init:function(){this.setColour(Is),this.appendDummyInput().appendField(k.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ms={init:function(){this.setColour(Is),this.appendDummyInput().appendField(k.Msg.HTML_FORM_CONTENT).appendField(new k.FieldDropdown([[k.Msg.HTML_TEXT,"text"],[k.Msg.HTML_EMAIL,"email"],[k.Msg.HTML_NUMBER,"number"],[k.Msg.HTML_PASSWORD,"password"],[k.Msg.HTML_CHECKBOX,"checkbox"],[k.Msg.HTML_RADIOBUTTON,"radiobutton"],[k.Msg.HTML_BUTTON,"button"],[k.Msg.HTML_COLOUR,"colour"],[k.Msg.HTML_DATE,"date"],[k.Msg.HTML_LOCALTIME,"local time"],[k.Msg.HTML_FILE,"file"],[k.Msg.HTML_HIDDEN,"hidden"],[k.Msg.HTML_IMAGE,"image"],[k.Msg.HTML_MONTH,"month"],[k.Msg.HTML_RANGE,"range"],[k.Msg.HTML_RESET,"reset"],[k.Msg.HTML_SEARCH,"search"],[k.Msg.HTML_SUBMIT,"submit"],[k.Msg.HTML_TELEPHONENUMBER,"telephone number"],[k.Msg.HTML_TIME,"time"],[k.Msg.HTML_URL,"url"],[k.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(k.Msg.HTML_NAME).appendField(new k.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(k.Msg.HTML_VALUE).appendField(new k.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(k.Msg.MIXLY_AIP_ATTR).setAlign(k.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},As={init:function(){this.setColour(Is),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},gs={init:function(){this.setColour(Is),this.appendDummyInput().appendField(new k.FieldTextInput("property"),"KEY").appendField(":").appendField(new k.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ls={init:function(){this.setColour(Is),this.appendDummyInput().appendField(k.Msg.HTML_TEXT).appendField(new k.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Cs=160,Ss={init:function(){this.setColour(Cs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new k.FieldTable(""),"TEXT")}},Ds={init:function(){this.setColour(Cs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT")}},Ns={init:function(){this.setColour(Cs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new k.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Ps={init:function(){this.setColour(Cs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},fs={init:function(){this.setColour(Cs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new k.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Fs={init:function(){this.setColour(Cs),this.appendValueInput("VALUE").appendField(k.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},vs={init:function(){this.setColour(Cs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new k.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=k.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},to={init:function(){this.setColour(Us);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eo={init:function(){this.setColour(Us),this.appendValueInput("FROM").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_SPLITBYDOU).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXPY_DATA_ARRAY_CREATE_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(k.inputs.Align.RIGHT).appendField(k.Msg.MIXLY_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},io={init:function(){this.setColour(Us);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},no={init:function(){this.setColour(Us);var t=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],e=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(e),"DOT"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(t),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},so={init:function(){this.setColour(Us);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_DOWN,"v"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_UP,"^"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_LEFT,"<"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIANGLE_RIGHT,">"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_UP,"1"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_DOWN,"2"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_LEFT,"3"],[k.Msg.blockpy_PYLAB_PLOT_DOT_TRIMARKER_RIGHT,"4"],[k.Msg.blockpy_PYLAB_PLOT_DOT_SQUARE,"s"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PENTAGON,"p"],[k.Msg.blockpy_PYLAB_PLOT_DOT_STAR,"*"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_VERTICAL,"h"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HEXAGON_HORIZONTAL,"H"],[k.Msg.blockpy_PYLAB_PLOT_DOT_PLUS,"+"],[k.Msg.blockpy_PYLAB_PLOT_DOT_CROSS,"x"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND,"D"],[k.Msg.blockpy_PYLAB_PLOT_DOT_DIAMOND_SMALL,"d"],[k.Msg.blockpy_PYLAB_PLOT_DOT_VERTICAL,"|"],[k.Msg.blockpy_PYLAB_PLOT_DOT_HORIZONTAL,"_"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},oo={init:function(){this.setColour(Us);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},_o={init:function(){this.setColour(Us);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},po={init:function(){this.setColour(Us),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uo={init:function(){this.setColour(Us);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},ao={init:function(){var t=[["sin","sin"],["cos","cos"],["tan","tan"],["arcsin","arcsin"],["arccos","arccos"],["arctan","arctan"],[k.Msg.LANG_MATH_TO_ROUND,"round"],[k.Msg.LANG_MATH_TO_CEIL,"ceil"],[k.Msg.LANG_MATH_TO_FLOOR,"floor"]];this.setColour(Us),this.setOutput(!0),this.setInputsInline(!0),this.appendDummyInput().appendField(k.Msg.mixpy_NUMPY_TRIG),this.appendValueInput("NUM").setCheck(Number).appendField(new k.FieldDropdown(t),"OP"),this.setTooltip(k.Msg.mixpy_NUMPY_TRIG_TOOLTIP)}},lo={init:function(){this.setColour(Us),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ro={init:function(){this.setColour(Us),this.appendValueInput("FILENAME").appendField(k.Msg.MIXPY_PANDAS_READ_CSV),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.mixpy_PANDAS_READCSV_HEADER_Y,"0"],[k.Msg.mixpy_PANDAS_READCSV_HEADER_N,"None"]]),"MODE"),this.appendDummyInput().appendField(k.Msg.mixpy_PANDAS_READCSV_TITLE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(k.Msg.mixpy_PANDAS_READCSV_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){k.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},To={init:function(){this.setColour(Us),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(k.Msg.mixpy_DATAFRAME_GET),this.appendDummyInput("").appendField(k.Msg.mixpy_DATAFRAME_GET_INDEX).appendField(new k.FieldDropdown([[k.Msg.DATAFRAME_COLUMN,"column"],[k.Msg.DATAFRAME_RAW,"raw"]]),"MODE"),this.setOutput(!0),this.setTooltip(k.Msg.mixpy_DATAFRAME_GET_TOOLTIP)}},Io={init:function(){this.setColour(Us),this.appendValueInput("FILE").setCheck(String).appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},ho={init:function(){this.setColour(Us);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},Eo={init:function(){this.setColour(Us),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_TOARRAY),this.setOutput(!0,"List"),this.setTooltip(k.Msg.MIXLY_PYTHON_TOOLTIP_TOARRAY)}},Oo={init:function(){this.setColour(Us),this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Mo={init:function(){this.setColour(Us);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("SER").setCheck("Series").appendField(k.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_PLOT),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},co={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SHOW),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ro={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.mixpy_PL_AXES),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mo={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_LEGEND),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ao={init:function(){this.setColour(Us),this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_TITLE),this.appendValueInput("TITLE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},go={init:function(){this.setColour(Us);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.blockpy_PYLAB_SET_LABEL).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("LABEL").appendField(k.Msg.blockpy_PYLAB_LABEL).setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Lo={init:function(){this.setColour(Us);var t=[[k.Msg.mixpy_PYLAB_PLOT_BAR_PLOT,"plot"],[k.Msg.mixpy_PYLAB_PLOT_BAR_BAR,"bar"]];this.appendDummyInput().appendField(k.Msg.MIXLY_DISPLAY_DRAW).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{plot:k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP,bar:k.Msg.mixpy_PYLAB_PLOT_BAR_EASY_TOOLTIP}[t]}))}},Co={init:function(){this.setColour(Us);var t=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_SCATTER).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("S").appendField(k.Msg.MIXLY_MICROBIT_JS_NUMBER),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(t),"DOT"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},So={init:function(){this.setColour(Us);var t=[[k.Msg.blockpy_PYLAB_PLOT_LINE_SOLID,"-"],[k.Msg.blockpy_PYLAB_PLOT_LINE_DOTTED,"--"],[k.Msg.blockpy_PYLAB_PLOT_LINE_CHAIN,"-."],[k.Msg.blockpy_PYLAB_PLOT_LINE_POINT_DOTTED,":"],[k.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,""]],e=[[k.Msg.COLOUR_RGB_BLUE,"b"],[k.Msg.COLOUR_RGB_GREEN,"g"],[k.Msg.COLOUR_RGB_RED,"r"],[k.Msg.COLOUR_CYAN,"c"],[k.Msg.COLOUR_MAGENTA,"m"],[k.Msg.COLOUR_YELLOW,"y"],[k.Msg.COLOUR_BLACK,"k"],[k.Msg.COLOUR_WHITE,"w"]],i=[[k.Msg.blockpy_PYLAB_PLOT_DOT_CIRCULAR,"."],[k.Msg.blockpy_PYLAB_PLOT_DOT_PIXEL,","],[k.Msg.blockpy_PYLAB_PLOT_DOT_LARGE_DOT,"o"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PLOT_XY).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_DOT).appendField(new k.FieldDropdown(i),"DOT"),this.appendDummyInput("").appendField(k.Msg.blockpy_PYLAB_PLOT_LINE).appendField(new k.FieldDropdown(t),"LINE"),this.appendDummyInput("").appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldDropdown(e),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Do={init:function(){this.setColour(Us);var t=[[k.Msg.MIXLY_TURTLE_WRITE_ALIGN_CENTER,"center"],[k.Msg.AILGN_EDGE,"edge"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_BAR).appendField(k.Msg.mixpy_PYLAB_PLOT_X),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_PLOT_Y),this.appendValueInput("WIDTH").setCheck(Number).appendField(k.Msg.MIXLY_WIDTH),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_BAR_ALIGN).appendField(new k.FieldDropdown(t),"ALIGN"),this.appendDummyInput().appendField(k.Msg.HTML_COLOUR).appendField(new k.FieldColour("#0000ff"),"COLOR"),this.appendValueInput("TAG").setCheck(String).appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},No={init:function(){this.setColour(Us);var t=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"False"],[k.Msg.mixpy_PL_PIE_SHADOW_Y,"True"]],e=[[k.Msg.mixpy_PL_PIE_SHADOW_N,"None"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_Z,"%.0f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_O,"%.1f%%"],[k.Msg.mixpy_PYLAB_PIE_AUTOPCT_T,"%.2f%%"]];this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_PIE).appendField(k.Msg.COLOUR_BLEND_RATIO),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.appendValueInput("EXPLODE").appendField(k.Msg.mixpy_PYLAB_PIE_EXPLODE),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_AUTOPCT).appendField(new k.FieldDropdown(e),"autopct"),this.appendDummyInput("").appendField(k.Msg.mixpy_PYLAB_PIE_SHADOW).appendField(new k.FieldDropdown(t),"SHADOW"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_PLOT_XY_TOOLTIP)}},Po={init:function(){this.setColour(Us),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_HIST).appendField(k.Msg.MIXLY_SD_DATA),this.appendValueInput("B").appendField(k.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fo={init:function(){this.setColour(Us);var t=[[k.Msg.PYLAB_LABEL_X,"x"],[k.Msg.PYLAB_LABEL_Y,"y"]];this.appendDummyInput().appendField(k.Msg.MIXLY_SETTING).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("A").appendField(k.Msg.mixpy_PYLAB_TICKS).appendField(k.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendValueInput("B").appendField(k.Msg.mixpy_PYLAB_TICKS_TAG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PYLAB_TICKS_TOOLTIP)}},Fo={init:function(){this.setColour(Us),this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT).appendField(k.Msg.mixpy_SUBPLOT_VERTICLE),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_HORIZEN),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_SUBPLOT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},vo={init:function(){this.setColour(Us),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_SAVEFIG),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(k.Msg.mixpy_PL_SAVEFIG_TOOLTIP)}},Vo={init:function(){this.setColour(Us);var t=[[k.Msg.TEXT_TRIM_LEFT,"right"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.TEXT_TRIM_RIGHT,"left"]],e=[[k.Msg.mixpy_PL_TEXT_TOP,"bottom"],[k.Msg.mixpy_PL_TEXT_CENTER,"center"],[k.Msg.mixpy_PL_TEXT_BOTTOM,"top"]];this.appendValueInput("VET").setCheck(Number).appendField(k.Msg.MIXLY_SETTING).appendField(k.Msg.mixpy_PL_TEXT_X),this.appendValueInput("HOR").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_Y),this.appendValueInput("NUM").setCheck(Number).appendField(k.Msg.mixpy_PL_TEXT_TAG),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_HOR).appendField(new k.FieldDropdown(t),"HALIGN"),this.appendDummyInput("").appendField(k.Msg.mixpy_PL_TEXT_VER).appendField(new k.FieldDropdown(e),"VALIGN"),this.appendValueInput("FONTNUM").setCheck(Number).appendField(k.Msg.MIXLY_TURTLE_WRITE_FONT_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.mixpy_PL_TEXT_TOOLTIP)}},Yo=20,yo={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(k.Msg.INOUT_input_TOOLTIP)}},bo={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.BLOCKPY_PRINT_TOOLTIP)}},ko={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(k.Msg.TEXT_PRINT_TOOLTIP)}},Xo={init:function(){this.setColour(Yo),this.appendValueInput("VAR").appendField(k.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(k.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(k.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},Uo={init:function(){var t=[[k.Msg.LANG_MATH_STRING,"str"],[k.Msg.LANG_MATH_INT,"int"],[k.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Yo),this.appendDummyInput("").appendField(k.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new k.FieldDropdown(t),"DIR"),this.appendValueInput("VAR").appendField(k.Msg.PROCEDURES_MUTATORCONTAINER_TITLE).setCheck(String),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{str:k.Msg.MIXLY_MIXPY_INOUT_STR_INPUT_TOOLTIP,int:k.Msg.MIXLY_MIXPY_INOUT_INT_INPUT_TOOLTIP,float:k.Msg.MIXLY_MIXPY_INOUT_FLOAT_INPUT_TOOLTIP}[t]}))}},Go={init:function(){this.setColour(Yo),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new k.icons.MutatorIcon(["inout_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(k.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("inout_print_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n0?t:[["'无可用地图'","'无可用地图'"]]}},np={init:function(){this.appendValueInput("pathtype").setCheck(null).appendField(k.Msg.MIXLY_GAME_SETPATHTYPE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},sp={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用路径'","'无可用路径'"]]}},op={init:function(){this.setColour(290),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("posx").setCheck(null).appendField(k.Msg.TEXT_APPEND_TO+"("),this.appendDummyInput().appendField(","),this.appendValueInput("posy").setCheck(null).appendField(""),this.appendDummyInput().appendField(")"+k.Msg.MIXLY_GAME_LAY).appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_WALL,"'wall'"],[k.Msg.MIXLY_GAME_BARRIER,"'barrier'"],[k.Msg.MIXLY_GAME_COIN,"'coin'"],[k.Msg.MIXLY_GAME_REDMARKER,"'redmarker'"],[k.Msg.MIXLY_GAME_YELLOWMARKER,"'yellowmarker'"],[k.Msg.MIXLY_GAME_BLUEMARKER,"'bluemarker'"],[k.Msg.MIXLY_GAME_GREENMARKER,"'greenmarker'"]]),"item"),this.setTooltip("")}},_p={init:function(){this.imgArr=this.getLocalImg(),this.appendDummyInput().appendField(new k.FieldDropdown(this.getLocalImg()),"type"),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")},onchange:function(){let t=this.getFieldValue("type"),e=this.imgArr;this.haveNewSrc(this.imgArr,e)&&(this.imgArr=e,this.getField("type").menuGenerator_=this.imgArr,this.checkSrc(t,this.imgArr)?this.setFieldValue(t,"type"):this.setFieldValue(this.imgArr[0][1],"type"))},haveNewSrc:function(t,e){if(t.length!==e.length)return!0;for(var i=0;i0?t:[["'无可用角色'","'无可用角色'"]]}},pp={init:function(){this.setColour(290),this.appendValueInput("character").setCheck(null).appendField(k.Msg.MIXLY_GAME_INIT_CHARA),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_FACE+k.Msg.MIXLY_GAME_RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("")}},up={init:function(){this.setColour(290),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_GETPOINT),this.setOutput(!0,Number),this.setTooltip("")}},ap={init:function(){this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_UP,"0"],[k.Msg.MIXLY_GAME_DOWN,"2"],[k.Msg.MIXLY_GAME_LEFT,"3"],[k.Msg.MIXLY_GAME_RIGHT,"1"]]),"direction"),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ISBARRIER),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},lp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_RE_SPIRITE).appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_FORWARD,"f"],[k.Msg.MIXLY_GAME_BACKWARD,"b"],[k.Msg.MIXLY_GAME_LEFT,"l"],[k.Msg.MIXLY_GAME_RIGHT,"r"]]),"direction"),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ISBARRIER),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},rp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_RANDOMCAROIL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},Tp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_NEEDOIL),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},dp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ISGREEN),this.setOutput(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Ip={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_ADDOIL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},hp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_CHECKCIRCURIGHT),this.setPreviousStatement(!0),this.setColour(290),this.setTooltip("")}},Ep={init:function(){this.setColour(290),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_CHECK_WHETHER_PASS),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_REDMARKER,"'redmarker'"],[k.Msg.MIXLY_GAME_YELLOWMARKER,"'yellowmarker'"],[k.Msg.MIXLY_GAME_BLUEMARKER,"'bluemarker'"],[k.Msg.MIXLY_GAME_GREENMARKER,"'greenmarker'"]]),"marker"),this.appendDummyInput().appendField("?"),this.setInputsInline(!0),this.setOutput(!0,null),this.setTooltip("")}},Op={init:function(){this.setColour(290),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_GET_MARKER_NUM),this.appendDummyInput().appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_REDMARKER,"'redmarker'"],[k.Msg.MIXLY_GAME_YELLOWMARKER,"'yellowmarker'"],[k.Msg.MIXLY_GAME_BLUEMARKER,"'bluemarker'"],[k.Msg.MIXLY_GAME_GREENMARKER,"'greenmarker'"]]),"marker"),this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_NUMBER_OF_MARKER),this.setInputsInline(!0),this.setOutput(!0,null),this.setTooltip("")}},Mp={init:function(){this.setColour(290),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("posx").setCheck(null).appendField(k.Msg.TEXT_APPEND_TO+"("),this.appendDummyInput().appendField(","),this.appendValueInput("posy").setCheck(null).appendField(""),this.appendDummyInput().appendField(")"+k.Msg.TEXT_GET_INDEX_RANDOM+k.Msg.MIXLY_GAME_LAY+k.Msg.MIXLY_GAME_BARRIER),this.setTooltip("")}},cp={init:function(){this.appendDummyInput().appendField(k.Msg.MIXLY_GAME_INIT_AS).appendField(new k.FieldDropdown([[k.Msg.MIXLY_GAME_ONE,"0"],[k.Msg.MIXLY_GAME_TWO,"1"],[k.Msg.MIXLY_GAME_THREE,"2"],[k.Msg.MIXLY_GAME_FOUR,"3"],[k.Msg.MIXLY_GAME_FIVE,"4"],[k.Msg.MIXLY_GAME_SIX,"5"],[k.Msg.MIXLY_GAME_SEVEN,"6"],[k.Msg.MIXLY_GAME_EIGHT,"7"],[k.Msg.MIXLY_GAME_NINE,"8"],[k.Msg.MIXLY_GAME_TEN,"9"],[k.Msg.MIXLY_GAME_ELE,"10"],[k.Msg.MIXLY_GAME_TWEL,"11"],[k.Msg.MIXLY_GAME_THIR,"12"],[k.Msg.MIXLY_GAME_FORT,"13"],[k.Msg.MIXLY_GAME_FIFT,"14"],[k.Msg.MIXLY_GAME_SIXT,"15"],[k.Msg.MIXLY_GAME_SEVENT,"16"]]),"level"),this.setInputsInline(!0),this.setNextStatement(!0),this.setColour(290),this.setTooltip("")}},Rp={init:function(){this.appendValueInput("N").setCheck(null).setAlign(k.inputs.Align.LEFT).appendField("二分法查找书籍").appendField("N"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},mp={init:function(){this.appendValueInput("N").setCheck(null).setAlign(k.inputs.Align.LEFT).appendField("顺序法查找书籍").appendField("N"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(290),this.setTooltip(""),this.setHelpUrl("")}},Ap=function(t,e){return[e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE),e.ORDER_ATOMIC]},gp=function(t,e){if(""==this.getFieldValue("VAR"))return" = None\n";var i=e.valueToCode(this,"VALUE",e.ORDER_ASSIGNMENT)||"None";return e.variableDB_.getName(this.getFieldValue("VAR"),k.Variables.NAME_TYPE)+" = "+i+"\n"},Lp=function(t,e){var i=this.getFieldValue("OP"),n=e.valueToCode(this,"MYVALUE",e.ORDER_ATOMIC)||"None";if("bytes"==i)var s=i+"("+n+',"UTF-8")';else s=i+"("+n+")";return[s,e.ORDER_ATOMIC]},Cp=function(t,e){return"global "+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"None")+"\n"},Sp=function(t,e){return["type("+(e.valueToCode(this,"DATA",e.ORDER_ATOMIC)||"None")+")",e.ORDER_ATOMIC]},Dp=function(t,e){return[this.getFieldValue("type"),e.ORDER_ATOMIC]},Np=function(t,e){for(var i=new Array(this.itemCount_),n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+u()+"("+t+", "+e+", "+i+") or "+a()+"("+t+", "+e+", "+i+")"},k.isNumber(n)&&k.isNumber(s)&&k.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const al=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},ll=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},rl=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Tl=function(t,e){return["None",e.ORDER_ATOMIC]},dl=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Il=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},hl=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},El=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Ol=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ml=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},cl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Rl=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ml=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Al=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},gl=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ll=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Cl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Sl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Dl=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Nl=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Pl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fl=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Fl=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},vl=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Vl=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Yl=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},yl=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},bl=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},kl=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Xl=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ul=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Gl=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),k.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},mr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Ar=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},gr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Lr=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Cr=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Sr=function(t,e){return'"},Dr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Nr=function(){return this.getFieldValue("TEXT")+"\n"},Pr=function(t){return t.getFieldValue("TEXT")+"\n"},fr=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Fr=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},vr=function(){return""},Vr=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Yr=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o=0&&(n[s]=n[s].replace(" ",""));i="";for(s=0;s